+

KR20150068264A - Processor having a variable pipeline, and system-on-chip - Google Patents

Processor having a variable pipeline, and system-on-chip Download PDF

Info

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
Application number
KR1020140003933A
Other languages
Korean (ko)
Inventor
나지명
김기홍
김상범
김정현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US14/533,810 priority Critical patent/US20150161401A1/en
Publication of KR20150068264A publication Critical patent/KR20150068264A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent 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

가변 파이프라인을 가지는 프로세서, 및 시스템-온-칩{PROCESSOR HAVING A VARIABLE PIPELINE, AND SYSTEM-ON-CHIP}PROCESSOR HAVING A VARIABLE PIPELINE, AND SYSTEM-ON-CHIP < RTI ID = 0.0 >

본 발명은 프로세서에 관한 것으로서, 더욱 상세하게는 가변 파이프라인을 가지는 프로세서, 및 이를 포함하는 시스템-온-칩에 관한 것이다.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 processor 100 includes a variable pipeline 110 and a security level determination unit 150.

보안 레벨 판단부(150)는 프로세서(100)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 여기서, 암호화된 데이터(ENC-DATA)는 프로세서(100)에 의해 실행되는 프로그램 데이터(또는 암호화된 명령어(instruction), 암호화된 프로그램 코드 등으로 불릴 수 있음)가 암호화된 것을 나타내거나, 이러한 프로그램 데이터에 의해 사용, 수정 또는 생성되는 일반 데이터(normal data)가 암호화된 것을 나타낼 수 있다. 보안 레벨 판단부(150)는 암호화된 데이터(ENC-DATA)가 외부 메모리에 저장된 위치에 따라 암호화된 데이터(ENC-DATA)의 보안 레벨을 결정할 수 있다. 예를 들어, 보안 레벨 판단부(150)에는 외부 메모리의 소정의 어드레스 범위에 대하여 설정된 보안 레벨이 저장되고, 프로세서(100)에 입력된 암호화된 데이터(ENC-DATA)가 상기 어드레스 범위에 속하는 어드레스를 가진 경우, 보안 레벨 판단부(150)는 암호화된 데이터(ENC-DATA)의 보안 레벨을 상기 설정된 보안 레벨로 판단할 수 있다.The security level determination unit 150 determines the security level of the encrypted data (ENC-DATA) to be processed by the processor 100. Here, the encrypted data (ENC-DATA) indicates that the program data (which may be referred to as an encrypted instruction, an encrypted program code, or the like) executed by the processor 100 is encrypted, May indicate that the normal data used, modified or generated by the user is encrypted. The security level determination unit 150 may determine the security level of the encrypted data (ENC-DATA) according to the location where the encrypted data (ENC-DATA) is stored in the external memory. For example, the security level determination unit 150 stores the security level set for the predetermined address range of the external memory, and when the encrypted data (ENC-DATA) input to the processor 100 is an address belonging to the address range The security level determining unit 150 may determine the security level of the encrypted data (ENC-DATA) to be the security level set as described above.

가변 파이프라인(110)은 암호화된 데이터(ENC-DATA)를 수신하고, 암호화된 데이터(ENC-DATA)에 대한 복호화 동작을 수행하여 원본 데이터를 생성할 수 있다. 이와 같이, 암호화된 데이터(ENC-DATA)에 대한 복호화 동작이 프로세서(100) 내부, 즉 가변 파이프라인(110)에서 수행되므로, 프로세서(100)의 외부에서는 데이터가 암호화된 상태를 가지고, 원본 데이터가 노출되지 않는다. 이에 따라, 데이터가 안전하게 보호될 수 있다.The variable pipeline 110 may receive the encrypted data (ENC-DATA) and perform a decryption operation on the encrypted data (ENC-DATA) to generate the original data. Thus, since the decryption operation for the encrypted data (ENC-DATA) is performed in the processor 100 (i.e., the variable pipeline 110), data is encrypted outside the processor 100, Is not exposed. Thus, the data can be safely protected.

또한, 가변 파이프라인(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 variable pipeline 110 may perform a decryption operation on the encrypted data (ENC-DATA) during a clock cycle corresponding to the security level determined by the security level determination unit 150 to generate original data have. Each encrypted data ENC-DATA may have one of a plurality of security levels, and the variable pipeline 110 may have different clock cycles for encrypted data ENC-DATA of different security levels The decoding operation can be performed. For example, each encrypted data (ENC-DATA) may have one of three security levels, and the variable pipeline 110 may determine that the security level of the encrypted data (ENC-DATA) low security level, the decryption operation is not performed and the decryption operation is performed during a computation time of one clock cycle when the security level of the encrypted data (ENC-DATA) is a normal security level, When the security level of the encrypted data (ENC-DATA) is high security level, the decryption operation can be performed during the operation time of two or more clock cycles. Thus, the computation time of the decryption operation is changed according to the security level of the encrypted data (ENC-DATA) to be processed, and the number of execution clock cycles of the variable pipeline 110 can be changed. Accordingly, the encryption / decryption operation of the encryption / decryption algorithm suitable for the security level of each data can be performed.

각 데이터의 보안 레벨에 적합한 암호화/복호화 동작을 수행하도록, 일 실시예에서, 가변 파이프라인(100)은 암호화된 데이터(ENC-DATA)의 보안 레벨에 따라 복호화 동작의 연산 시간을 변경하는 가변 복호화 블록을 포함할 수 있다. 다른 실시예에서, 가변 파이프라인(100)은 직렬로 연결된 복수의 복호화 블록들을 포함하고, 암호화된 데이터(ENC-DATA)가 상기 복수의 복호화 블록들 중 상기 보안 레벨에 상응하는 클록 사이클의 수의 복호화 블록을 지나도록 할 수 있다. 또 다른 실시예에서, 가변 파이프라인(100)은 서로 다른 연산 시간을 가지는 복수의 복호화 블록들을 포함하고, 암호화된 데이터(ENC-DATA)가 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 클록 사이클의 상기 연산 시간을 가지는 복호화 블록을 지나도록 할 수 있다. 실시예에 따라, 상기 서로 다른 연산 시간을 가지는 복호화 블록들은 동일한 복호화 알고리즘의 복호화 동작을 수행하거나, 서로 다른 복호화 알고리즘의 복호화 동작을 수행할 수 있다.In one embodiment, the variable pipeline 100 is configured to perform encryption / decryption operations corresponding to the security level of each data so as to perform variable encryption (encryption / decryption) for changing the operation time of the decryption operation according to the security level of the encrypted data Block. In another embodiment, the variable pipeline 100 comprises a plurality of decryption blocks coupled in series, wherein the encrypted data (ENC-DATA) is the number of clock cycles corresponding to the security level of the plurality of decryption blocks It is possible to pass through the decryption block. In another embodiment, the variable pipeline 100 includes a plurality of decryption blocks having different computation times, and the encrypted data (ENC-DATA) is a decryption key of a clock cycle corresponding to the security level of the decryption blocks It is possible to pass the decoding block having the calculation time. According to an embodiment, the decryption blocks having different computation times may perform a decryption operation of the same decryption algorithm or a decryption operation of different decryption algorithms.

또한, 가변 파이프라인(110)은 상기 원본 데이터를 처리할 수 있다. 예를 들어, 가변 파이프라인(110)은 상기 원본 데이터에 대하여 페치(fetch) 동작, 디코드(decode) 동작 및 익스큐트(execute) 동작을 수행함으로써 상기 원본 데이터를 처리할 수 있다. 다른 예에서, 상기 원본 데이터를 처리하도록, 가변 파이프라인(110)은 페치(fetch) 동작, 디코드(decode) 동작, 익스큐트(execute) 동작, 버퍼(buffer)/데이터(data) 동작, 및 라이트-백(write-back) 동작을 수행할 수 있다.In addition, the variable pipeline 110 may process the original data. For example, the variable pipeline 110 may process the original data by performing a fetch operation, a decode operation, and an execute operation on the original data. In another example, to process the original data, the variable pipeline 110 may include a fetch operation, a decode operation, an execute operation, a buffer / data operation, - Can perform a write-back operation.

일 실시예에서, 상기 원본 데이터의 처리 결과가 외부 메모리에 저장되어야 하는 경우, 가변 파이프라인(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 variable pipeline 110 encrypts the processing result of the original data for a clock cycle corresponding to the security level, ENC-RES-DATA) to the outside. For example, the variable pipeline 110 does not perform the encryption operation when the security level is the low security level, and performs the encryption operation during the operation time of one clock cycle when the security level is the general security level And may perform the encryption operation for a computation time of two or more clock cycles if the security level is a high security level. In one embodiment, the variable pipeline 110 may include a variable encryption block that changes the computation time of the encryption operation in accordance with the security level, so as to perform encryption / decryption operations appropriate to the security level of each data. Thus, the computation time of the encryption / decryption operation is changed according to the security level of the encrypted data (ENC-DATA) to be processed or the security level of the encrypted result data (ENC-RES-DATA) to be stored, 110 may be changed. Accordingly, the encryption / decryption operation of the encryption / decryption algorithm suitable for the security level of each data can be performed.

이와 같이, 프로세서(100)는 데이터의 암호화/복호화를 포함하는 데이터 처리를 가변 파이프라인(110)을 이용하여 수행할 수 있다. 즉, 페치 동작, 디코드 동작 및 익스큐트 동작과 함께 암호화/복호화 동작이 파이프라인 방식으로 수행될 수 있다. 이에 따라, 연속적으로 처리되는 데이터들에 대하여 1 클록 사이클 이상의 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작이 수행되는 경우, 초기에 처리되는 데이터에 대한 시간 지연이 발생할 수 있으나, 그 후 처리되는 데이터들에 대하여 시간 지연 및/또는 동작 성능(또는 동작 속도) 저하가 발생하지 않는다. 즉, 본 발명의 실시예들에 따른 프로세서(100)는 동작 성능을 거의 저하시키지 않으면서 강력한 암호화/복호화 동작을 수행할 수 있다.As such, the processor 100 may perform data processing, including encryption / decryption of data, using the variable pipeline 110. That is, the fetch operation, the decode operation, and the write operation together with the encryption / decryption operation can be performed in a pipelined manner. Accordingly, when encryption / decryption operations of a strong encryption / decryption algorithm of one clock cycle or more are performed for data to be processed consecutively, a time delay for data to be initially processed may occur, There is no time delay and / or operation performance That is, the processor 100 according to the embodiments of the present invention can perform a strong encryption / decryption operation without substantially degrading the operation performance.

상술한 바와 같이, 본 발명의 실시예들에 따른 프로세서(100)는 프로세서(100)의 내부, 즉 가변 파이프라인(110)에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 실시예들에 따른 프로세서(100)는 데이터의 암호화/복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(100) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 실시예들에 따른 프로세서(100)는, 처리될 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the processor 100 according to the embodiments of the present invention performs encryption / decryption operations on data in the processor 100, i.e., the variable pipeline 110, The data can be safely protected. In addition, the processor 100 according to the embodiments of the present invention performs the encryption / decryption of data in a pipelined manner together with fetching, decoding, and / or the like so that the performance of the processor 100 and the system including the processor 100 is almost It may not deteriorate. In addition, the processor 100 according to embodiments of the present invention includes a variable pipeline that adjusts the computation time of the encryption / decryption operation according to the security level of the data to be processed, The encryption / decryption operation of the strong encryption / decryption algorithm can be performed, and the data that requires low level security can be processed faster.

도 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 processor 200 includes a variable pipeline 210 and a security level determination unit 250.

보안 레벨 판단부(250)는 프로세서(200)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 보안 레벨 판단부(250)는 암호화된 데이터들(ENC-DATA)에 대한 보안 정책을 저장하고, 저장된 보안 정책에 기초하여 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단하며, 판단된 보안 레벨에 기초하여 가변 파이프라인(210)을 제어할 수 있다. 일 실시예에서, 보안 레벨 판단부(250)는 암호화된 데이터들(ENC-DATA)에 대한 보안 정책을 저장하는 보안 정책 저장부(260), 및 보안 정책 저장부(260)에 저장된 보안 정책에 기초하여 가변 파이프라인(210)을 제어하는 파이프라인 제어부(280)를 포함할 수 있다.The security level determination unit 250 determines the security level of the encrypted data (ENC-DATA) to be processed by the processor 200. [ The security level determination unit 250 stores the security policy for the encrypted data ENC-DATA, determines the security level of the encrypted data ENC-DATA to be processed based on the stored security policy, The variable pipeline 210 may be controlled based on the security level. In one embodiment, the security level determination unit 250 includes a security policy storage unit 260 that stores a security policy for encrypted data ENC-DATA, and a security policy storage unit 260 that stores security policies And a pipeline control unit 280 for controlling the variable pipeline 210 based on the received signal.

예를 들어, 보안 정책 저장부(260)에는 암호화된 데이터들(ENC-DATA)에 대한 적어도 하나의 보안 정책 레코드(270)가 저장될 수 있다. 일 예로서, 보안 정책 레코드(270)는 외부 메모리의 어드레스의 범위(272), 이러한 어드레스의 범위(272)에 저장된 암호화된 데이터들(ENC-DATA)에 대하여 수행될 암호화/복호화 연산의 클록 사이클 수(274), 및 어드레스의 범위(272)에 저장된 암호화된 데이터들(ENC-DATA)에 대하여 수행될 암호화/복호화 연산에서 이용되는 암호화 키(276)를 포함할 수 있다. 일 실시예에서, 소정의 어플리케이션 또는 프로그램이 실행되도록 외부 메모리에 로드될 때, 보안 정책 저장부(260)에 보안 정책 레코드(270)가 기입될 수 있다.For example, the security policy storage unit 260 may store at least one security policy record 270 for encrypted data (ENC-DATA). As an example, the security policy record 270 includes a range 272 of addresses of the external memory, a clock cycle of the encryption / decryption operation to be performed on the encrypted data ENC-DATA stored in the range 272 of this address Number 274 and an encryption key 276 used in encryption / decryption operations to be performed on the encrypted data ENC-DATA stored in the range 272 of addresses. In one embodiment, the security policy record 270 may be written to the security policy store 260 when a predetermined application or program is loaded into the external memory to be executed.

파이프라인 제어부(280)는 프로세서(200)에서 처리될 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신할 수 있다. 예를 들어, 파이프라인 제어부(280)는 프로세서(200)에 포함된 소정의 레지스터, 예를 들어 프로그램 카운터(Program Counter; PC), 명령어 포인터(Instruction Pointer; IP), 또는 명령어 레지스터(Instruction Register; IR)로부터 가변 파이프라인(210)에 입력되는 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신할 수 있다.The pipeline control unit 280 may receive the address ADDR of the encrypted data ENC-DATA to be processed by the processor 200. [ For example, the pipeline control unit 280 may include a predetermined register included in the processor 200, for example, a program counter (PC), an instruction pointer (IP), or an instruction register (ADDR) of the encrypted data (ENC-DATA) that is input to the variable pipeline 210 from the input buffer (IR).

파이프라인 제어부(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 pipeline control unit 280 searches the security policy record 270 including the range 272 of the address to which the address ADDR received in the security policy storage unit 260 belongs, The number of clock cycles 274 included in the security policy record 270 can be read. The pipeline control unit 280 provides the variable number pipeline 210 with a cycle number signal NCYC indicative of the number of clock cycles 274 so that the variable pipeline 210 has an operation time corresponding to the clock cycle number 274 Lt; RTI ID = 0.0 > 210 < / RTI > The pipeline control unit 280 may further read the encryption key 276 included in the security policy record 270 from the security policy storage unit 260. [ The pipeline control unit 280 provides the variable pipeline 210 with the encryption key 276 to the variable pipeline 210 so that the variable pipeline 210 uses the encryption key 276 to perform the decryption operation. Can be controlled.

가변 파이프라인(210)은 암호화된 데이터(ENC-DATA)를 수신하고, 보안 레벨 판단부(250)에 의해 판단된 보안 레벨에 상응하는 클록 사이클 동안 암호화된 데이터(ENC-DATA)에 대한 복호화 동작을 수행하여 원본 데이터를 생성하며, 원본 데이터를 처리할 수 있다. 일 실시예에서, 가변 파이프라인(210)은 가변 복호화 블록(220), 페치 블록(230), 디코드 블록(232) 및 익스큐트 블록(234)을 포함할 수 있다.The variable pipeline 210 receives the encrypted data ENC-DATA and decrypts the encrypted data ENC-DATA for a clock cycle corresponding to the security level determined by the security level determination unit 250 To generate the original data, and to process the original data. In one embodiment, the variable pipeline 210 may include a variable decryption block 220, a fetch block 230, a decode block 232, and an exclude block 234.

가변 복호화 블록(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 variable decryption block 220 may decrypt the encrypted data ENC_DATA input to the processor 200 during a clock cycle corresponding to the security level thereof to generate original data. That is, the variable decryption block 220 can change the operation time of the decryption operation according to the security level of the encrypted data (ENC_DATA). In one embodiment, the pipeline controller 280 may provide the variable number decoding unit 220 with a cycle number signal NCYC indicating the number of clock cycles corresponding to the security level of the encrypted data ENC_DATA, The block 220 may perform a decryption operation for a number of clock cycles indicated by the cycle number signal NCYC input from the pipeline control unit 280. [ For example, if the security level of the encrypted data (ENC_DATA) is a low security level, the cycle number signal NCYC may represent zero clock cycles, and the variable decryption block 220 may not perform a decryption operation . Further, when the security level of the encrypted data ENC_DATA is a general security level, the cycle number signal NCYC may represent one clock cycle, and the variable decryption block 220 may perform a decryption operation during a computation time of one clock cycle Can be performed. Further, when the security level of the encrypted data ENC_DATA is a high security level, the cycle number signal NCYC may represent 2 clock cycles, and the variable decryption block 220 may perform the decryption operation during the computation time of 2 clock cycles Can be performed. The variable decryption block 220 may further receive the encryption key KEY from the pipeline controller 280 and may perform the decryption operation using the received encryption key KEY. In this way, since the decoding operation is performed by the processor 200, that is, the variable decoding block 220, the original data is not exposed to the outside of the processor 200, so that the data can be protected more securely.

페치 블록(230)은 가변 복호화 블록(220)에 의해 생성된 원본 데이터를 프로세서(200)에 포함된 레지스터에 저장할 수 있다. 예를 들어, 페치 블록(230)은 상기 원본 데이터를 명령어 레지스터(Instruction Register; IR)에 저장할 수 있다. 디코드 블록(232)은 상기 원본 데이터를 해독(decoding)할 수 있다. 예를 들어, 디코드 블록(232)은 상기 명령어 레지스터에 저장된 상기 원본 데이터를 해독하여 익스큐트 블록(234)에서 수행될 동작을 파악할 수 있다. 익스큐트 블록(234)은 상기 해독된 원본 데이터를 실행(execute)할 수 있다.The fetch block 230 may store the original data generated by the variable decryption block 220 in a register included in the processor 200. [ For example, the fetch block 230 may store the original data in an instruction register (IR). The decode block 232 may decode the original data. For example, the decode block 232 may decode the original data stored in the instruction register to determine an operation to be performed in the execution block 234. The execution block 234 may execute the decrypted original data.

이러한 가변 파이프라인(210)은 파이프라인 방식으로 암호화된 데이터들(ENC_DATA)을 병렬적으로 처리할 수 있다. 도 3에는 가변 파이프라인(210)의 파이프라인 방식의 처리의 예가 도시되어 있다. 도 3에서, 310은 일반 보안 레벨을 가지는 제1 암호화된 데이터(ENC-DATA1)에 대한 실행 타이밍을 나타내고, 330은 일반 보안 레벨을 가지는 제2 암호화된 데이터(ENC-DATA2)에 대한 실행 타이밍을 나타내며, 350은 높은 보안 레벨을 가지는 제3 암호화된 데이터(ENC-DATA3)에 대한 실행 타이밍을 나타내고, 370은 높은 보안 레벨을 가지는 제4 암호화된 데이터(ENC-DATA4)에 대한 실행 타이밍을 나타낼 수 있다.This variable pipeline 210 can process the encrypted data ENC_DATA in a pipeline manner in parallel. FIG. 3 shows an example of the pipeline processing of the variable pipeline 210. 3, reference numeral 310 denotes execution timing for the first encrypted data (ENC-DATA1) having the general security level, reference numeral 330 denotes execution timing for the second encrypted data (ENC-DATA2) having the general security level (ENC-DATA3) having a high security level, and 370 indicates an execution timing for the fourth encrypted data (ENC-DATA4) having a high security level have.

도 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 processor 200 in a first clock cycle. On the other hand, the data may arrive at the processor 200 before a predetermined setup time (for example, a CPU setup time) from the time when the processing for the data is performed so that data is correctly input to the processor 200 . In the second clock cycle, the second encrypted data (ENC-DATA2) may be input to the processor 200 while the decryption operation for the first encrypted data (ENC-DATA1) is performed. Fetch operation on the first encrypted data (ENC-DATA1) (or original data of the first encrypted data (ENC-DATA1)) in the third clock cycle, a fetch operation on the second encrypted data (ENC- Operation, and input of the third encrypted data (ENC-DATA3) can be performed simultaneously. Also, in a fourth clock cycle, a decode operation for the first encrypted data (ENC-DATA1), a fetch operation for the second encrypted data (ENC-DATA2), a second fetch operation for the third encrypted data Decryption operation, and input of the fourth encrypted data (ENC-DATA4) can be performed simultaneously. In this way, each stage of the variable pipeline 210, that is, the variable decode block 220, the fetch block 230, the decode block 232, and the exclude block 234, , ENC-DATA2, ENC-DATA3, ENC-DATA4) in parallel, processing performance of the processor 200 and the system including the processor 200 can be improved.

한편, 암호화/복호화 동작이 수행되지 않는 경우와 비교하여, 연속적으로 처리되는 데이터들(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 processor 200 according to an exemplary embodiment of the present invention performs a decoding operation on data in the processor 200, that is, the variable decoding block 220, so that original data is not exposed to the outside Data can be safely protected. In addition, the processor 200 according to an embodiment of the present invention performs pipelining of decoding of data with fetching, decoding, and / or the like, thereby substantially degrading the performance of the processor 200 and the system including the processor 200 . In addition, the processor 200 according to an embodiment of the present invention includes a variable pipeline that adjusts the computation time of the decryption operation according to the security level of the data to be processed, so that a strong It is possible to perform a decryption operation of a decryption algorithm and to perform a quick process on data requiring a low level of security.

도 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 processor 400 includes a variable pipeline 410 and a security level determination unit 450. The processor 400 of Figure 4 may have a similar configuration to the processor 200 of Figure 2 except that the variable decoding block 420 is disposed between the fetch block 430 and the decode block 432. [

보안 레벨 판단부(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 level determination unit 450 determines the security level of the encrypted data (ENC-DATA) to be processed by the processor 400. [ The security level determination unit 450 may include a security policy storage unit 460 and a pipeline control unit 480. The security policy storage unit 460 may store at least one security policy record 470 for the encrypted data ENC-DATA. As an example, the security policy record 470 may include a range of addresses 472, a number of clock cycles 474, and an encryption key 476. The pipeline control unit 480 receives the address ADDR of the encrypted data ENC-DATA and stores the security address in the security policy storage unit 460, which includes the range 472 of the address to which the address ADDR received, The policy record 470 can be searched. The pipeline control unit 480 may provide the number of clock cycles 474 and the encryption key 476 included in the discovered security policy record 470 to the variable decryption block 420 included in the variable pipeline 410 have.

가변 파이프라인(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 variable pipeline 410 may include a fetch block 430, a variable decryption block 420, a decode block 432, and an exclude block 434. Fetch block 430 may fetch encrypted data (ENC-DATA) from an external memory and store it in a register included in processor 400. [ For example, the fetch block 430 may store the encrypted data (ENC-DATA) in an instruction register (IR). The variable decryption block 420 may decrypt the encrypted data ENC-DATA stored in the register for a clock cycle corresponding to the security level of the encrypted data ENC-DATA to generate original data. For example, the variable decryption block 420 may perform a decryption operation for the number of clock cycles indicated by the cycle number signal NCYC input from the pipeline control unit 480. [ In addition, the variable decryption block 420 may perform the decryption operation using the encryption key (KEY) input from the pipeline controller 480. [ For example, the original data generated by the variable decryption block 420 may be stored in the instruction register or other register. Decode block 432 may decode the original data and execute block 434 may execute the decoded original data.

이러한 가변 파이프라인(410)은 파이프라인 방식으로 암호화된 데이터들(ENC_DATA)을 병렬적으로 처리할 수 있다. 도 5에는 가변 파이프라인(410)의 파이프라인 방식의 처리의 예가 도시되어 있다. 도 5에서, 510은 일반 보안 레벨을 가지는 제1 암호화된 데이터(ENC-DATA1)에 대한 실행 타이밍을 나타내고, 530은 일반 보안 레벨을 가지는 제2 암호화된 데이터(ENC-DATA2)에 대한 실행 타이밍을 나타내며, 550은 높은 보안 레벨을 가지는 제3 암호화된 데이터(ENC-DATA3)에 대한 실행 타이밍을 나타내고, 570은 높은 보안 레벨을 가지는 제4 암호화된 데이터(ENC-DATA4)에 대한 실행 타이밍을 나타낼 수 있다.This variable pipeline 410 may process the encrypted data ENC_DATA in parallel in a pipelined fashion. FIG. 5 shows an example of the pipeline processing of the variable pipeline 410. 5, reference numeral 510 denotes execution timing for the first encrypted data (ENC-DATA1) having the general security level, reference numeral 530 denotes execution timing for the second encrypted data (ENC-DATA2) having the general security level 550 indicates the execution timing for the third encrypted data (ENC-DATA3) having a high security level, and 570 indicates the execution timing for the fourth encrypted data (ENC-DATA4) having the high security level have.

도 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 variable pipeline 410, that is, the fetch block 430, the variable decoding block 420, the decode block 432, and the exclude block 434 are provided with different data (ENC-DATA1, ENC -DATA2, ENC-DATA3, ENC-DATA4) in parallel, processing performance of the processor 400 and the system including the same can be improved. In addition, since the encryption / decryption operation is performed in a pipelined manner together with the fetch operation, the decode operation, and the execution operation, the operation performance may not be substantially lowered. In addition, 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.

상술한 바와 같이, 본 발명의 다른 실시예에 따른 프로세서(400)는 프로세서(400)의 내부, 즉 가변 복호화 블록(420)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 다른 실시예에 따른 프로세서(400)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(400) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 다른 실시예에 따른 프로세서(400)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the processor 400 according to another embodiment of the present invention performs a decoding operation on data in the processor 400, that is, the variable decoding block 420, so that the original data is not exposed to the outside Data can be safely protected. In addition, the processor 400 according to another embodiment of the present invention performs pipelining of decoding of data with fetching, decoding, and / or the like, thereby substantially reducing the performance of the processor 400 and the system including the processor 400 . In addition, the processor 400 according to another embodiment of the present invention includes a variable pipeline that adjusts the computation time of the decryption operation according to the security level of the data to be processed, It is possible to perform a decryption operation of a decryption algorithm and to perform a quick process on data requiring a low level of security.

한편, 도 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 variable decryption block 420 is located between the fetch block 430 and the decode block 432. The variable decryption block 420 is provided between the fetch block 430 and the decode block 432, The variable decoding block 220 or at least one decoding block to be described later may be disposed at any position on the variable pipeline. Hereinafter, embodiments in which at least one decoding block is disposed at the front end of the fetch block 230 will be described as an example.

도 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 processor 600 includes a variable pipeline 610 and a security level determination unit 650. The processor 600 of FIG. 6 includes a plurality of decryption blocks 621, 623 and 625 connected in series instead of the variable decryption block 220 shown in FIG. 2, and a plurality of switches 622, 624, 626, 628, as well as a processor 200 similar to that of FIG.

보안 레벨 판단부(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 level determination unit 650 determines the security level of the encrypted data (ENC-DATA) to be processed by the processor 600. [ The security level determination unit 650 may include a security policy storage unit 660 and a pipeline control unit 680. The security policy storage unit 660 may store at least one security policy record 670 for the encrypted data ENC-DATA. As an example, the security policy record 670 may include a range of addresses 672, a number of clock cycles 674, and an encryption key 676. The pipeline control unit 680 receives the address ADDR of the encrypted data ENC-DATA and stores the security data in the security policy storage unit 660, which includes the range 672 of the address to which the address ADDR received, The policy record 670 can be searched. The pipeline control unit 680 includes a plurality of switching signals for controlling the plurality of switches 622, 624, 626, 628 based on the number of clock cycles 674 included in the detected security policy record 670 SWS1, SWS2, SWSN and SWSO and provides the encryption key 676 included in the searched security policy record 670 to the decryption blocks 621, 623 and 625 included in the variable pipeline 610 can do.

가변 파이프라인(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 variable pipeline 610 includes a plurality of decryption blocks 621, 623 and 625 connected in series, a plurality of switches 622, 624 and 626 respectively arranged at the front ends of decryption blocks 621, 623 and 625, A fetch block 630, a decode block 632, and an exclude block 634. [ Each of the decryption blocks 621, 623, and 625 can perform a decryption operation of one clock cycle. Each of the switches 622, 624 and 626 selectively connects the data path coupled to its input to a corresponding one of the decode blocks 621, 623 and 625 or to a block of the next stage (i.e., the fetch block 630) You can connect. For example, the first switch 622 may selectively couple the data path to the first decoding block 621 or the fetch block 630 in response to the first switching signal SWS1, The Nth switch 626 may selectively connect the data path to the second decoding block 623 or the fetch block 630 in response to the second switching signal SWS2, Thereby selectively coupling the data path to the Nth decryption block 625 or the fetch block 630. [ In one embodiment, the variable pipeline 610 may further include a switch 628 disposed at the front end of the fetch block 630. The switch 628 may couple one of the plurality of data paths to the fetch block 630 in response to the switching signal SWSO.

파이프라인 제어부(680)는 복수의 스위치들(622, 624, 626) 중, 앞부분에 위치하고, 클록 사이클 수(674)에 상응하는 수의 스위치들이 데이터 경로를 상응하는 복호화 블록들에 연결하고, 나머지 스위치들이 데이터 경로를 페치 블록(630)에 연결하도록 스위칭 신호들(SWS1, SWS2, SWSN)을 생성할 수 있다.The pipeline controller 680 is located at the front of the plurality of switches 622, 624, and 626, and the number of switches corresponding to the number of clock cycles 674 connects the data paths to the corresponding decryption blocks, The switching signals SWS1, SWS2, and SWSN may be generated so that the switches connect the data path to the fetch block 630. [

예를 들어, 암호화된 데이터(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 address range 672 to which the address ADDR of the encrypted data (ENC-DATA) belongs is 1, the pipeline control unit 680 outputs the first switching signal SWS1 to the first logic level and the remaining switching signals SWS2, SWSN to the second logic level. The first switch 622 couples the data path of the encrypted data ENC-DATA in response to the first switching signal SWS1 of the first logic level to the first decoding block 621 and the remaining switches 624 , 626 (or the second switch 624 as the immediately following switch) may couple the data path to the fetch block 630 in response to the second logic level switching signals SWS2, SWSN. Accordingly, the decryption operation of one clock cycle is performed by the first decryption block 621 on the encrypted data (ENC-DATA), so that the original data can be generated. Meanwhile, the first decryption block 621 may perform the decryption operation using the encryption key (KEY) provided from the pipeline controller 680. In another example, when the number of clock cycles 674 is two, the first and second switching signals SWS1 and SWS2 have a first logic level and the remaining switching signals SWSN have a second logic level . Accordingly, the decryption operation of two clock cycles is performed on the encrypted data (ENC-DATA) by the first and second decryption blocks 621 and 623 to generate original data. The first and second decryption blocks 621 and 623 may perform the decryption operation using the encryption key KEY provided from the pipeline controller 680. [

페치 블록(630)은 원본 데이터를 프로세서(600)에 포함된 소정의 레지스터에 저장할 수 있다. 디코드 블록(632)은 상기 원본 데이터를 해독하고, 익스큐트 블록(634)은 상기 해독된 원본 데이터를 실행할 수 있다.The fetch block 630 may store the original data in a predetermined register included in the processor 600. [ Decode block 632 may decode the original data, and the EXECUTE block 634 may execute the decoded original data.

상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(600)는 프로세서(600)의 내부, 즉 직렬 연결된 복수의 복호화 블록들(621, 623, 625)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(600)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(600) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(600)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the processor 600 according to another embodiment of the present invention performs a decoding operation on data in the processor 600, i.e., in a plurality of cascade-connected decryption blocks 621, 623, and 625 , The original data is not exposed to the outside, so that the data can be safely protected. In addition, the processor 600 according to another embodiment of the present invention performs pipelining of decoding of data with fetching, decoding, and / or the like, thereby substantially reducing the performance of the processor 600 and the system including the processor 600 . In addition, the processor 600 according to another embodiment of the present invention includes a variable pipeline that adjusts the computation time of the decryption operation according to the security level of the data to be processed, It is possible to perform a decryption operation of a strong decryption algorithm and to perform a quick process on data requiring a low level of security.

도 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 processor 700 includes a variable pipeline 710 and a security level determination unit 750. The processor 700 of FIG. 7 includes a plurality of decryption blocks 721, 723, and 725 that perform a decryption operation for different computation time on behalf of the variable decryption block 220 shown in FIG. 2, , But may have a similar configuration to the processor 200 of FIG.

보안 레벨 판단부(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 level determination unit 750 determines the security level of the encrypted data (ENC-DATA) to be processed by the processor 700. [ The security level determination unit 750 may include a security policy storage unit 760 and a pipeline control unit 780. At least one security policy record 770 for the encrypted data (ENC-DATA) may be stored in the security policy storage unit 760. As an example, the security policy record 770 may include a range of addresses 772, a number of clock cycles 774, and an encryption key 776. The pipeline control unit 780 receives the address ADDR of the encrypted data ENC-DATA and sends a security policy including the range 772 of the address 772 to which the address ADDR received in the security policy storage unit 760 belongs The policy record 770 can be searched. The pipeline control unit 780 generates a switching signal SWS for controlling the switch 722 based on the number of clock cycles 774 included in the discovered security policy record 770 and outputs the detected security policy record 730 included in the variable pipeline 710 to the decryption blocks 721, 723, and 725 included in the variable pipeline 710.

가변 파이프라인(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 variable pipeline 710 includes a plurality of decryption blocks 721, 723 and 725 having different computation times, a switch 722 disposed in front of the decryption blocks 721, 723 and 725, a fetch block 730 ), A decode block 732, and an exclude block 734. The decryption blocks 721, 723, and 725 may perform decryption operations for different computation times. For example, the first decryption block 721 performs a decryption operation for one clock cycle, the second decryption block 723 performs a decryption operation for two clock cycles, and the Nth decryption block 725 performs an N clock The decoding operation of the cycle can be performed. The switch 722 outputs the data path of the encrypted data ENC-DATA in response to the switching signal SWS to one of the decryption blocks 721, 723 and 725 or a block of the next stage (for example, 730). In one embodiment, the variable pipeline 710 may further include a switch 728 disposed at the front end of the fetch block 730. The switch 728 may couple one of the plurality of data paths to the fetch block 730 in response to the switching signal SWSO.

파이프라인 제어부(780)는 암호화된 데이터(ENC-DATA)가 복호화 블록들(721, 723, 725) 중 클록 사이클 수(774)에 상응하는 연산 시간을 가지는 복호화 블록에 인가되도록 스위칭 신호(SWS)를 생성할 수 있다.The pipeline control unit 780 outputs the switching signal SWS so that the encrypted data ENC-DATA is applied to the decryption block having the computation time corresponding to the clock cycle number 774 among the decryption blocks 721, 723, Lt; / RTI >

예를 들어, 암호화된 데이터(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 address range 772 to which the address ADDR of the encrypted data ENC-DATA belongs is 1, the pipeline control unit 780 outputs the encrypted data ENC -DATA) may be connected to the first decoding block 721 which performs a decoding operation of one clock cycle. Accordingly, the decryption operation of one clock cycle is performed by the first decryption block 721 on the encrypted data (ENC-DATA), and the original data can be generated. Meanwhile, the first decryption block 721 may perform the decryption operation using the encryption key (KEY) provided from the pipeline controller 780. In another example, when the number of clock cycles 774 is 2, the pipeline control unit 780 outputs a second decryption block 723 in which the data path of the encrypted data (ENC-DATA) performs a decryption operation of two clock cycles, The switching signal SWS can be generated. Accordingly, the decryption operation of two clock cycles is performed by the second decryption block 723 on the encrypted data (ENC-DATA), so that the original data can be generated. Meanwhile, the second decryption block 723 may perform the decryption operation using the encryption key (KEY) provided from the pipeline controller 780.

페치 블록(730)은 원본 데이터를 프로세서(700)에 포함된 소정의 레지스터에 저장할 수 있다. 디코드 블록(732)은 상기 원본 데이터를 해독하고, 익스큐트 블록(734)은 상기 해독된 원본 데이터를 실행할 수 있다.The fetch block 730 may store the original data in a predetermined register included in the processor 700. [ The decode block 732 decodes the original data and the execution block 734 can execute the decoded original data.

상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(700)는 프로세서(700)의 내부, 즉 복수의 복호화 블록들(721, 723, 725)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(700)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(700) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(700)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the processor 700 according to another embodiment of the present invention performs a decoding operation on data in the processor 700, that is, in the plurality of decryption blocks 721, 723, and 725, The original data is not exposed and the data can be safely protected. In addition, the processor 700 according to another embodiment of the present invention performs pipelined decoding of data with fetching, decoding, and / or the like, thereby substantially reducing the performance of the processor 700 and the system including the same . In addition, the processor 700 according to another embodiment of the present invention includes a variable pipeline that adjusts the computation time of the decryption operation according to the security level of the data to be processed, It is possible to perform a decryption operation of a strong decryption algorithm and to perform a quick process on data requiring a low level of security.

도 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 processor 800 includes a variable pipeline 810 and a security level determination unit 850. The processor 800 of FIG. 8 includes a plurality of decryption blocks 821, 823, and 825 that perform decryption operations of different decryption algorithms on behalf of the variable decryption block 820 shown in FIG. 2, , But may have a similar configuration to the processor 200 of FIG.

보안 레벨 판단부(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 level determination unit 850 determines the security level of the encrypted data (ENC-DATA) to be processed by the processor 800. [ The security level determination unit 850 may include a security policy storage unit 860 and a pipeline control unit 880. The security policy storage unit 860 may store at least one security policy record 870 for the encrypted data ENC-DATA. As an example, the security policy record 870 may include a range of addresses 872, a number of clock cycles 874, and an encryption key 876, and may indicate the type of decryption / 878). The pipeline control unit 880 receives the address ADDR of the encrypted data ENC-DATA and sends a security policy including the range 872 of the address 872 to which the address ADDR received in the security policy storage unit 860 belongs. The policy record 870 can be searched. The pipeline control unit 880 generates a switching signal SWS for controlling the switch 822 based on the algorithm type 878 and / or the clock cycle number 874 included in the discovered security policy record 770 And provide the encryption key 876 included in the searched security policy record 870 to the decryption blocks 821, 823, and 825 included in the variable pipeline 810.

가변 파이프라인(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 variable pipeline 810 includes a plurality of decryption blocks 821, 823 and 825 having different decoding algorithms, a switch 822 disposed at the front end of the decryption blocks 821, 823 and 825, a fetch block 830 ), A decode block 832, and an exclude block 834. The decryption blocks 821, 823, and 825 may perform decryption operations of different decryption algorithms. For example, the first decoding block 821 performs the decoding operation of the first decoding algorithm, the second decoding block 823 performs the decoding operation of the second decoding algorithm, and the Nth decoding block 825 The decoding operation of the Nth decoding algorithm can be performed. The switch 822 responds to the switching signal SWS by sending the data path of the encrypted data ENC-DATA to one of the decryption blocks 821, 823 and 825 or to a block of the next stage (e.g., 830). In one embodiment, the variable pipeline 810 may further include a switch 828 disposed at the front end of the fetch block 830. The switch 828 may couple one of the plurality of data paths to the fetch block 830 in response to the switching signal SWSO.

파이프라인 제어부(880)는 암호화된 데이터(ENC-DATA)가 복호화 블록들(821, 823, 825) 중 알고리즘 종류(878)가 나타내는 복호화 알고리즘을 가지는 복호화 블록에 인가되도록 스위칭 신호(SWS)를 생성할 수 있다.The pipeline control unit 880 generates the switching signal SWS so that the encrypted data ENC-DATA is applied to the decoding block having the decoding algorithm represented by the algorithm type 878 among the decoding blocks 821, 823 and 825 can do.

예를 들어, 암호화된 데이터(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 algorithm type 878 corresponding to the address range 872 to which the address (ADDR) of the encrypted data (ENC-DATA) belongs indicates the first decryption algorithm, And generate a switching signal SWS so that the data path of the data (ENC-DATA) is connected to the first decoding block 821 performing the decoding operation of the first decoding algorithm. Accordingly, the decryption operation of the first decryption algorithm is performed by the first decryption block 821 on the encrypted data (ENC-DATA), and the original data can be generated. Meanwhile, the first decryption block 821 may perform the decryption operation using the encryption key (KEY) provided from the pipeline controller 880. In another example, when the algorithm type 878 indicates a second decryption algorithm, the pipeline control unit 880 determines whether the data path of the encrypted data (ENC-DATA) is a second decryption algorithm And generate the switching signal SWS to be connected to the decryption block 823. [ Accordingly, the decryption operation of the second decryption algorithm is performed by the second decryption block 823 on the encrypted data (ENC-DATA), so that the original data can be generated. Meanwhile, the second decryption block 823 can perform the decryption operation using the encryption key (KEY) provided from the pipeline controller 880. [

한편, 도 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 variable pipeline 810 includes two or more decryption blocks for performing one kind of decryption algorithm , And the two or more decoding blocks may have different computation times. In this case, the pipeline control unit 880 can generate the switching signal SWS so that the decryption operation is performed by the appropriate decryption block based on the algorithm type 878 and the clock cycle number 874.

페치 블록(830)은 원본 데이터를 프로세서(800)에 포함된 소정의 레지스터에 저장할 수 있다. 디코드 블록(832)은 상기 원본 데이터를 해독하고, 익스큐트 블록(834)은 상기 해독된 원본 데이터를 실행할 수 있다.The fetch block 830 may store the original data in a predetermined register included in the processor 800. [ Decode block 832 may decode the original data, and the execution block 834 may execute the decoded original data.

상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(800)는 프로세서(800)의 내부, 즉 복수의 복호화 블록들(821, 823, 825)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(800)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(800) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(800)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the processor 800 according to another embodiment of the present invention performs a decoding operation on data in the processor 800, i.e., a plurality of decryption blocks 821, 823, and 825, The original data is not exposed and the data can be safely protected. In addition, the processor 800 according to another embodiment of the present invention performs pipelined decoding of data with fetching, decoding, and / or the like, thereby substantially reducing the performance of the processor 800 and the system including the same . In addition, the processor 800 according to another embodiment of the present invention includes a variable pipeline that adjusts the computation time of the decryption operation according to the security level of the data to be processed, It is possible to perform a decryption operation of a strong decryption algorithm and to perform a quick process on data requiring a low level of security.

도 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 processor 900 includes a variable pipeline 910 and a security level determination unit 950. The processor 900 of FIG. 9 may have a similar configuration to the processor 200 of FIG. 2, in addition to further including a variable encryption block 940.

보안 레벨 판단부(950)는 프로세서(900)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단하고, 판단된 보안 레벨에 상응하는 클록 상이클 동안 복호화 동작 및 암호화 동작이 수행되도록 가변 파이프라인(910)에 포함된 가변 복호화 블록(920) 및 가변 암호화 블록(940)을 제어할 수 있다.The security level determination unit 950 determines the security level of the encrypted data (ENC-DATA) to be processed by the processor 900 and controls the variable level determination unit 950 to perform the decryption operation and the encryption operation while the clock level corresponding to the determined security level is high The variable decryption block 920 and the variable encryption block 940 included in the pipeline 910 can be controlled.

가변 파이프라인(910)은 가변 복호화 블록(920), 페치 블록(930), 디코드 블록(932), 익스큐트 블록(934) 및 가변 암호화 블록(940)을 포함할 수 있다. 가변 복호화 블록(920)은 프로세서(900)에 입력되는 암호화된 데이터(ENC_DATA)를 이의 보안 레벨에 상응하는 클록 사이클 동안 복호화하여 원본 데이터를 생성할 수 있다. 페치 블록(930)은 상기 원본 데이터를 레지스터에 저장할 수 있고, 디코드 블록(932)은 상기 레지스터에 저장된 원복 데이터를 해독할 수 있고, 익스큐트 블록(934)은 상기 해독된 원본 데이터를 실행할 수 있다.The variable pipeline 910 may include a variable decryption block 920, a fetch block 930, a decode block 932, an exclude block 934, and a variable encryption block 940. The variable decryption block 920 may decrypt the encrypted data ENC_DATA input to the processor 900 during a clock cycle corresponding to its security level to generate original data. The fetch block 930 may store the original data in a register and the decode block 932 may decode the raw data stored in the register and the execution block 934 may execute the decoded original data .

가변 암호화 블록(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 variable encryption block 940 encrypts the processing result of the original data during a clock cycle corresponding to the security level determined by the security level determination unit 950 And output the encrypted result data (ENC-RES-DATA) to the outside. In one embodiment, the security level determination unit 950 can control the variable encryption block 940 based on the security level of the encrypted data (ENC_DATA). In another embodiment, the security level determination unit 950 can control the variable encryption block 940 based on the security level of the encrypted result data (ENC-RES-DATA) to be stored in the external memory. For example, the security level determination unit 950 searches the address range including the address of the external memory where the encrypted result data (ENC-RES-DATA) is to be stored, and sets the number of clock cycles corresponding to the search range And controls the variable cryptographic block 940 to perform the cryptographic operation during the computation time of the number of the read clock cycles.

이러한 가변 파이프라인(910)은 파이프라인 방식으로 암호화된 데이터들(ENC_DATA)을 병렬적으로 처리할 수 있다. 도 10에는 가변 파이프라인(910)의 파이프라인 방식의 처리의 예가 도시되어 있다. 도 10에서, 1010은 일반 보안 레벨을 가지는 제1 암호화된 데이터(ENC-DATA1)에 대한 실행 타이밍을 나타내고, 1030은 일반 보안 레벨을 가지는 제2 암호화된 데이터(ENC-DATA2)에 대한 실행 타이밍을 나타내며, 1050은 높은 보안 레벨을 가지는 제3 암호화된 데이터(ENC-DATA3)에 대한 실행 타이밍을 나타내고, 1070은 높은 보안 레벨을 가지는 제4 암호화된 데이터(ENC-DATA4)에 대한 실행 타이밍을 나타낼 수 있다.This variable pipeline 910 can process the encrypted data ENC_DATA in a pipeline manner in parallel. Fig. 10 shows an example of the pipeline processing of the variable pipeline 910. Fig. 10, reference numeral 1010 denotes execution timing for the first encrypted data (ENC-DATA1) having the general security level, reference numeral 1030 denotes execution timing for the second encrypted data (ENC-DATA2) having the general security level 1050 indicates the execution timing for the third encrypted data (ENC-DATA3) having a high security level, and 1070 indicates the execution timing for the fourth encrypted data (ENC-DATA4) having the high security level have.

도 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 variable pipeline 910, that is, the variable decryption block 920, the fetch block 930, the decode block 932, the secret block 934, and the variable encryption block 940, (ENC-DATA1, ENC-DATA2, ENC-DATA3 and ENC-DATA4) in parallel, the performance of the processor 900 and the system including the same can be improved. In addition, since the encryption / decryption operation is performed in a pipelined manner together with the fetch operation, the decode operation, and the execution operation, the operation performance may not be substantially lowered. In addition, 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.

상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(900)는 프로세서(900)의 내부, 즉 가변 복호화 블록(920) 및 가변 암호화 블록(940)에서 데이터에 대한 복호화 동작 및 암호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(900)는 데이터의 복호화 및 암호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(900) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(900)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작 및 암호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화/암호화 알고리즘의 복호화/암호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the processor 900 according to another embodiment of the present invention performs a decryption operation and an encryption operation on data in the processor 900, that is, the variable decryption block 920 and the variable encryption block 940 The original data is not exposed to the outside, so that the data can be safely protected. In addition, the processor 900 according to another embodiment of the present invention performs pipelining of data decryption and encryption together with fetch, decode, and execution to improve the performance of the processor 900 and the system including the same It can be hardly lowered. In addition, the processor 900 according to another embodiment of the present invention includes a variable pipeline that adjusts the computation time of the decryption operation and the encryption operation according to the security level of the data to be processed, so that a high level of security is required A strong decryption / encryption algorithm decryption / encryption operation can be performed on the data, and faster processing can be performed on data requiring low level security.

한편, 도 9에는 가변 암호화 블록(940)이 익스큐트 블록(930)의 후단에 배치된 예가 도시되어 있으나, 가변 암호화 블록(940)은 가변 파이프라인 상의 임의의 위치에 배치될 수 있다. 또한, 실시예에 따라, 프로세서(900)는 가변 암호화 블록(940)과 함께, 또는 이를 대신하여, 도 6과 유사하게 직렬 연결된 복수의 암호화 블록들을 포함하거나, 도 7과 유사하게 서로 다른 연산 시간의 복수의 암호화 블록들을 포함하거나, 도 8과 유사하게 서로 다른 암호화 알고리즘의 복수의 암호화 블록들을 포함할 수 있다.9 shows an example in which the variable ciphering block 940 is disposed at the rear end of the execution block 930. However, the variable ciphering block 940 may be disposed at an arbitrary position on the variable pipeline. Also, according to an embodiment, the processor 900 may include a plurality of cryptographic blocks in series, similar to FIG. 6, with or instead of the variable cryptographic block 940, Or may include a plurality of cryptographic blocks of different encryption algorithms, similar to Fig.

도 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-chip 1100 may include a processor 1110 and a memory unit 1120. According to an embodiment, the system-on-chip 1100 may further include an input / output interface 1130, an encryption unit 1140, a power control unit 1150, and a bus 1160. According to an embodiment, the system-on-chip 1100 may be a smart card chip, a Trusted Platform Module (TPM) chip, or an application processor (AP).

프로세서(1110)는 시스템-온-칩(1100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(1110)는 메모리부(1120), 입출력 인터페이스(1130), 암호화부(1140), 파워 제어부(1150) 등의 동작을 제어할 수 있다. 또한, 프로세서(1110)는 암호화된 데이터(예를 들어, 암호화된 프로그램 데이터 또는 암호화된 일반 데이터)를 페치하고, 페치된 데이터를 처리할 수 있다. 프로세서(1110)는 중앙 처리 장치(Central Processing Unit; CPU) 또는 마이크로프로세서일 수 있다. 프로세서(1110)는 버스(1160)를 통하여 메모리부(1120)에 연결될 수 있다.Processor 1110 may control the overall operation of system-on-chip 1100. For example, the processor 1110 may control operations of the memory unit 1120, the input / output interface 1130, the encryption unit 1140, the power control unit 1150, and the like. The processor 1110 may also fetch the encrypted data (e.g., encrypted program data or encrypted generic data) and process the fetched data. The processor 1110 may be a central processing unit (CPU) or a microprocessor. The processor 1110 may be coupled to the memory unit 1120 via a bus 1160.

메모리부(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 memory unit 1120, data may be encrypted and stored. The memory unit 1120 may be a nonvolatile memory such as a volatile memory and / or a read only memory (ROM) 1124 such as a random access memory (RAM) 1122, a flash memory 1126, . ≪ / RTI > The random access memory 1122 may operate as a working memory for the processor 1110. For example, the random access memory 1122 may be implemented as a static random access memory (SRAM), a dynamic random access memory (DRAM), or the like. The boot-only memory 1124 and the flash memory 1126 may store a boot image or may store security data such as a cryptographic key, sensitive data, main code, and / or other general data have.

입출력 인터페이스(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 / output interface 1130 is connected to an external device, and the processor 1110 can communicate with the external device via the input / output interface 1130. For example, the input / output interface 1130 may be a Universal Serial Bus (USB), a Multi-Media Card (MMC), a Peripheral Component Interconnect-Express (PCI-E), a Serial Attached SCSI (SAS), a Serial Advanced Technology Attachment ), PATA (Parallel Advanced Technology Attachment), SCSI (Small Computer System Interface), ESDI (Enhanced Small Disk Interface), IDE .

암호화부(1140)는 입출력 인터페이스(1130)를 통한 외부의 암호화/복호화 요청에 응답하여 암호화/복호화 동작을 수행할 수 있다. 암호화부(1140)는 AES(Advanced Encryption Standard)부(1142), DES(Data Encryption Standard)부(1144), RSA(Rivest Shamir Adleman)부(1146) 등을 포함하여 다양한 알고리즘의 암호화/복호화 동작을 수행할 수 있다. 파워 제어부(1150)는 시스템-온-칩(1100)의 파워를 제어 및 관리할 수 있다.The encryption unit 1140 can perform an encryption / decryption operation in response to an external encryption / decryption request through the input / output interface 1130. The encryption unit 1140 encrypts and decrypts various algorithms including an AES (Advanced Encryption Standard) unit 1142, a DES (Data Encryption Standard) unit 1144, an RSA (Rivest Shamir Adleman) Can be performed. The power control unit 1150 can control and manage the power of the system-on-chip 1100.

한편, 메모리부(1120)에는 데이터가 암호화되어 저장될 수 있다. 프로세서(1110)는 메모리부(1120)로부터 상기 암호화된 데이터를 수신할 수 있다. 또한, 프로세서(1110)는 상기 암호화된 데이터의 보안 레벨을 판단하여 상기 판단된 보안 레벨에 상응하는 클록 사이클 동안 상기 암호화된 데이터에 대한 복호화 동작을 수행하여 원본 데이터를 생성할 수 있고, 상기 원본 데이터를 처리할 수 있다. 프로세서(1110)는 프로세서(100)의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 프로세서(1110)는 데이터의 암호화/복호화를 프로세서(1110)의 파이프라인에서 수행함으로써, 프로세서(1110) 및 이를 포함하는 시스템(1100)의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 프로세서(1110)는 처리될 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.Meanwhile, data may be encrypted and stored in the memory unit 1120. The processor 1110 may receive the encrypted data from the memory unit 1120. [ In addition, the processor 1110 may determine the security level of the encrypted data and perform a decryption operation on the encrypted data during a clock cycle corresponding to the determined security level to generate original data, Lt; / RTI > The processor 1110 encrypts / decrypts the data in the processor 100, thereby protecting the data from being exposed to the outside. In addition, the processor 1110 may perform encryption / decryption of data in the pipeline of the processor 1110, thereby substantially reducing the performance of the processor 1110 and the system 1100 including the same. In addition, the processor 1110 includes a variable pipeline that adjusts the computation time of the encryption / decryption operation according to the security level of the data to be processed, thereby providing a strong encryption / decryption algorithm encryption / decryption algorithm for data requiring a high level of security, It is possible to perform a decryption operation and to perform a quick process on data requiring a low level of security.

도 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 smart card 1200 including a system-on-a-chip 1100 according to embodiments of the present invention. 12, the smart card 1200 includes a system-on-a-chip 1100, first and second base members 1210 and 1220, a contact portion 1230, and an antenna 1240.

제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 second base members 1210 and 1220 may be formed of plastic or similar material. The system-on-chip 1100 is formed between the first and second base members 1210 and 1220. The system-on-chip 1100 may be a smart card chip included in the smart card 1200. The first base member 1210 is formed with a contact portion 1230 including a plurality of pins. The contact portion 1230 may be an interface for directly contacting and exchanging data with an external device such as a card terminal. For example, the contacts 1230 may conform to standards such as the International Standardization Organization (ISO) 7816. The antenna 1240 may be formed as a coil between the first and second base members 1210 and 1220. The antenna 1240 can transmit and receive radio signals of a predetermined frequency to an external device. For example, the antenna 1240 may conform to standards such as ISO 14443.

시스템-온-칩(1100)에 포함된 프로세서는 상기 프로세서의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 프로세서 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 시스템-온-칩(1100)에 포함된 프로세서는 데이터의 암호화/복호화를 프로세서의 파이프라인에서 수행함으로써, 프로세서 및 이를 포함하는 시스템(1100)의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 시스템-온-칩(1100)에 포함된 프로세서는 처리될 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.The processor included in the system-on-chip 1100 performs an encryption / decryption operation on data in the processor, thereby protecting the data from being exposed to the outside of the processor. In addition, the processor included in the system-on-chip 1100 may perform encryption / decryption of data in the processor's pipeline, thereby substantially reducing the performance of the processor and the system 1100 including the same. In addition, the processor included in the system-on-chip 1100 includes a variable pipeline that adjusts the computation time of the encryption / decryption operation according to the security level of the data to be processed, The encryption / decryption operation of the strong encryption / decryption algorithm can be performed, and the processing can be performed faster for data requiring low level security.

도 12에는 접촉부(1230) 및 안테나(1240)를 포함하는 콤비 카드(즉, 듀얼 인터페이스 카드)의 예가 도시되어 있으나, 실시예에 따라, 스마트 카드(1200)는 접촉식 인터페이스 또는 비접촉식 인터페이스 중 어느 하나만을 포함할 수 있다. 다른 실시예에서, 스마트 카드(1200)는 접촉식 집적 회로 및 비접촉식 집적 회로를 포함하는 하이브리드 카드(hybrid card)일 수 있다.12 shows an example of a combi card (i.e., a dual interface card) including a contact 1230 and an antenna 1240, however, according to an embodiment, the smart card 1200 may be any one of a contact interface or a non- . ≪ / RTI > In another embodiment, the smart card 1200 may be a hybrid card including a contact integrated circuit and a non-contact integrated circuit.

도 13의 예에서, 본 발명의 실시예들에 따른 시스템-온-칩을 포함하는 카드(1350)는 휴대 기기(1300)에 탈부착 가능하게 장착되는 가입자 인증 모듈(Subscriber Identity Module; SIM) 카드(1350)일 수 있다.13, a card 1350 including a system-on-chip according to embodiments of the present invention includes a subscriber identity module (SIM) card (not shown) removably mounted to the portable device 1300 1350).

한편, 실시예에 따라, 본 발명의 실시예들에 따른 시스템-온-칩을 포함하는 카드는 스마트 카드(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 portable device 1300 may be a cellular phone, a smart phone, a tablet PC, a laptop computer, a personal digital assistant (PDA), a portable multimedia player such as a portable multimedia player (PMP), a digital camera, a music player, a portable game console, navigation, and the like.

도 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 computing system 1400 may include a CPU 1410, a system memory 1430, a chipset 1450, and a Trusted Platform Module (TPM) 1470. According to an embodiment, the computing system 1400 may be a personal computer (PC), a server computer, a workstation, a laptop, a cellular phone, a smart phone, A personal digital assistant (PDA), a portable multimedia player (PMP), a digital camera, a digital television, a set-top box, A music player, a portable game console, navigation, and the like.

CPU(1410)는 마더보드(Motherboard) 또는 메인보드(Mainboard)와 같은 보드 상에 장착되고, 특정 계산들 또는 태스크들을 실행할 수 있다. CPU(1410)는 시스템 메모리(1430)의 동작을 제어하는 메모리 컨트롤러를 포함할 수 있다. 시스템 메모리(1430)에는 CPU(1410)에 의해 처리되는 데이터가 저장될 수 있다. 또한, CPU(1410)는 칩셋(1450)에 연결될 수 있다. 칩셋(1450)은 주변 장치들에 대한 인터페이스를 제공할 수 있다. 칩셋(1450)은 컨트롤러 칩셋으로서 입출력 허브 및 입출력 컨트롤러 허브를 포함할 수 있다.The CPU 1410 is mounted on a board such as a motherboard or a mainboard and can execute certain calculations or tasks. The CPU 1410 may include a memory controller that controls the operation of the system memory 1430. The system memory 1430 may store data processed by the CPU 1410. [ Also, the CPU 1410 may be coupled to the chipset 1450. Chipset 1450 may provide an interface to peripheral devices. Chipset 1450 may include an input / output hub and an input / output controller hub as a controller chipset.

신뢰 플랫폼 모듈(1470)은 마더보드(Motherboard) 또는 메인보드(Mainboard)와 같은 보드 상에 장착되고, 직렬 주변 인터페이스(Serial Peripheral Interface; SPI) 버스 또는 PCIe(Peripheral Component Interconnect Express) 버스를 통해 칩셋(1450)에 연결될 수 있다. 신뢰 플랫폼 모듈(1470)은 데이터 암호화/복호화, 해싱(Hashing), 난수(Random Number) 생성, 암호화 키 생성 등과 같은 보안 기능들을 제공할 수 있다.Trust platform module 1470 may be mounted on a board such as a motherboard or a mainboard and connected to a chipset (not shown) via a Serial Peripheral Interface (SPI) bus or a Peripheral Component Interconnect Express (PCIe) 1450). Trust platform module 1470 may provide security functions such as data encryption / decryption, hashing, random number generation, encryption key generation, and the like.

한편, 신뢰 플랫폼 모듈(1470)에 프로세서는 상기 프로세서의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 프로세서 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 신뢰 플랫폼 모듈(1470)의 프로세서는 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인(1490)을 포함할 수 있다. 이에 따라, 신뢰 플랫폼 모듈(1470)의 프로세서는 동작 성능이 거의 저하되지 않으면서 강력한 암호화/복호화 동작을 수행할 수 있다.Meanwhile, in the trusted platform module 1470, the processor performs an encryption / decryption operation on the data in the processor, so that the original data is not exposed to the outside of the processor, thereby safely protecting the data. In addition, the processor of trusted platform module 1470 may include a variable pipeline 1490 that includes an encryption / decryption stage that performs encryption / decryption operations during adaptively controlled computation times. Accordingly, the processor of the trusted platform module 1470 can perform a strong encryption / decryption operation without substantially degrading operational performance.

도 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 portable device 1500 includes an application processor 1510, a memory 1520, a user interface 1530, a power supply 1540, a trusted platform module 1550, and a storage device 1560 . According to an embodiment, the portable device 1500 may further include a modem such as a baseband chipset, an image processor, and the like. Meanwhile, according to the embodiment, the portable device 1500 may be a cellular phone, a smart phone, a personal digital assistant (PDA), a portable multimedia player (PMP), a digital camera Such as a digital camera, a music player, a portable game console, a navigation system, a laptop computer, and the like.

어플리케이션 프로세서(1510)는 휴대 기기(1500)의 전반적인 동작을 제어할 수 있다. 일 실시예에서, 어플리케이션 프로세서(1510)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 실시예에 따라, 어플리케이션 프로세서(1510)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(910)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다.The application processor 1510 can control the overall operation of the portable device 1500. [ In one embodiment, application processor 1510 may execute applications that provide Internet browsers, games, animations, and the like. According to an embodiment, the application processor 1510 may include a single processor core or a plurality of processor cores (Multi-Core). For example, the processor 910 may include a multi-core such as a dual-core, a quad-core, and a hexa-core.

한편, 어플리케이션 프로세서(1510)는 시스템-온-칩(System-On-Chip)으로 구현될 수 있다. 상기 시스템-온-칩에 포함된 프로세서는 상기 프로세서의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 프로세서 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 상기 시스템-온-칩의 프로세서는 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인(1515)을 포함할 수 있다. 이에 따라, 상기 시스템-온-칩의 프로세서는 동작 성능이 거의 저하되지 않으면서 강력한 암호화/복호화 동작을 수행할 수 있다.On the other hand, the application processor 1510 may be implemented as a system-on-chip. The processor included in the system-on-chip performs encryption / decryption operations on data in the processor, thereby protecting the data from being exposed to the outside of the processor. In addition, the processor of the system-on-chip may include a variable pipeline 1515 that includes an encryption / decryption stage for performing encryption / decryption operations during an adaptively controlled computation time. Accordingly, the processor of the system-on-chip can perform a strong encryption / decryption operation with little deterioration in operational performance.

메모리(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 memory 1520 stores data necessary for the operation of the portable device 1500. For example, the memory 1520 may store a boot image for booting the portable device 1500, and may store data transmitted to and received from the external device. For example, the memory 1520 may be implemented as a volatile memory such as a dynamic random access memory (DRAM), a static random access memory (SRAM), a mobile DRAM, a DDR SDRAM, an LPDDR SDRAM, a GDDR SDRAM, an RDRAM, or an EEPROM Programmable Read-Only Memory, Flash Memory, PRAM, Resistance Random Access Memory (RRAM), Nano Floating Gate Memory (NFGM), Polymer Random Access Memory (PoRAM) Random Access Memory), FRAM (Ferroelectric Random Access Memory), and the like.

사용자 인터페이스(1530)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치 및/또는 스피커, 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(1540)는 휴대 기기(1500)의 구동 전원을 공급할 수 있다.The user interface 1530 may include one or more input devices such as a keypad, a touch screen, and / or one or more output devices such as speakers, display devices, and the like. The power supply 1540 can supply the driving power of the portable device 1500.

신뢰 플랫폼 모듈(1550)은 데이터 암호화/복호화, 해싱(Hashing), 난수(Random Number) 생성, 암호화 키 생성 등과 같은 보안 기능들을 제공할 수 있다. 신뢰 플랫폼 모듈(1550)에 포함된 프로세서 또한 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인을 포함할 수 있다.Trust platform module 1550 may provide security functions such as data encryption / decryption, hashing, random number generation, encryption key generation, and the like. The processor included in trust platform module 1550 may also include a variable pipeline that includes an encryption / decryption stage that performs encryption / decryption operations during adaptively controlled computation times.

저장 장치(1560)는 메모리 카드(Memory Card), 솔리드 스테이트 드라이브(Solid State Drive; SSD), 하드 디스크 드라이브(Hard Disk Drive; HDD), 씨디롬(CD-ROM) 등을 포함할 수 있다. 한편, 저장 장치(1560)는 스마트 카드를 포함할 수 있고, 스마트 카드의 프로세서 또한 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인을 포함할 수 있다.The storage device 1560 may include a memory card, a solid state drive (SSD), a hard disk drive (HDD), a CD-ROM, and the like. Meanwhile, the storage device 1560 may include a smart card, and the processor of the smart card may also include a variable pipeline that includes an encryption / decryption stage that performs encryption / decryption operations during adaptively controlled computation times. have.

휴대 기기(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 portable device 1500 can be implemented using various types of packages, for example, package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs) (Plastic In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB (Chip On Board), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP) Thin Quad Flat-Pack (TQFP), Small Outline Integrated Circuit (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline Package (TSOP) (Multi-Chip Package), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package (WSP), and the like.

본 발명은 임의의 프로세서 및 프로세서를 포함하는 시스템-온-칩에 적용될 수 있다. 예를 들어, 본 발명은 스마트 카드(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.
제1 항에 있어서, 상기 가변 파이프라인은,
상기 암호화된 데이터의 상기 보안 레벨에 따라 상기 복호화 동작의 연산 시간을 변경하는 가변 복호화 블록을 포함하는 것을 특징으로 하는 프로세서.
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.
제1 항에 있어서, 상기 가변 파이프라인은,
상기 프로세서에 입력되는 상기 암호화된 데이터를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 복호화하여 상기 원본 데이터를 생성하는 가변 복호화 블록;
상기 원본 데이터를 레지스터에 저장하는 페치 블록;
상기 원본 데이터를 해독하는 디코드 블록; 및
상기 해독된 원본 데이터를 실행하는 익스큐트 블록을 포함하는 것을 특징으로 하는 프로세서.
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.
제1 항에 있어서, 상기 가변 파이프라인은,
상기 프로세서에 입력되는 상기 암호화된 데이터를 레지스터에 저장하는 페치 블록;
상기 레지스터에 저장된 상기 암호화된 데이터를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 복호화하여 상기 원본 데이터를 생성하는 가변 복호화 블록;
상기 원본 데이터를 해독하는 디코드 블록; 및
상기 해독된 원본 데이터를 실행하는 익스큐트 블록을 포함하는 것을 특징으로 하는 프로세서.
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.
제1 항에 있어서, 상기 가변 파이프라인은,
직렬로 연결된 복수의 복호화 블록들; 및
상기 복호화 블록들의 전단에 각각 배치되고, 각각이 데이터 경로를 상기 복호화 블록들 중 상응하는 복호화 블록 또는 다음 스테이지의 블록에 선택적으로 연결하는 복수의 스위치들을 포함하는 것을 특징으로 하는 프로세서.
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.
제1 항에 있어서, 상기 가변 파이프라인은,
서로 다른 연산 시간 동안 상기 복호화 동작을 수행하는 복수의 복호화 블록들; 및
데이터 경로를 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 상기 클록 사이클의 상기 연산 시간을 가지는 복호화 블록에 연결하는 스위치를 포함하는 것을 특징으로 하는 프로세서.
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.
제1 항에 있어서, 상기 가변 파이프라인은,
서로 다른 복호화 알고리즘의 상기 복호화 동작을 수행하는 복수의 복호화 블록들; 및
데이터 경로를 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 상기 복호화 알고리즘의 복호화 블록에 연결하는 스위치를 포함하는 것을 특징으로 하는 프로세서.
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.
제1 항에 있어서, 상기 가변 파이프라인은, 상기 원본 데이터의 처리 결과를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 암호화하여 외부로 출력하는 것을 특징으로 하는 프로세서.The processor according to claim 1, wherein the variable pipeline encrypts the processing result of the original data during the clock cycle corresponding to the security level and outputs the encrypted data to the outside. 제1 항에 있어서, 상기 보안 레벨 판단부는,
상기 암호화된 데이터에 대한 어드레스 범위, 및 상기 어드레스 범위에 상응하는 클록 사이클 수를 저장하는 보안 정책 저장부; 및
상기 프로세서에서 처리될 상기 암호화된 데이터의 어드레스를 수신하고, 상기 보안 정책 저장부로부터 상기 수신된 어드레스가 속하는 상기 어드레스 범위에 상응하는 상기 클록 사이클 수를 독출하고, 상기 독출된 클록 사이클 수에 상응하는 연산 시간 동안 상기 복호화 동작을 수행하도록 상기 가변 파이프라인을 제어하는 파이프라인 제어부를 포함하는 것을 특징으로 하는 프로세서.
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.
KR1020140003933A 2013-12-10 2014-01-13 Processor having a variable pipeline, and system-on-chip Withdrawn KR20150068264A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载