KR101475821B1 - Apparatus and method for encryption in system on chip - Google Patents

Apparatus and method for encryption in system on chip Download PDF

Info

Publication number
KR101475821B1
KR101475821B1 KR1020080075984A KR20080075984A KR101475821B1 KR 101475821 B1 KR101475821 B1 KR 101475821B1 KR 1020080075984 A KR1020080075984 A KR 1020080075984A KR 20080075984 A KR20080075984 A KR 20080075984A KR 101475821 B1 KR101475821 B1 KR 101475821B1
Authority
KR
South Korea
Prior art keywords
encryption
address
data
seed value
seed
Prior art date
Application number
KR1020080075984A
Other languages
Korean (ko)
Other versions
KR20100015077A (en
Inventor
정석호
김주광
권윤주
홍기준
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020080075984A priority Critical patent/KR101475821B1/en
Publication of KR20100015077A publication Critical patent/KR20100015077A/en
Application granted granted Critical
Publication of KR101475821B1 publication Critical patent/KR101475821B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

본 발명은 시스템 온 칩에서 암호화 방법 및 장치에 관한 것으로서, 데이터와 주소를 입력받는 과정과, 상기 주소의 일부 비트를 이용하여 기 저장된 시드 테이블에서 암호화 시드 값을 선택하는 과정과, 상기 주소의 나머지 비트를 이용하여 상기 선택된 암호화 시드 값을 변형하는 과정과, 상기 변형된 시드 값으로 상기 데이터를 암호화하는 과정을 포함하여, 버스(bus)와 IP 사이에 추가된 래퍼(wrapper) 형식의 암호화/복호화 계층을 통해 주소(address) 정보를 이용하여 암호화를 위한 시드(seed)를 선택 및 변형하여 암호화/복호화를 수행함으로써, 소프트웨어 운영체제(Operating System) 수준에서의 해킹(hacking) 혹은 상호접속(interconnection)에 대해서 하드웨어적인 수준의 보안 기법을 제공할 수 있다.The present invention relates to an encryption method and apparatus in a system-on-chip, the method comprising: receiving data and an address; selecting an encryption seed value from a pre-stored seed table using some bits of the address; And a step of encoding the data using the modified seed value, wherein the step of encrypting the data with the modified seed value comprises: encrypting / decrypting a wrapper type added between a bus and an IP, The encryption and decryption are performed by selecting and modifying a seed for encryption by using address information through a hierarchical layer so as to prevent hacking or interconnection at a level of a software operating system A hardware level security technique can be provided.

SOC(System On Chip), 암호화(encryption), 시드(seed), 암호(cipher) System On Chip (SOC), encryption, seed, cipher,

Description

시스템 온 칩에서 암호화 방법 및 장치{APPARATUS AND METHOD FOR ENCRYPTION IN SYSTEM ON CHIP}[0001] APPARATUS AND METHOD FOR ENCRYPTION IN SYSTEM ON CHIP [0002]

본 발명은 시스템 온 칩에서 암호화 방법 및 장치에 관한 것으로서, 특히 버스(bus)와 IP 사이에 래퍼(wrapper) 형식의 암호화/복호화 계층을 추가하여 데이터의 암호화/복호화(encryption/decryption)를 수행하는 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption method and apparatus in a system-on-chip, and more particularly, to an encryption / decryption layer in a wrapper format between a bus and an IP to perform encryption / ≪ / RTI >

일반적으로, 시스템 온 칩(System On Chip)에서는 도 1에 도시된 바와 같이 공통의 데이터 전송로인 버스(BUS)를 사용하여 중앙 처리 장치(CPU; Central Processor Unit)와 메모리(memory) 및 기타 주변기기들을 연결하고 있으며, 최근에는 단일 칩의 확장성을 위해 상기 시스템 온 칩 내부의 버스 신호들을 외부와 연결하여 상기 시스템 온 칩에 메모리 혹은 주변 기기를 추가할 수 있도록 하고 있다. 2. Description of the Related Art Generally, as shown in FIG. 1, in a system on chip, a central processing unit (CPU), a memory and other peripherals are connected to each other by using a bus (BUS) In recent years, memory signals or peripheral devices can be added to the system-on-chip by connecting bus signals in the system-on-chip to the outside in order to expand a single chip.

한편, 최근에는 전기전자 기술의 발달로 인해 과거보다 가치적으로 중요한 정보들이 디지털화되면서, 상기 정보들에 대한 보안과 저작권에 대한 관심이 높아 지고 있다. 예를 들어, 전자거래에 사용되는 아이디(ID), 비밀번호(password) 및 인증서 등과 같은 사용자 개인 정보가 누출될 경우, 사용자의 명의 도용을 통한 피해가 발생될 수 있으며, 특정 기기의 펌웨어(Firmware)가 유출될 경우 이를 해킹(Hacking)한 펌웨어를 통해 상기 펌웨어가 상기 제작자의 의도와는 다른 용도로 사용될 수 있어, 이를 방지 혹은 해결하기 위한 보안 및 저작권에 대한 연구가 활발히 진행되고 있다.In recent years, due to the development of electric and electronic technology, information that is more valuable than the past has been digitized, and interest in security and copyright of the above information is increasing. For example, if user personal information such as an ID, a password, and a certificate used for electronic transactions is leaked, damage may be caused through impersonation of the user, and the firmware of the specific device may be damaged. The firmware can be used for a purpose other than the intention of the maker through the hacking firmware, and studies on security and copyright for preventing or solving the firmware have been actively conducted.

종래에는 상기 중요한 정보들을 보호하기 위해 몇 가지 보안 기법이 제공되고 있다. 예를 들어, 소프트웨어 수준에서 중요한 정보를 암호화하여 저장하는 기법, 물리적으로 접근 가능한 외부 메모리 혹은 주변 기기에 전용의 암호와 인터페이스(encryption interface)를 이용하는 기법, 멀티 프로세서에 의한 내무 메모리의 정보 추출을 방지하기 위하여 내부적으로 이중 구조를 설계하는 기법, 및 버스 수준에서 영역별로 접근을 제어하는 기법이 제공되고 있다.In the past, several security techniques have been provided to protect the important information. For example, a technique for encrypting and storing important information at a software level, a technique for using a dedicated encryption and interface for a physically accessible external memory or a peripheral device, A technique for internally designing a dual structure, and a technique for controlling area-by-area access at the bus level are provided.

하지만, 상술한 바와 같이 종래에 제공되는 기법들은 모두 단점을 지니고 있다. 먼저, 상기 소프트웨어 수준에서 정보를 암호화하여 저장하는 기법은 소프트웨어 코드가 복잡해지며, 상기 중앙 처리 장치의 전력을 소모하게 되고, 다른 소프트웨어를 이용할 경우 전체 시스템에 저장된 중요 데이터에 접근이 가능해지는 문제가 있다. 그리고, 상기 외부 메모리 혹은 주변 기기에 전용의 암호와 인터페이스를 이용하는 기법은 동일한 암호화 인터페이스가 적용되지 않은 다른 칩과는 상기 외부 메모리 혹은 주변 기기를 공유할 수 없는 단점이 있으며, 상기 내부적으로 이중 구조를 설계하는 기법은 칩 내부에 두 개의 도메인(domain)이 생성되어 버스나 기 타 구조를 이중으로 설계해야 하므로 복잡도가 증가하며, 내부 도메인 간의 데이터 교환이 전용의 인터페이스를 통해서만 이루어져야 한다는 단점이 있다. 마지막으로, 상기 버스 수준에서 영역별로 접근을 제어하는 기법은 버스의 디버그 모드(debug mode) 등을 통해 버스 데이터가 유출될 수 있는 문제점이 있다.However, as described above, all the techniques provided in the prior art have disadvantages. First, the technique of encrypting and storing information at the software level complicates the software code, consumes power of the central processing unit, and accesses important data stored in the entire system when using other software . The technique using a dedicated encryption and interface for the external memory or peripheral device has a disadvantage in that it can not share the external memory or peripheral device with another chip to which the same encryption interface is not applied. In the designing method, since two domains are created in the chip, the bus or other structure must be designed in a dual structure, so that the complexity increases and data exchange between internal domains must be performed only through a dedicated interface. Lastly, there is a problem that bus data may be leaked through a debug mode of the bus or the like.

따라서, 상기와 같은 문제점들을 해결할 수 있는 보안 기법이 필요되고 있다.Accordingly, there is a need for a security technique that can solve the above problems.

본 발명은 상술한 바와 같은 문제점을 해결하기 위해 도출된 것으로서, 본 발명의 목적은 시스템 온 칩에서 암호화 방법 및 장치를 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide an encryption method and apparatus in a system-on-a-chip.

본 발명의 다른 목적은 시스템 온 칩에서 하드웨어 수준에서 정보를 암호화/복호화하는 보안 방법 및 장치를 제공함에 있다.It is another object of the present invention to provide a security method and apparatus for encrypting / decrypting information at a hardware level in a system-on-chip.

본 발명의 또 다른 목적은 시스템 온 칩에서 버스(bus)와 IP 사이에 래퍼(wrapper) 형식의 암호화/복호화 계층을 추가하여 데이터를 암호화/복호화(encryption/decryption)하기 위한 방법 및 장치를 제공함에 있다.It is still another object of the present invention to provide a method and apparatus for encrypting / decrypting data by adding a wrapper-type encryption / decryption layer between a bus and an IP in a system-on-chip have.

본 발명의 또 다른 목적은 시스템 온 칩에서 주소(address) 정보를 이용하여 암호화를 위한 시드(seed)를 선택 및 변형하여 암호화를 수행하기 위한 방법 및 장치를 제공함에 있다.It is still another object of the present invention to provide a method and apparatus for performing encryption by selecting and modifying a seed for encryption using address information in a system-on-chip.

상술한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 시스템 온 칩에서 암호화 방법은, 데이터와 주소를 입력받는 과정과, 상기 주소의 일부 비트를 이용하여 기 저장된 시드 테이블에서 암호화 시드 값을 선택하는 과정과, 상기 주소의 나머지 비트를 이용하여 상기 선택된 암호화 시드 값을 변형하는 과정과, 상기 변형된 시드 값으로 상기 데이터를 암호화하는 과정을 포함한다.According to a first aspect of the present invention, there is provided an encryption method in a system-on-chip, comprising: receiving data and an address; Modifying the selected encryption seed value using the remaining bits of the address, and encrypting the data with the modified seed value.

상술한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 시스템 온 칩에서 암호화 장치는, 데이터와 주소를 출력하는 IP 장치와, 상기 IP 장치로부터 제공되는 주소의 일부 비트를 이용하여 기 저장된 시드 테이블에서 암호화 시드 값을 선택하고, 상기 주소의 나머지 비트로 상기 선택된 암호화 시드 값을 변형하여 상기 데이터를 암호화하는 암호 래퍼(wrapper)를 포함한다.According to a second aspect of the present invention, there is provided an encryption device in a system-on-chip, comprising: an IP device outputting data and an address; And a cryptographic wrapper for encrypting the data by selecting an encryption seed value from the table and modifying the selected encryption seed value with the remaining bits of the address.

본 발명에서는 시스템 온 칩에서 버스(bus)와 IP 사이에 래퍼(wrapper) 형식의 암호화/복호화 계층을 추가하고, 주소(address) 정보를 이용하여 암호화를 위한 시드(seed)를 선택 및 변형하여 암호화/복호화를 수행함으로써, 소프트웨어 운영체제(Operating System) 수준에서의 해킹(hacking) 혹은 상호접속(interconnection)에 대한 하드웨어적인 불법접근에 대해서 하드웨어적인 수준의 보안 기법을 제공할 수 있다. 또한, 상기 암호화/복화화 계층의 위치와 그 동작 특성을 이용하여 다양한 방법으로 활용이 가능하며, 특정 주소에 대한 하드웨어적인 접근 제어가 가능하고, 주소 맵핑 테이블(address mapping table)을 이용한 가상 주소 맵핑(address mapping)등을 통해 물리적인 메모리의 가상화를 하드웨어 수준에서 제공할 수 있어 종래 기법들에 비해 강력한 보안 수단으로 사용될 수 있는 효과가 있다.In the present invention, a wrapper-type encryption / decryption layer is added between a bus and an IP in a system-on-chip, and a seed for encryption is selected and transformed using address information, It is possible to provide a hardware level security technique for hardware illegal access to hacking or interconnection at a level of a software operating system (Operating System). In addition, it is possible to use various methods by using the position of the encryption / decryption layer and its operation characteristics, hardware access control can be performed for a specific address, and virtual address mapping using an address mapping table it is possible to provide physical memory virtualization at the hardware level through address mapping and the like, which can be used as a strong security measure compared to the conventional techniques.

이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 설명한다. 그리 고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings. In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

이하 본 발명에서는 시스템 온 칩에서 버스(bus)와 IP(Intelligent Peripheral) 장치 사이에 래퍼(wrapper) 형식의 암호화/복호화 계층을 추가하고, 주소(address) 정보를 이용하여 암호화를 위한 시드(seed) 값을 선택 및 변형하여 암호화/복호화를 수행하는 기술에 관해 설명할 것이다.In the present invention, a wrapper-type encryption / decryption layer is added between a bus and an IP (Intelligent Peripheral) device in a system-on-chip, a seed for encryption is generated using address information, A technique for performing encryption / decryption by selecting and modifying a value will be described.

본 발명에서는 시스템 온 칩에서 도 2에 도시된 바와 같이 중앙 처리 장치(CPU: Central Processor Unit), 내부 메모리(Internal Memory), 외부 메모리(External Memory) 혹은 주변 기기(Peripheral device)와 같은 각각의 IP와 버스 사이에 암호화/복호화를 수행하는 계층, 즉 암호 래퍼(Cipher Wrapper)(200, 202, 204, 206, 208)를 추가하여 하드웨어 수준에서 데이터의 암호화/복호화를 수행한다. 즉, 상기 IP와 버스 사이에 암호 래퍼를 추가하여 상기 IP에서 버스로 출력되는 데이터를 암호화할 수 있다. 여기서, 상기 각각의 IP와 버스 사이에는 필요에 따라 상기 암호 래퍼가 추가될 수도 있으며, 추가되지 않을 수도 있다.In the present invention, as shown in FIG. 2, in the system-on-chip, each IP such as a central processing unit (CPU), an internal memory, an external memory or a peripheral device (Cipher Wrapper) 200, 202, 204, 206, 208 for performing encryption / decryption between the bus and the bus to encrypt / decrypt data at the hardware level. That is, it is possible to encrypt data output from the IP to the bus by adding a password wrapper between the IP and the bus. Here, the encryption wrapper may be added between the respective IPs and the bus, if necessary, or may not be added.

그러면, 하기 도 3을 참조하여 상기 암호 래퍼의 상세한 블록 구성에 대해 살펴보기로 한다. 이하에서는 상기 암호 래퍼가 데이터를 암호화하는 동작을 예로 들어 설명하며, 상기 암호 래퍼가 이하 설명되는 암호화 방식으로 암호화된 데이터를 대응되는 방식으로 복호화하는 것은 당연할 것이다.Hereinafter, a detailed block configuration of the encryption wrapper will be described with reference to FIG. Hereinafter, an operation of encrypting data by the cryptographic wrapper will be described as an example, and it will be appreciated that the cryptographic wrapper decrypts the data encrypted with the cryptographic method described below in a corresponding manner.

도 3은 본 발명에 따른 시스템 온 칩에서 암호 래퍼의 상세한 블록 구성을 도시하고 있다.FIG. 3 shows a detailed block configuration of a cryptographic wrapper in a system-on-chip according to the present invention.

상기 도 3을 참조하면, 상기 암호 래퍼(310)는 CPU(300)와 버스 래퍼(320) 사이에 존재하며, 영역 선택부(Range Selector)(312), 시드 메모리(Seed memory)(314), 시드 변형부(Seed Modifier)(316), 데이터 마스킹부(310)를 포함하여 구성된다. 여기서는, 상기 암호 래퍼(310)가 상기 CPU(300)와 버스 래퍼(320) 사이에 존재하는 경우를 예로 들어 설명하지만, 상기 CPU(300)이외의 다른 IP 장치와 버스 래퍼 사이에 존재할 경우에도 동일하게 적용된다.3, the encryption wrapper 310 is located between the CPU 300 and the bus wrapper 320 and includes a range selector 312, a seed memory 314, A Seed Modifier 316, and a data masking unit 310. [ Here, the case where the encryption wrapper 310 exists between the CPU 300 and the bus wrapper 320 is described as an example. However, even when there exists an IP device other than the CPU 300 and the bus wrapper, Lt; / RTI >

먼저, 상기 암호 래퍼(310)는 상기 CPU(310)로부터 데이터와 주소가 제공되면, 상기 주소를 이용하여 암호화 시드(encryption seed) 값을 선택 및 변형한 후, 상기 변형된 암호화 시드로 상기 데이터를 암호화하여 상기 버스 래퍼(320)로 제공한다. First, when the data and the address are provided from the CPU 310, the encryption wrapper 310 selects and modifies an encryption seed value using the address, and then transmits the data to the modified encryption seed And provides the encrypted data to the bus wrapper 320.

즉, 상기 암호 래퍼(310)는 상기 영역 선택부(312)를 통해 상기 CPU(300)로부터 입력되는 주소(address)에서 일부 비트(bit)를 추출하여 상기 데이터를 저장할 주소 영역을 구분하고, 상기 구분된 주소 영역을 이용하여 상기 시드 메모리(314)에서 해당 주소 영역에 대한 암호화 시드 값을 추출한다. That is, the encryption wrapper 310 extracts some bits from an address input from the CPU 300 through the area selection unit 312, identifies an address area for storing the data, And extracts an encryption seed value for the corresponding address area from the seed memory 314 using the divided address area.

여기서, 상기 영역 선택부(312)는 도 4에 도시된 바와 같이, 기 설정된 주소 영역 선택 정보(402)에 따라 입력 주소(410)에서 일부 비트를 선택하는 비트 선택부(400)를 포함함으로써, 상기 CPU(300)로부터 입력되는 주소(410)에서 일부 비트를 선택하여 주소 영역을 선택하는 신호(Address Range selection)(412)를 생성하 고, 상기 주소에서 선택되지 않은 남은 비트들로 서브 주소 신호(Sub address)(414)를 생성하여 출력한다. 여기서, 상기 주소 영역 선택 정보(402)는 상기 CPU(300)의 제어에 의해 갱신이 가능하다.4, the region selector 312 includes a bit selector 400 for selecting some bits from the input address 410 according to the pre-set address region selection information 402, A signal (Address Range selection) 412 for selecting an address region by selecting some bits from an address 410 input from the CPU 300 and generating a sub-address signal (Sub address) 414 and outputs it. Here, the address area selection information 402 can be updated under the control of the CPU 300.

상기 시드 메모리(314)는 각 주소 영역에 대한 암호화 시드 값을 저장하고 있으며, 상기 시드 메모리(314)에 저장된 암호화 시드 값은 사용자에 의해 삭제, 추가 및 갱신이 가능하다. 즉, 도 5에 도시된 바와 같이, 상기 시드 메모리(314, 500)는 암호화를 위한 시드 테이블을 저장함으로써, 상기 영역 선택부(312)에서 생성된 주소 영역 선택 신호(Address Range selection)에 해당하는 영역의 시드 값을 상기 시드 변형부(316, 510)로 출력한다.The seed memory 314 stores the encryption seed value for each address area, and the encryption seed value stored in the seed memory 314 can be deleted, added and updated by the user. That is, as shown in FIG. 5, the seed memories 314 and 500 store a seed table for encryption, and thereby generate a seed table corresponding to the address range selection signal (Address Range selection) And outputs the seed value of the region to the seed deformation units 316 and 510.

또한, 상기 암호 래퍼(310)는 상기 시드 변형부(316)를 통해 상기 시드 메모리(314)에서 추출된 암호화 시드 값을 변형하여 암호 키를 생성한다. 이때, 상기 시드 변형부(316)는 상기 영역 선택부(312)에서 주소 영역 구분을 위해 추출된 일부 비트를 제외한 나머지 비트들을 이용하여 상기 추출된 암호화 시드 값을 변형한다. 즉, 도 5에 도시된 바와 같이, 상기 시드 변형부(316, 510)는 상기 영역 선택부(312)에서 생성된 서브 주소 신호(Sub address)를 이용하여 상기 시드 메모리(500)로부터 제공되는 시드 값을 변형한다. 여기서, 상기 서브 주소 신호를 이용하여 시드를 변형한 후 변형된 시드를 암호 키로 사용함으로써, 상기 주소에 해당하는 영역 내에 적용되는 암호 키의 값을 모두 다르게 할 수 있다.Also, the encryption wrapper 310 generates an encryption key by modifying the encryption seed value extracted from the seed memory 314 through the seed modification unit 316. At this time, the seed deformation unit 316 transforms the extracted encrypted seed value by using the remaining bits except for some bits extracted for the address region division in the region selection unit 312. 5, the seed deformation units 316 and 510 are connected to the seed memory 500 using the sub address signal generated by the area selector 312, Modify the value. Here, the modified seed may be used as a cryptographic key after modifying the seed using the subaddress signal, thereby changing the values of cryptographic keys applied to the corresponding region.

상기 암호 래퍼(310)는 상기 데이터 마스킹부(318)를 통해 상기 변형된 암호화 시드 값을 이용하여 상기 CPU(300)로부터 제공된 데이터를 암호화한 후, 암호 화된 데이터를 상기 버스 래퍼(320)로 출력한다. 즉, 도 5에 도시된 바와 같이, 상기 데이터 마스킹부(318, 520)는 상기 시드 변형부(316, 510)에서 변형된 시드 값을 이용하여 상기 CPU(300)로부터 입력되는 데이터를 암호화한 후 암호화된 데이터를 출력한다. 여기서, 상기 암호 래퍼(310)는 기본적으로 전송 지연을 감소시키기 위해 마스킹 기법을 수행하여 데이터를 암호화하지만, 버스의 동작 속도를 훼손하지 않는 범위 내에서 복잡한 암호화 알고리즘을 적용하여 암호화할 수 있다. The encryption wrapper 310 encrypts the data provided from the CPU 300 using the modified encryption seed value through the data masking unit 318 and outputs the encrypted data to the bus wrapper 320 do. 5, the data masking units 318 and 520 encrypt the data input from the CPU 300 using the modified seed values in the seed deformation units 316 and 510, And outputs the encrypted data. The encryption wrapper 310 basically encrypts data by performing a masking technique to reduce transmission delay. However, the encryption wrapper 310 encrypts data by applying a complicated encryption algorithm within a range that does not impair the operation speed of the bus.

도 6은 본 발명의 실시 예에 따른 시스템 온 칩의 암호 래퍼에서 데이터를 암호화하는 절차를 도시하고 있다. FIG. 6 illustrates a procedure for encrypting data in a cipher wrapper of a system-on-chip according to an embodiment of the present invention.

상기 도 6을 참조하면, 상기 암호 래퍼는 CPU로부터 주소와 데이터가 수신되면, 603단계로 진행하여 상기 수신된 주소에서 일부 비트를 추출하여 주소 영역 선택 신호와 서브 주소 신호를 생성한다. 즉, 상기 암호 래퍼는 기 설정된 주소 영역 선택 정보에 따라 상기 수신된 주소에서 일부 비트를 선택하여 주소 영역을 선택하는 신호(Address Range selection)를 생성하고, 상기 주소에서 선택되지 않은 남은 비트들로 서브 주소(Sub Address) 신호를 생성한다.Referring to FIG. 6, when the address and data are received from the CPU, the encryption wrapper extracts some bits from the received address in step 603, and generates an address region selection signal and a sub address signal. That is, the encryption wrapper generates a signal (Address Range selection) for selecting an address region by selecting some bits from the received address according to the pre-set address region selection information, And generates a sub address signal.

이후, 상기 암호 래퍼는 605단계에서 각 주소 영역에 대한 암호화 시드 값을 저장하고 있는 시드 메모리에서 상기 주소 영역 선택 신호에 해당하는 암호화 시드 값을 추출한 후, 607단계에서 상기 서브 주소 신호를 이용하여 상기 시드 메모리에서 추출된 암호화 시드 값을 변형하여 암호 키를 생성한다.In step 605, the encryption wrapper extracts an encryption seed value corresponding to the address area selection signal from the seed memory storing the encryption seed value for each address area, and then, in step 607, And generates an encryption key by modifying the encryption seed value extracted from the seed memory.

이후, 상기 암호 래퍼는 609단계에서 상기 생성된 암호 키, 즉, 상기 변형된 암호화 시드 값을 이용하여 상기 CPU로부터 제공된 데이터를 암호화한 후, 암호화된 데이터와 상기 수신된 주소를 버스 래퍼를 통해 다른 장치로 전송한다.In step 609, the encryption wrapper encrypts the data provided from the CPU using the generated encryption key, that is, the modified encryption seed value, and then encrypts the encrypted data and the received address through a bus wrapper Lt; / RTI >

이후, 상기 암호 래퍼는 본 발명에 따른 알고리즘을 종료한다.Thereafter, the encryption wrapper terminates the algorithm according to the present invention.

그러면, 이하에서는 상술한 바와 같은 구성을 바탕으로 하기 도 7a 내지 7e를 참조하여 본 발명에 따른 암호 래퍼를 활용하는 예를 살펴보기로 한다.Hereinafter, an example of utilizing the cipher wrapper according to the present invention will be described with reference to FIGS. 7A to 7E based on the above-described configuration.

도 7a 내지 7e는 본 발명의 실시 예에 따른 시스템 온 칩에서 암호 래퍼를 활용한 예를 도시하고 있다.7A to 7E illustrate an example of utilizing a cryptographic wrapper in a system-on-chip according to an embodiment of the present invention.

먼저, 상기 도 7a는 CPU의 데이터를 내부 메모리의 보안 영역(secure range)(701)에 저장하는 예를 나타내는 것으로서, 소프트웨어를 통해 데이터를 암호화하고 저장위치를 결정하지 않고서도, 상기 CPU에서 데이터의 저장 위치를 상기 보안 영역(701)으로 정의해주면, 하드웨어에서 자체적으로 상기 데이터를 암호화하여 상기 보안 영역(701)에 저장할 수 있게 된다.7A illustrates an example of storing data of a CPU in a secure range 701 of an internal memory. It is also possible to store data of a CPU in the secure range 701 without encrypting data and determining a storage position through software. If the storage location is defined as the security area 701, the hardware can encrypt the data and store the data in the security area 701 by itself.

도 7b와 7c는 시드 값에 따라 CPU가 접근할 수 있는 보안 영역이 달라짐을 나타내는 것으로서, 상기 도 7b는 암호 래퍼 내에 저장된 시드 메모리에서 특정 시드 값을 삭제할 경우, 해당 보안 영역에 접근할 수 없게되는 것을 나타낸다. 즉, CPU1(711)은 암호 래퍼를 통해 보안 영역 A, B(713, 715)에 접근이 가능했으나,상기 암호 래퍼에서 보안 영역 B에 대한 시드 값을 삭제함으로써, 상기 CPU1(711)은 상기 보안 영역 A(713)에만 접근할 수 있고, 보안 영역 B(715)에는 접근할 수 없게 된다. 7B and 7C show that the security area accessible by the CPU is changed according to the seed value. FIG. 7B shows that when a specific seed value is deleted from the seed memory stored in the encryption wrapper, the security area can not be accessed . That is, although the CPU 1 711 can access the security areas A and B 713 and 715 through the cipher wrapper, the CPU 1 711 deletes the seed value for the security area B from the cipher wrapper, Only the area A 713 can be accessed, and the security area B 715 can not be accessed.

또한, 상기 도 7c는 복수의 CPU(721, 723)를 사용하는 시스템에서 상기 CPU 각각(721, 723)에 연결된 암호 래퍼 내에 저장된 시드 메모리의 시드 값을 서로 교환하여 변경할 경우, 각 CPU(721, 723)가 접근할 수 있는 보안 영역이 달라지는 것을 나타낸다. 즉, 각각의 암호 래퍼에 저장된 시드 값에 의해 CPU 1(721)은 보안 영역 B(727)에 접근이 가능하고, CPU 2(723)는 보안 영역 A(725)에 접근이 가능했으나, 상기 암호 래퍼에 저장된 시드 값을 서로 교환함으로써, CPU 1(721)은 보안 영역 A(725)에 접근이 가능하고, CPU 2(723)는 보안 영역 B(727)에 접근이 가능하게 된다. 여기서, 내부 메모리2(Internal Memory 2)와 내부 메모리2 버스 래퍼(Internal Memory2 BUS wrapper) 사이에는 암호 래퍼가 존재하지 않으므로, 상기 내부 메모리 2의 각 영역은 각각의 IP 장치에 의해 별도로 암호화될 수 있게 된다.7C, in the system using a plurality of CPUs 721 and 723, when the seed values of the seed memories stored in the encryption wrappers connected to the CPUs 721 and 723 are exchanged with each other, the CPUs 721, 723) can be accessed. That is, the CPU 1 721 can access the secure area B 727 and the CPU 2 723 can access the secure area A 725 according to the seed values stored in the respective cipher wrappers. However, By exchanging the seed values stored in the wrapper, the CPU 1 721 can access the secure area A 725 and the CPU 2 723 can access the secure area B 727. Here, since there is no encryption wrapper between the internal memory 2 and the internal memory 2 BUS wrapper, each area of the internal memory 2 can be separately encrypted by each IP device do.

상기 도 7b 및 7c에 도시된 바와 같이, 본 발명에 따른 암호 래퍼를 이용할 경우 시드 메모리에 저장된 시드 값을 변경 혹은 삭제함으로써, 각 IP 장치에 대해 해당 영역의 정보에 대한 접근을 허용하거나 금지할 수 있게 된다. 또한 상기 시드 값을 교환함으로써 복수의 보안 영역 간에 데이터의 교환이 짧은 시간 내에 가능하게 된다. As shown in FIGS. 7B and 7C, when the encryption wrapper according to the present invention is used, the seed value stored in the seed memory is changed or deleted to permit or prohibit access to the information of the corresponding region to each IP device . In addition, by exchanging the seed value, exchange of data between a plurality of security areas becomes possible within a short time.

도 7d는 CPU(731)와 암호 래퍼가 적용된 외부 기기(733) 사이에 데이터 채널을 나타낸 것으로서, 상기 CPU(731)와 외부 기기(733)를 통한 데이터 모두 암호 래퍼를 통해 암호화됨으로써, 둘 사이에 안정성이 높은 데이터 채널이 구성되어 암호화를 위한 별도의 암호 인터페이스(encryption interface) 모듈을 구비할 필요가 없게 된다. 7D shows a data channel between the CPU 731 and an external device 733 to which a cipher wrapper is applied. The data through the CPU 731 and the external device 733 are both encrypted through a cipher wrapper, A highly reliable data channel is formed and it is not necessary to provide a separate encryption interface module for encryption.

도 7e는 암호 래퍼가 추가된 각 IP간의 데이터 경로를 나타낸 것으로서, 각 IP의 데이터는 출력시에 바로 암호화된 후 수신 IP의 입력시에 복호화되어 대부분의 데이터 경로에서 암호화된 상태로 전달됨으로써, 버스(741)를 통해 악의적인 접근이 발생되더라도 원래 데이터가 노출될 위험이 적어진다.FIG. 7E shows a data path between IPs to which a cryptographic wrapper is added. The data of each IP is decrypted at the time of output, encrypted at the time of inputting the IP, and transmitted in an encrypted state in most data paths, The risk of exposure of the original data is reduced even if a malicious access is made through the access point 741.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Therefore, the scope of the present invention should not be limited by the illustrated embodiments, but should be determined by the scope of the appended claims and equivalents thereof.

도 1은 일반적인 시스템 온 칩의 버스 구조를 도시하는 도면,1 is a diagram showing a bus structure of a general system-on-chip,

도 2는 본 발명에 따른 시스템 온 칩에서 암호화/복호화 계층이 추가된 버스 구조를 도시하는 도면,FIG. 2 is a diagram illustrating a bus structure to which an encryption / decryption layer is added in a system-on-chip according to the present invention;

도 3은 본 발명에 따른 시스템 온 칩에서 암호 래퍼의 상세한 블록 구성을 도시하는 도면,3 is a block diagram showing a detailed block configuration of a cryptographic wrapper in a system-on-chip according to the present invention;

도 4는 본 발명의 실시 예에 따른 시스템 온 칩에서 주소 영역 선택부의 상세한 구성을 도시하는 도면,4 is a diagram showing a detailed configuration of an address region selection unit in a system-on-chip according to an embodiment of the present invention;

도 5는 본 발명의 실시 예에 따른 시스템 온 칩에서 시드를 선택 및 변형하여 데이터를 암호화하는 블록 구성을 도시하는 도면,FIG. 5 is a block diagram showing a block configuration for encrypting data by selecting and modifying a seed in a system-on-chip according to an embodiment of the present invention;

도 6은 본 발명의 실시 예에 따른 시스템 온 칩의 암호 래퍼에서 데이터를 암호화하는 절차를 도시하는 도면, 및6 is a diagram illustrating a procedure for encrypting data in a cipher wrapper of a system-on-chip according to an embodiment of the present invention; and

도 7a 내지 7e는 본 발명의 실시 예에 따른 시스템 온 칩에서 암호 래퍼를 활용한 예를 도시하는 도면.7A to 7E are diagrams illustrating an example of utilizing a password wrapper in a system-on-chip according to an embodiment of the present invention.

Claims (10)

시스템 온 칩에서 암호화 방법에 있어서,In a system-on-chip encryption method, 데이터와 주소를 입력받는 과정과,Receiving data and an address, 상기 주소의 일부 비트를 이용하여 기 저장된 시드 테이블에서 암호화 시드 값을 선택하는 과정과,Selecting an encryption seed value from a pre-stored seed table using some bits of the address; 상기 주소의 나머지 비트를 이용하여 상기 선택된 암호화 시드 값을 변형하는 과정과,Modifying the selected encryption seed value using the remaining bits of the address; 상기 변형된 시드 값으로 상기 데이터를 암호화하는 과정을 포함하는 방법.And encrypting the data with the modified seed value. 제 1항에 있어서, The method according to claim 1, 상기 데이터 및 주소는 IP(Intelligent Peripheral) 장치로부터 입력 받으며, The data and address are input from an IP (Intelligent Peripheral) device, 상기 암호화된 데이터를 버스로 제공하는 과정을 더 포함하는 방법.And providing the encrypted data to the bus. 제 2항에 있어서, 3. The method of claim 2, 상기 IP 장치는, 중앙처리 장치, 내부 메모리, 외부 메모리, 및 주변 기기 중 어느 하나인 방법.Wherein the IP device is any one of a central processing unit, an internal memory, an external memory, and a peripheral device. 제 1항에 있어서, The method according to claim 1, 상기 암호화 시드 값을 선택하는 과정은,Wherein the step of selecting the encryption seed value comprises: 상기 주소에서 일부 비트를 추출하여 상기 데이터를 저장할 주소 영역을 구분하는 과정과,Extracting a bit from the address to identify an address region for storing the data; 주소 영역별 암호화 시드 값을 저장하는 상기 시드 테이블에서 상기 구분된 주소 영역에 대응하는 암호화 시드 값을 선택하는 과정을 포함하는 방법.And selecting an encryption seed value corresponding to the distinguished address area in the seed table storing an encryption seed value for each address area. 제 1항에 있어서, The method according to claim 1, 상기 암호화 시드 값은, 사용자에 의해 삭제, 추가 및 갱신 중 적어도 하나가 가능한 방법.Wherein the encryption seed value is at least one of deletion, addition and update by the user. 시스템 온 칩에서 암호화 장치에 있어서,In a system-on-chip encryption device, 데이터와 주소를 출력하는 IP 장치와,An IP device for outputting data and addresses, 상기 IP 장치로부터 제공되는 주소의 일부 비트를 이용하여 기 저장된 시드 테이블에서 암호화 시드 값을 선택하고, 상기 주소의 나머지 비트로 상기 선택된 암호화 시드 값을 변형하여 상기 데이터를 암호화하는 암호 래퍼(wrapper)를 포함하는 장치.A cipher wrapper for selecting an encryption seed value from a pre-stored seed table using some bits of the address provided from the IP device and encrypting the data by modifying the selected encryption seed value with the remaining bits of the address . 제 6항에 있어서, The method according to claim 6, 상기 암호화된 데이터를 수신하여 다른 장치로 전달하는 버스를 더 포함하는 장치.And a bus for receiving the encrypted data and forwarding the encrypted data to another device. 제 7항에 있어서, 8. The method of claim 7, 상기 IP 장치는, 중앙처리 장치, 내부 메모리, 외부 메모리, 및 주변 기기 중 어느 하나인 장치.Wherein the IP device is any one of a central processing unit, an internal memory, an external memory, and a peripheral device. 제 6항에 있어서, The method according to claim 6, 상기 암호 래퍼는, 상기 주소에서 일부 비트를 추출하여 상기 데이터를 저장할 주소 영역을 구분하고, 주소 영역별 암호화 시드 값을 저장하는 상기 시드 테이블에서 상기 구분된 주소 영역에 대응하는 암호화 시드 값을 선택하는 장치.The encryption wrapper extracts some bits from the address to identify an address area for storing the data, and selects an encryption seed value corresponding to the separated address area from the seed table storing an encryption seed value for each address area Device. 제 6항에 있어서, The method according to claim 6, 상기 암호화 시드 값은, 사용자에 의해 삭제, 추가 및 갱신 중 적어도 하나가 가능한 장치.Wherein the encryption seed value is at least one of deletion, addition, and update by the user.
KR1020080075984A 2008-08-04 2008-08-04 Apparatus and method for encryption in system on chip KR101475821B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080075984A KR101475821B1 (en) 2008-08-04 2008-08-04 Apparatus and method for encryption in system on chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080075984A KR101475821B1 (en) 2008-08-04 2008-08-04 Apparatus and method for encryption in system on chip

Publications (2)

Publication Number Publication Date
KR20100015077A KR20100015077A (en) 2010-02-12
KR101475821B1 true KR101475821B1 (en) 2014-12-24

Family

ID=42088266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080075984A KR101475821B1 (en) 2008-08-04 2008-08-04 Apparatus and method for encryption in system on chip

Country Status (1)

Country Link
KR (1) KR101475821B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2775923T3 (en) * 2016-03-14 2020-07-28 Arris Entpr Llc Cablemodem anti-cloning
US10880090B2 (en) 2016-03-14 2020-12-29 Arris Enterprises Llc Cable modem anti-cloning
US11387996B2 (en) 2016-03-14 2022-07-12 Arris Enterprises Llc Cable modem anti-cloning

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070109488A (en) * 2006-05-11 2007-11-15 곽우영 The mouse of finger drive ring with nand flash memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070109488A (en) * 2006-05-11 2007-11-15 곽우영 The mouse of finger drive ring with nand flash memory

Also Published As

Publication number Publication date
KR20100015077A (en) 2010-02-12

Similar Documents

Publication Publication Date Title
JP6998435B2 (en) Memory operation encryption
Awad et al. Obfusmem: A low-overhead access obfuscation for trusted memories
Suh et al. AEGIS: A single-chip secure processor
KR101224322B1 (en) Methods and apparatus for the secure handling of data in a microcontroller
US5995623A (en) Information processing apparatus with a software protecting function
US9251380B1 (en) Method and storage device for isolating and preventing access to processor and memory used in decryption of text
TWI493951B (en) Systems and methods for protecting symmetric encryption keys
JP4299679B2 (en) Control function that restricts data access in the integrated system using the requesting master ID and data address
US8954751B2 (en) Secure memory control parameters in table look aside buffer data fields and support memory array
KR100737628B1 (en) Attestation using both fixed token and portable token
CN105580027B (en) For using not same area specific key to ensure the method for content safety
US11030119B2 (en) Storage data encryption and decryption apparatus and method
US20220197825A1 (en) System, method and apparatus for total storage encryption
JP2020535693A (en) Storage data encryption / decryption device and method
TW200937248A (en) Secure software download
JP2003516071A (en) Microprocessor device having encryption function
US20060015753A1 (en) Internal RAM for integrity check values
Wong et al. SMARTS: secure memory assurance of RISC-V trusted SoC
TWI393006B (en) Security system and method for code dump protection
KR101475821B1 (en) Apparatus and method for encryption in system on chip
JP2007310601A (en) Microcomputer and method for protecting its software
Khan et al. Utilizing and extending trusted execution environment in heterogeneous SoCs for a pay-per-device IP licensing scheme
CN110932853B (en) Key management device and key management method based on trusted module
CN110955904B (en) Data encryption method, data decryption method, processor and computer equipment
CN110837627A (en) Software copyright authentication method, system and equipment based on hard disk serial number

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171129

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181129

Year of fee payment: 5