KR102218715B1 - 채널별로 데이터를 보호할 수 있는 반도체 장치 - Google Patents
채널별로 데이터를 보호할 수 있는 반도체 장치 Download PDFInfo
- Publication number
- KR102218715B1 KR102218715B1 KR1020140075146A KR20140075146A KR102218715B1 KR 102218715 B1 KR102218715 B1 KR 102218715B1 KR 1020140075146 A KR1020140075146 A KR 1020140075146A KR 20140075146 A KR20140075146 A KR 20140075146A KR 102218715 B1 KR102218715 B1 KR 102218715B1
- Authority
- KR
- South Korea
- Prior art keywords
- encryption
- data
- module
- bus
- key
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
반도체 장치 및 상기 반도체 장치 내에서의 채널별 데이터 보호 방법이 개시된다. 본 발명의 반도체 장치는 버스, 각각이 상기 버스를 통해 데이터를 주거나 받을 수 있는 제1 및 제2 기능 모듈, 상기 제1 기능 모듈로부터 전송되는 제1 데이터를 제1 암호화 키를 이용하여 암호화하여 제1 암호화된 데이터를 발생하는 제1 암호화 모듈, 및 상기 제1 암호화된 데이터를 상기 제1 암호화 키를 이용하여 복호화하여 상기 제2 기능 모듈로 전송하고, 상기 제2 기능 모듈로부터 전송되는 제2 데이터를 제1 암호화 키와 다른 제2 암호화 키를 사용하여 암호화하여 제2 암호화된 데이터를 발생하는 제2 암호화 모듈을 포함한다.
Description
본 발명의 개념에 따른 실시 예는 반도체 장치에 관한 것으로, 특히 반도체 장치 내에서 채널별로 데이터를 보호하는 방법 및 상기 방법을 실행하는 장치에 관한 것이다.
최근의 반도체 장치에는 다양한 기능의 모듈들이 다수 존재하며, 이 모듈들 간에 데이터를 주고 받기 위해 서로 직접 연결되는 경우도 일부 있지만, 많은 경우, 공통의 버스와 메모리를 통해 데이터를 주고 받는다. 즉, 반도체 장치 내부의 통신 채널은 대부분 버스와 메모리를 통하여 형성된다. 이 통신 채널을 통해 주고 받는 데이터는 암호화 되어 있지 않기 때문에 다음과 같은 방법에 의해 외부로 유출될 수 있다.
첫 째, 메모리가 반도체 장치의 외부에 존재할 경우 그 메모리 인터페이스를 프루빙(Probing) 하여 데이터를 알아낼 수 있다.
두 번째로는, 데이터를 주고 받는 모듈이 아닌 제 3의 모듈(주로 프로세서)을 해킹하여 제3 모듈을 통해 메모리를 읽어서 데이터를 외부로 유출시킨다.
따라서, 반도체 장치 내부에 존재하는 복수의 통신 채널들을 안전하게 보호함으로써 원하지 않는 데이터의 유출을 방지할 필요가 있다.
본 발명이 이루고자 하는 기술적인 과제는 반도체 장치 내의 복수의 채널들 각각을 다른 채널로부터 보호함으로써 데이터의 유출을 방지할 수 있는 채널별 데이터 보호 방법 및 그 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 반도체 장치는 버스; 각각이 상기 버스를 통해 데이터를 주거나 받을 수 있는 제1 및 제2 기능 모듈; 상기 제1 기능 모듈로부터 전송되는 제1 데이터를 제1 암호화 키를 이용하여 암호화하여 제1 암호화된 데이터를 발생하는 제1 암호화 모듈; 및 상기 제1 암호화된 데이터를 상기 제1 암호화 키를 이용하여 복호화하여 상기 제2 기능 모듈로 전송하고, 상기 제2 기능 모듈로부터 전송되는 제2 데이터를 제1 암호화 키와 다른 제2 암호화 키를 사용하여 암호화하여 제2 암호화된 데이터를 발생하는 제2 암호화 모듈을 포함한다.
상기 반도체 장치는 제3 기능 모듈; 및 상기 제2 암호화된 데이터를 상기 제2 암호화 키를 이용하여 복호화하여 상기 제3 기능 모듈로 전송하는 제3 암호화 모듈을 더 포함할 수 있다.
상기 제1 및 제2 암호화 모듈로부터 각각 출력되는 상기 제1 및 제2 암호화된 데이터는 상기 반도체 장치의 외부 메모리에 저장될 수 있다.
상기 제3 암호화 모듈은 상기 제3 기능 모듈로부터 출력되는 제3 데이터를 상기 제1 및 제2 암호화 키와 다른 제3 암호화 키를 사용하여 암호화하여 제3 암호화된 데이터를 발생할 수 있다.
상기 제1 내지 제2 암호화 키는 상기 반도체 장치에서 구동되는 운영체제(OS)에 의하여 설정 및 변경될 수 있다.
본 발명의 실시 예에 따른 반도체 장치는 버스(bus); 각각이 상기 버스를 통해 데이터를 주거나 받을 수 있는 제1 및 제2 모듈; 및 상기 제1 모듈로부터 출력되어 메모리에 저장될 제1 데이터와 상기 제2 모듈로부터 출력되어 상기 메모리에 저장될 제2 데이터에 대해 서로 다른 암호화 정책을 적용하는 암호화 모듈을 포함할 수 있다.
상기 제1 및 제2 모듈은 상호 다른 제1 및 제2 버스 아이디를 가지며, 상기 암호화 모듈은 상기 제1 및 제2 버스 아이디에 대응하여 상기 서로 다른 암호화 정책을 저장하는 키 저장부를 포함할 수 있다.
상기 키 저장부는 상기 제1 버스 아이디에 대응하는 제1 암호화 키 및 상기 제2 버스 아이디에 대응하는 제2 암호화 키를 저장할 수 있다.
상기 암호화 모듈은 상기 제1 기능 모듈로부터 전송되는 제1 데이터를 상기 제1 암호화 키를 이용하여 암호화하여 제1 암호화된 데이터를 발생하고, 상기 제2 기능 모듈로부터 전송되는 상기 제2 데이터를 상기 제1 암호화 키와 다른 상기 제2 암호화 키를 사용하여 암호화하여 제2 암호화된 데이터를 발생할 수 있다.
상기 키 저장부는 상기 제1 버스 아이디에 대응하는 제1 암호화 알고리즘의 식별자 및 상기 제2 버스 아이디에 대응하는 제2 암호화 알고리즘의 식별자를 저장할 수 있다.
상기 암호화 모듈은 상기 제1 알고리즘을 이용하여 상기 제1 데이터를 암호화하고, 상기 제1 암호화된 데이터를 복호화하는 제1 암호화부; 및 상기 제2 알고리즘을 이용하여 상기 제2 데이터를 암호화하고 상기 제2 암호화된 데이터를 복호화하는 제2 암호화부를 포함할 수 있다.
상기 반도체 장치는 제3 버스 아이디를 갖는 제3 기능 모듈을 더 포함할 수 있다.
상기 암호화 모듈은 상기 제3 기능 모듈로부터 전송되는 제3 데이터를 암호화하지 않고, 상기 메모리에 저장할 수 있다.
상기 키 저장부는 상기 제1 및 제2 모듈의 리드 채널들에 대하여 버스 아이디별 암호화 정책을 저장하는 리드 채널 키 저장부; 및 상기 제1 및 제2 모듈의 라이트 채널들에 대하여 버스 아이디별 암호화 정책을 저장하는 라이트 채널 키 저장부를 포함할 수 있다.
상기 암호화 모듈은 각각이 n(2이상의 정수) 비트 단위로 데이터를 수신하여 암호화하는 m(1이상의 정수)개의 서브-암호화 모듈들을 포함하며, 최소 n 비트 단위로 데이터를 암호화할 수 있고, 최대 m*n 비트 단위로 데이터를 암호화할 수 있다.
본 발명의 실시 예에 따르면, 반도체 장치 내에서 복수의 모듈들 간에 형성되는 복수의 채널들 각각을 다른 채널로부터 보호함으로써 데이터의 유출이나 해킹을 방지할 수 있다.
또한, 본 발명의 실시예에 따르면, 기존 모듈을 변경하지 않고 기존 모듈의 인터페이스 혹은 기본 모듈과 버스 사이에 암호화 모듈을 추가함으로써 각 채널을 보호할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템을 나타내는 구성 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 전자 시스템을 나타내는 구성 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 전자 시스템을 나타내는 구성 블록도이다.
도 4는 본 발명의 일 실시예에 따른 전자 시스템의 구성 블록도이다.
도 5는 본 발명의 실시예에 따른 전자 시스템의 구성 블록도이다.
도 6a는 도 5에 도시된 반도체 장치에서의 리드 채널에 대한 버스 아이디별 암호화 정책을 나타내는 테이블이다.
도 6b는 도 5에 도시된 반도체 장치에서의 라이트 채널에 대한 버스 아이디별 암호화 정책을 나타내는 테이블이다.
도 7은 본 발명의 실시예에 따른 전자 시스템의 구성 블록도이다.
도 8은 본 발명의 일 실시예에 따른 암호화 모듈을 나타내는 블록도이다.
도 9a는 데이터 억세스의 최소 단위가 32비트인 경우의 암호화 모듈을 나타낸다.
도 9b는 데이터 억세스의 최소 단위가 64비트인 경우의 암호화 모듈을 나타낸다.
도 9c는 데이터 억세스의 최소 단위가 128비트인 경우의 암호화 모듈을 나타낸다.
도 10은 본 발명의 실시예에 따른 암호화 방법을 나타내는 플로우차트이다.
도 11은 본 발명의 실시예에 따른 암호화 방법을 나타내는 플로우차트이다.
도 12는 본 발명의 실시예에 따른 전자 시스템의 실시예를 나타낸 블록도이다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템을 나타내는 구성 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 전자 시스템을 나타내는 구성 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 전자 시스템을 나타내는 구성 블록도이다.
도 4는 본 발명의 일 실시예에 따른 전자 시스템의 구성 블록도이다.
도 5는 본 발명의 실시예에 따른 전자 시스템의 구성 블록도이다.
도 6a는 도 5에 도시된 반도체 장치에서의 리드 채널에 대한 버스 아이디별 암호화 정책을 나타내는 테이블이다.
도 6b는 도 5에 도시된 반도체 장치에서의 라이트 채널에 대한 버스 아이디별 암호화 정책을 나타내는 테이블이다.
도 7은 본 발명의 실시예에 따른 전자 시스템의 구성 블록도이다.
도 8은 본 발명의 일 실시예에 따른 암호화 모듈을 나타내는 블록도이다.
도 9a는 데이터 억세스의 최소 단위가 32비트인 경우의 암호화 모듈을 나타낸다.
도 9b는 데이터 억세스의 최소 단위가 64비트인 경우의 암호화 모듈을 나타낸다.
도 9c는 데이터 억세스의 최소 단위가 128비트인 경우의 암호화 모듈을 나타낸다.
도 10은 본 발명의 실시예에 따른 암호화 방법을 나타내는 플로우차트이다.
도 11은 본 발명의 실시예에 따른 암호화 방법을 나타내는 플로우차트이다.
도 12는 본 발명의 실시예에 따른 전자 시스템의 실시예를 나타낸 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템(1A)를 나타내는 구성 블록도이다. 이를 참조하면, 전자 시스템(1A)은 반도체 장치(10) 및 메모리(15)를 포함한다. 반도체 장치(10)는 시스템 온 칩(SoC: system on chip)으로 구현될 수 있다.
반도체 장치(10)는 제1 내지 제3 기능 모듈(111, 112, 113), 제1 및 제2 암호화 모듈(121, 122), 및 버스(131)를 포함한다.
제1 내지 제3 기능 모듈(111, 112, 113) 각각은 버스(131)를 통해 데이터를 주거나 받을 수 있으며, CPU(central processing unit), GPU(graphic processing unit), 메모리 컨트롤러, 표준 암호화 모듈, 코덱(codec), 스케일러(scaler), 포스트 프로세서(post processor), 디스플레이 컨트롤러, TV 인터페이스 모듈, 그래픽 엔진(graphics engine), 이미지 신호 처리기(image signal processor) 등과 같이 SoC 내에 구비되는 모듈일 수 있다.
도 1의 실시예에서, 제1 기능 모듈(111)은 제1 채널(미도시)을 통해 제2 기능 모듈(112)로 데이터를 전송한다. 제1 채널은 제1 기능 모듈(111)로부터 제2 기능 모듈(112)까지 데이터가 전송되는 경로로서, 버스(131) 및 외부 메모리(15)를 포함하여 형성될 수 있다.
제1 기능 모듈(111)은 제1 데이터를 생성하여 메모리(15)에 저장한다. 제1 데이터는 제1 기능 모듈(111)에서 제2 기능 모듈(112)로 전송되는 데이터이다. 본 발명의 실시예에서는, 제1 데이터는 제1 기능 모듈(111)에서 제2 기능 모듈(112)로 직접 전송되는 것은 아니며, 버스(131)와 외부 메모리(15)를 통하여 전송된다. 또한, 제1 데이터는 암호화되지 않은 데이터(이하, 로(raw) 데이터라 칭하기도 함)로서 전송되는 것이 아니라, 제1 암호화 모듈(121)에서 암호화되어 전송되고, 제2 암호화 모듈(122)에서 복호화되어 제2 기능 모듈(112)로 수신된다.
도면에서 'Encryptor'로 표시되는 암호화 모듈(121, 122)는 일 실시예에서 암호화 기능 및 복호화 기능을 모두 수행할 수 있다. 다른 실시예에서, 암호화 모듈(121, 122)은 암호화 기능 및 복호화 기능 중 어느 하나만을 수행할 수도 있다.
제1 암호화 모듈(121)은 제1 기능 모듈(111)로부터 전송되는 제1 데이터를 제1 암호화 키(Key A)를 이용하여 암호화하여 제1 암호화된 데이터를 발생한다. 제1 암호화된 데이터는 버스(131)를 통하여 외부 메모리(15)에 저장된다.
제2 기능 모듈(112)은 외부 메모리(15)부터 제1 암호화된 데이터를 독출한다. 이 때, 외부 메모리(15)부터 독출된 제1 암호화된 데이터는 버스(131)를 통하여 제2 암호화 모듈(122)로 먼저 입력된다. 제2 암호화 모듈(122)은 제1 암호화된 데이터를 제1 암호화 키(Key A)를 이용하여 복호화하여 제2 기능 모듈(112)로 출력한다. 이에 따라, 제2 기능 모듈(112)은 제1 기능 모듈(111)에서 생성된 원(original) 데이터인 제1 데이터를 수신할 수 있다.
제3 기능 모듈(113)은 제1 암호화키(Key A)를 갖는 암호화 모듈을 구비하지 않는다. 따라서, 외부 메모리(15)로부터 제1 암호화된 데이터를 독출하더라도, 제1 데이터로 복호화할 수 없다.
버스(131)는 멀티-레이어(multi-layer) 버스일 수 있다. 일 실시예에서, 버스(131)는 AHB 버스 또는 AXI 버스로 구현될 수 있으나, 이에 한정되는 것은 아니다.
상술한 바와 같이, 본 발명의 일 실시예에서는, 데이터를 주고 받는 각 모듈(111, 112)의 버스 인터페이스에 암호화 모듈(121, 122)이 구비된다. 그러면 데이터가 버스(131)에 전달되기 전에 암호화되고 버스(131)로부터 데이터를 받을 때 복호화된다. 그러므로 메모리 인터페이스에서 프루빙(Probing)이 불가하며, 또한 같은 반도체 장치(10) 내의 제3 기능 모듈(113)도 로(raw) 데이터를 볼 수 없다.
제1 및 제2 암호화 모듈(121, 122) 각각은 제1 및 제2 기능 모듈(111, 112)과 별개의 모듈로 구현될 수도 있고, 해당 기능 모듈(111, 112) 내에 구현될 수도 있다.
예컨대, 암호화 모듈(121, 122) 은 해당 기능 모듈(111, 112) 내에서 데이터를 버스(131)로 출력하고, 버스(131)로부터 데이터를 수신하는 인터페이스 회로의 일부로서 구현될 수 있다. 다른 실시예에서는, 암호화 모듈(121, 122)은 해당 기능 모듈(111, 112)과 버스(131) 사이에 삽입될 수 있다. 이 경우, 기존 기능 모듈은 수정없이 사용될 수 있다. 즉, 암호화 모듈(121, 122)을 추가함으로써, 기능 기능 모듈의 수정없이, 채널별로 데이터를 보호할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 전자 시스템(1B)를 나타내는 구성 블록도이다. 이를 참조하면, 반도체 장치(10')는 제1 내지 제3 기능 모듈(111, 112, 113), 제1 내지 제3 암호화 모듈(121, 122, 123), 및 버스(131)를 포함한다. 도 2의 실시예는 도 1에 도시된 실시예와 유사하므로, 설명의 중복을 피하기 위하여, 차이점 위주로 기술한다.
도 2의 실시예에 따른 반도체 장치(10')는 도 1에 도시된 실시예의 반도체 장치(10)에 비하여, 제3 암호화 모듈(123)을 더 구비한다.
제3 암호화 모듈(123)은 제3 기능 모듈(113)로부터 버스(131)로 출력될 데이터를 제2 암호화 키(key B)를 이용하여 암호화하거나, 또는 제3 기능 모듈(113)로 수신되는 데이터를 제2 암호화 키(key B)를 이용하여 복호화한다.
제3 암호화 모듈(123) 역시 제1 및 제2 암호화 모듈(121, 122)과 마찬가지로, 제3 기능 모듈(113)과 별개의 모듈로 구현될 수도 있고, 제3 기능 모듈(113) 내에 구현될 수도 있다.
예컨대, 제3 암호화 모듈(123)은 제3 기능 모듈(113) 내에서 데이터를 버스(131)로 출력하고, 버스(131)로부터 데이터를 수신하는 인터페이스 회로(미도시)의 일부로서 구현될 수 있다. 다른 실시예에서는, 제3 암호화 모듈(123)은 제3 기능 모듈(113)과 버스(131) 사이에 삽입될 수 있다.
상술한 바와 같이, 본 발명의 일 실시예에서는, 데이터를 주고 받는 기능 모듈(예컨대, 제1 및 제2 기능 모듈(111, 112))간에는 동일한 암호화 키(Key A)를 사용하고, 다른 기능 모듈(예컨대, 제3 기능 모듈(113))에는 다른 암호화 키(Key B)를 사용한다. 즉 서로 다른 채널에는 서로 다른 암호화 키가 사용되어 각 기능 모듈(111, 112, 113)은 자신의 채널 외의 다른 채널의 데이터를 해독할 수 없다.
암호화 키(Key A, Key B)는 프로세서(113) 또는 운영체제(OS)에 의해 설정될 수 있다. 또한, 암호화 키(Key A, Key B)는 각 세션(Session)이 시작될 때마다 다르게 설정될 수 있다. 예컨대, 제1 및 제2 기능 모듈(111, 112)) 간에도 첫 번째 세션에서 사용되는 암호화 키(key A)와 두 번째 세션에서 사용되는 암호화 키가 달라질 수 있다.
도 3은 본 발명의 일 실시 예에 따른 반도체 장치를 나타내는 구성 블록도이다. 이를 참조하면, 반도체 장치(20)는 제1 내지 제3 기능 모듈(211, 212, 213), 제1 내지 제3 암호화 모듈(221, 222, 223), 및 버스(261)를 포함한다. 도 3의 실시예는 도 2의 실시예와 그 구성 및 기능이 유사하므로, 차이점을 위주로 기술한다.
도 3의 실시예에서는, 하나의 기능 모듈이 복수(2이상)의 기능 모듈들과 복수(2이상)의 채널들을 형성할 수 있다.
예컨대, 제1 기능 모듈(211)은 제1 채널(CH1)을 통하여 제2 기능 모듈(212)로 데이터를 전송하고, 또한 제3 채널(CH3)을 통해 제3 기능 모듈(213)의 데이터를 수신할 수 있다. 제2 기능 모듈(212)은 제1 채널(CH1)을 통해 제1 기능 모듈(211)로부터 데이터를 수신하고, 제2 채널(CH2)을 통해 제3 기능 모듈(213)로 데이터를 전송할 수 있다. 한편, 제 3 기능 모듈(213)은 제2 채널(CH2)을 통해 제2 기능 모듈(212)로부터 데이터를 수신하고, 제3 채널(CH3)을 통해 제1 기능 모듈(211)로 데이터를 전송할 수 있다.
이와 같이, 하나의 기능 모듈이 복수(2이상)의 기능 모듈들과 복수(2이상)의 채널들을 형성하는 경우, 채널별로 다른 키가 사용될 수 있다.
이를 위하여, 제1 내지 제3 암호화 모듈(221, 222, 223) 각각은 복수의 암호화 키들을 저장할 수 있는 키 저장부(233, 243, 253)를 포함할 수 있다.
키 저장부(233, 243, 253)는 레지스터(register)나 룩업 테이블(look-up table)로 구현될 수 있으나, 이에 한정되는 것은 아니다.
제1 내지 제3 암호화 모듈(221, 222, 223) 각각은 또한 키 저장부(233, 243, 253)로부터 해당 암호화 키를 선택하고, 선택된 암호화키를 이용하여 제1 데이터를 암호화하는 암호화부(231, 241, 251) 및 선택된 암호화키를 이용하여 제2 데이터를 복호화하는 복호화부(232, 242, 252)를 더 포함한다.
제1 데이터는 해당 기능 모듈의 라이트 채널(write channel)을 통해 출력되어 메모리(15)로 저장될 라이트 데이터(write data)일 수 있고, 제2 데이터는 메모리(15)로부터 독출되어 해당 기능 모듈의 리드 채널(read channel)로 입력될 리드 데이터(read data)일 수 있다.
제1 암호화 모듈(221)의 구성 및 동작을 살펴보면, 제1 암호화부(231)는 해당 기능 모듈, 즉 제1 기능 모듈(211)로부터 출력되는 데이터(라이트 데이터)에 대해서, 제1 키 저장부(233)로부터 제1 채널 암호화 키(Key A)를 선택하여 암호화하고, 제1 복호화부(232)는 메모리(15)로부터 독출되어 제1 기능 모듈(211)로 입력될 데이터(리드 데이터)에 대해서는, 제1 키 저장부(233)로부터 제3 채널 암호화 키(Key C)를 선택하여 복호화할 수 있다.
제1 암호화부(231)는 제1 키 저장부(233)로부터 제1 채널 키 번호(Write Channel KeyNum)에 해당하는 암호화 키, 즉, 제1 채널 암호화 키(Key A)를 추출할 수 있다.
제1 복호화부(232)는 제1 키 저장부(233)로부터 제3 채널 키 번호(Read Channel KeyNum)에 해당하는 암호화 키, 즉, 제3 채널 암호화 키(Key C)를 추출할 수 있다.
제1 채널 키 번호(Write Channel KeyNum) 및 제3 채널 키 번호(Read Channel KeyNum)는 각각 제1 키 저장부(233)에 저장된 제1 채널 암호화 키(Key A) 및 제3 채널 암호화 키(Key C)를 지정하기 위한 어드레스일 수 있다.
제2 및 제3 암호화 모듈(222, 223)의 구성 및 동작은 제1 암호화 모듈(221)의 구성 및 동작과 동일할 수 있다.
상술한 바와 같이, 본 발명의 일 실시예에서는, 하나의 기능 모듈에 둘 이상의 채널이 형성되더라도 각 채널별로 서로 다른 암호화 키가 사용된다. 즉 서로 다른 채널에는 서로 다른 암호화 키가 사용되어 각 기능 모듈은 자신의 채널 외의 다른 채널의 데이터를 해독할 수 없다.
또한, 상술한 바와 같이, 하나의 암호화 모듈이 둘 이상의 채널에 대응하여 암호화 또는 복호화를 수행하기 위해 채널별 암호화키를 저장하기 위한 키 저장부를 구비하며, 키 저장부로부터 해당 채널에 대응하는 암호화 키를 추출하여 사용할 수 있다.
암호화 키는 프로세서 또는 운영체제(OS)에 의해 설정될 수 있다. 또한, 암호화 키는 각 세션(Session)이 시작할 때마다 다르게 설정될 수 있다.
도 4는 본 발명의 일 실시예에 따른 전자 시스템의 구성 블록도이다.
도 4를 참조하면, 전자 시스템(1D)은 이동 전화기, 스마트폰, 태블릿 PC (tablet personal computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 손으로 들고다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고다닐 수 있는 장치(handheld device)로 구현될 수 있다.
전자 시스템(1D)은 시스템 온 칩(system on chip(SoC); 30), 제1 및 제2 메모리(13, 15), 및 디스플레이 디바이스(17)를 포함한다.
SoC(30)는 중앙처리장치(central processing unit(CPU); 311), 제1 메모리 컨트롤러(313), 표준 암호화 모듈(321), 코덱 모듈(322), 스케일러(323), 디스플레이 컨트롤러(324), 제1 내지 제5 암호화 모듈(331~335), 및 버스(340)을 포함한다.
SoC(30)는 DMA (Direct Memory Access) 모듈(312)을 더 포함할 수 있다.
SoC(30)는 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다. 예를 들어, SoC(30)는 그래픽 프로세싱 유닛(graphics processing unit), 클럭 관리 유닛(clock management unit), 전원 관리 유닛(power management unit) 등을 더 포함할 수 있다.
제1 메모리(13)는 플래시 메모리이고, 제1 메모리 컨트롤러는 플래시 메모리 컨트롤러일 수 있으나, 이에 한정되는 것은 아니다.
제2 메모리(15)는 DRAM 메모리일 수 있으나, 이에 한정되는 것은 아니다.. SoC(30)는 제2 메모리 컨트롤러로서 동작하는 DRAM 컨트롤러(미도시)를 더 포함할 수 있다.
제1 메모리(13)에 저장된 소스 데이터(예컨대, 유료 동영상)(SDAT)는 플래시 메모리 컨트롤러(313)를 통해 독출되어, 제2 메모리(15)에 저장될 수 있다.
제1 메모리(13)에 저장되어 있는 소스 데이터(SDAT)는 미리 정해진 압축 알고리즘에 따라 압축되고, 또한 미리 정해진 표준 암호화 알고리즘(예컨대, AES(Advanced Encryption Standard), DES(data encryption standard))에 따라 암호화된 데이터일 수 있다.
표준 암호화 모듈(321)은, 제2 메모리(15)로부터 소스 데이터(SDAT)를 독출하여 표준 암호화 알고리즘에 따라 복호화할 수 있다.
표준 암호화 모듈(321)에 의해 복호화된 데이터(CDd)는 제1 암호화 모듈(331)에 의해 제1 암호화키(Key A)를 이용하여 암호화된 다음 제2 메모리(15)에 저장될 수 있다.
코덱 모듈(322)은 제1 암호화 모듈(331)에 의해 암호화된 데이터(CDe)를 제2 메모리(15)로부터 독출한다. 제2 메모리(15)로부터 독출된 데이터(CDe)는 제2 암호화 모듈에 의해 제1 암호화키(Key A)를 이용하여 복호화된 다음 코덱 모듈(322)로 입력된다.
코덱 모듈(322)은 입력된 데이터(CDd)를 디코딩한다. 코덱 모듈(322)로 입력된 데이터(CDd)는 여전히 압축되어 있는 데이터이다. 코덱 모듈(322)은 압축되어 있는 데이터를 디코딩함으로써 압축되지 않은 데이터를 복원할 수 있다,
코덱 모듈(322)에 의해 디코딩된 데이터(UDd)는 제2 암호화 모듈에 의해 제2 암호화키(Key B)를 이용하여 암호화된 다음 제2 메모리(15)에 저장될 수 있다.
상술한 바와 같이, 제2 암호화 모듈(332)은 제2 메모리(15)로부터 독출한 데이터에 대해서는 제1 암호화키(Key A)를 사용하여 복호화하고, 제2 메모리(15)에 저장할 데이터에 대해서는 제1 암호화키(Key A)와 다른 제2 암호화키(Key B)를 사용하여 암호화한다.
스케일러(323)는 제2 암호화 모듈(332)에 의해 암호화된 데이터(UDe)를 제2 메모리(15)로부터 독출한다. 제2 메모리(15)로부터 독출된 데이터(UDe)는 제3 암호화 모듈(333)에 의해 제2 암호화키(Key B)를 이용하여 복호화된 다음 스케일러(323)로 입력된다.
스케일러(323)는 수신한 데이터의 사이즈를 변환할 수 있다.
스케일러(323)에 의해 변환된 데이터는(RDd)는 제3 암호화 모듈(333)에 의해 제3 암호화키(Key C)를 이용하여 암호화된 다음 제2 메모리(15)에 저장될 수 있다.
제3 암호화 모듈(333)은 제2 메모리(15)로부터 독출한 데이터에 대해서는 제2 암호화키(Key B)를 사용하여 복호화하고, 제2 메모리(15)에 저장할 데이터에 대해서는 제2 암호화키(Key B)와 다른 제3 암호화키(Key C)를 사용하여 암호화한다.
디스플레이 컨트롤러(324)는 제3 암호화 모듈(332)에 의해 암호화된 데이터(RDe)를 제2 메모리(15)로부터 독출한다. 제2 메모리(15)로부터 독출된 데이터(RDe)는 제4 암호화 모듈(334)에 의해 제3 암호화키(Key C)를 이용하여 복호화된 다음 디스플레이 컨트롤러(324)로 입력된다.
디스플레이 컨트롤러(324)는 제2 메모리(15)로부터 독출한 데이터(RDd)를 디스플레이 디바이스(17)로 디스플레이하기에 적합한 데이터(DD)로 변환하여 디스플레이 디바이스(17)로 출력할 수 있다.
제4 암호화 모듈(334)은 DMA 모듈(312)에 접속되어, DMA 모듈(312)로부터 출력되는 데이터를 제3 암호화키(Key D)를 이용하여 암호화하여 제2 메모리(15)에 저장하거나, 제2 메모리(15)로부터 독출되어 DMA 모듈(312)로 입력될 데이터를 제3 암호화키(Key D)를 이용하여 복호화할 수 있다.
도 4의 실시예에서는, 복수의 채널들(예컨대, 제1 내지 제4 채널(CH1~CH4))이 하나의 체인을 구성한다. 체인을 구성하는 복수의 채널들 각각에 대해서는 서로 다른 암호화 키가 사용된다. 즉 서로 다른 채널에는 서로 다른 암호화 키가 사용되어 각 기능 모듈은 자신의 채널 외의 다른 채널의 데이터를 해독할 수 없다.
도 4의 제2 및 제3 암호화 모듈(332, 333) 각각은 도 3에 도시된 제1 내지 제3 암호화 모듈(221~223) 중의 어느 하나의 구성을 가질 수 있다.
도 4의 실시예에서는, 소스 데이터(SDAT) 및 암호화된 데이터(CDe, UDe, RDe)가 모두 동일한 메모리(15)에 저장되나, 이에 한정되는 것은 아니며, 다른 실시예에서는, 다른 메모리 혹은 버퍼에 저장될 수도 있다.
도 5는 본 발명의 실시예에 따른 전자 시스템의 구성 블록도이다. 도 6a는 도 5에 도시된 반도체 장치에서의 리드 채널에 대한 버스 아이디별 암호화 정책을 나타내는 테이블이다. 도 6b는 도 5에 도시된 반도체 장치에서의 라이트 채널에 대한 버스 아이디별 암호화 정책을 나타내는 테이블이다.
도 5, 도 6a 및 도 6b를 참조하면, 전자 시스템(1E)는 반도체 장치(40) 및 메모리(450)를 구비할 수 있다. 반도체 장치(40)는 기능 모듈(410), 암호화 모듈(420), 버스(430), 및 메모리 컨트롤러(440)를 포함할 수 있다.
기능 모듈(410)은 복수(2이상)의 서브 모듈들을 포함할 수 있다. 본 실시예에서는, 기능 모듈(410)은 제1 내지 제3 서브 모듈(411, 412, 413)을 포함한다. 기능 모듈(410)은 모듈 내 버스(415)를 구비할 수 있다. 모듈 내 버스(415)는 버스(430)의 일부일 수도 있고, 별개의 버스일 수도 있다.
제1 내지 제3 서브 모듈(411, 412, 413)은 서로 다른 데이터 억세스 패턴을 가질 수 있다. 제1 내지 제3 서브 모듈(411, 412, 413)은 또한 서로 다른 버스 아이디(bus ID)를 가진다.
따라서, 각 서브 모듈별로 암호화 정책을 달리할 수 있다.
암호화 정책은 암호화 여부, 암호 알고리즘, 및 암호화 키 중 적어도 하나를 포함할 수 있다. 제1 내지 제3 서브 모듈(411, 412, 413)은 서로 다른 버스 아이디를 가지므로 버스 아이디별로 다른 암호화 정책을 설정할 수 있다.
도 5에는 도시되지 않지만, 버스 아이디 정보를 전송하기 위한 아이디 버스가 데이터 버스와 별도로 구비될 수 있다. 이 경우, 버스 아이디 정보는 데이터와 별도로 아이디 버스를 통해 전송될 수 있다. 다른 실시예에서는 버스 아이디 정보는 데이터와 함께 전송될 수 있다.
암호화 모듈(420)은 제1 및 제2 복호화부(421, 422), 및 제1 암호화부(423)을 포함한다.
암호화 모듈(420)은 또한, 도 6a 및 도 6b에 도시된 버스 아이디별 암호화 정책 테이블을 저장하기 위한 키 저장부(미도시)를 포함할 수 있다
도 6a를 참조하면, 리드 채널에 대한 버스 아이디별 암호화 정책이 테이블 형태로 설정될 수 있다. 즉, 암호화 모듈(420)은 리드 채널에 대한 버스 아이디별 암호화 정책을 저장하는 리드 채널 키 저장부를 포함할 수 있다.
도 6a에 도시된 바와 같이, 3번 버스 아이디에 대해서는 제1 암호 알고리즘(R1)과 제1 암호화키(A)가 설정되고, 5번 버스 아이디에 대해서는 비암호화 정책이 설정되고, 7번 버스 아이디에 대해서는 제2 암호 알고리즘(R2)과 제2 암호화키(B)가 설정될 수 있다. 예컨대, 리드 채널 키 저장부는 3번 버스 아이디에 대응하는 제1 암호 알고리즘(R1)의 식별자와 제1 암호화키(A)를 저장하고, 5번 버스 아이디에 대해서는 비암호화 정책을 나타내는 값, 그리고 7번 버스 아이디에 대해서는 제2 암호 알고리즘(R2)의 식별자와 제2 암호화키(B)를 저장할 수 있다.
제1 및 제2 암호 알고리즘(R1, R2)의 식별자는 각각 제1 및 제2 암호 알고리즘이 구현된 암복호화부를 식별하기 위한 정보일 수 있다. 예컨대, 각 암호 알고리즘별로 별도의 암복호화부가 구비되어, 암호 알고리즘에 해당하는 암복호화가 선택될 수 있다.
암호화 모듈(420)은 메모리(450)로부터 독출된 제1 데이터(451)에 대해서는 도 6a의 테이블에 설정된 값에 따라, 제1 암호 알고리즘(R1)이 구현된 제1 복호화부(421)로 입력하고, 제1 복호화부(421)에서 제1 암호화키(A)를 이용하여 복호화하여, 복호화된 제1 데이터를 제1 서브 모듈(411)로 제공할 수 있다. 제1 데이터(451)는 제1 암호 알고리즘(R1)과 제1 암호화키(A)를 이용하여 암호화되어 메모리(450)에 저장된 데이터일 수 있다.
암호화 모듈(420)은 메모리(450)로부터 독출된 제2 데이터(452)에 대해서는 도 6a의 테이블에 설정된 값에 따라, 복호화 없이 메모리(450)로부터 독출된 데이터 그대로 제2 서브 모듈(412)로 제공할 수 있다. 제2 데이터(452)는 암호화되지 않은 채로 메모리(450)에 저장된 로(raw) 데이터일 수 있다.
암호화 모듈(420)은 메모리(450)로부터 독출된 제3 데이터(453)에 대해서는 도 6a의 테이블에 설정된 값에 따라, 제2 암호 알고리즘(R2)이 구현된 제2 복호화부(422)로 입력하고, 제2 복호화부(422)에서 제2 암호화키(B)를 이용하여 복호화하여, 복호화된 제3 데이터를 제3 서브 모듈(413)로 제공할 수 있다. 제3 데이터(453)는 제2 암호 알고리즘(R2)과 제2 암호화키(B)를 이용하여 암호화되어 메모리(450)에 저장된 데이터일 수 있다.도 6b를 참조하면, 라이트 채널에 대한 버스 아이디별 암호화 정책 역시 테이블 형태로 설정될 수 있다. 즉, 암호화 모듈(420)은 라이트 채널에 대한 버스 아이디별 암호화 정책을 저장하는 라이트 채널 키 저장부를 포함할 수 있다.
도 6b에 도시된 바와 같이, 5번 버스 아이디에 대해서는 비암호화 정책이 설정되고, 7번 버스 아이디에 대해서는 제2 암호 알고리즘(R2)과 제2 암호화키(B)가 설정될 수 있다.
암호화 모듈(420)은 제2 서브 모듈(412)로부터 출력된 데이터에 대해서는 도 6b의 테이블에 설정된 값에 따라, 암호화 없이 메모리(450)에 저장할 수 있다
암호화 모듈(420)은 제3 서브 모듈(413)로부터 출력된 데이터에 대해서는 도 6b의 테이블에 설정된 값에 따라, 제1 암호화부(423)에서 제2 암호 알고리즘(R2)과 제2 암호화키(B)를 이용하여 암호화하고, 암호화된 데이터를 메모리(450)에 저장할 수 있다.
상술한 바와 같이, 본 발명의 실시예에서는, 하나의 기능 모듈 내에 복수의 서브 모듈이 있고 각 서브 모듈에 대하여 서로 다른 암호화 정책이 적용될 수 있다.
도 7은 본 발명의 실시예에 따른 전자 시스템의 구성 블록도이다.
도 7을 참조하면, 전자 시스템(1F)는 반도체 장치(50) 및 메모리(450)를 구비할 수 있다. 반도체 장치(50)는 제1 내지 제3 기능 모듈(511, 512, 513), 암호화 모듈(420), 버스(430), 및 메모리 컨트롤러(440)를 포함할 수 있다.
제1 내지 제3 기능 모듈(511, 512, 513)은 서로 다른 데이터 억세스 패턴을 가질 수 있다. 제1 내지 제3 기능 모듈(511, 512, 513)은 또한 서로 다른 버스 아이디(bus ID)를 가진다.
따라서, 각 모듈별로 암호화 정책을 달리할 수 있다.
암호화 정책은 암호화 여부, 암호 알고리즘, 및 암호화 키 중 적어도 하나를 포함할 수 있다. 제1 내지 제3 기능 모듈(511, 512, 513)은 서로 다른 버스 아이디를 가지므로 버스 아이디별로 다른 암호화 정책을 설정할 수 있다.
암호화 모듈(420)은 제1 및 제2 복호화부(421, 422), 및 제1 암호화부(423)을 포함한다.
암호화 모듈(420)은 또한, 도 6a 및 도 6b에 도시된 버스 아이디별 암호화 정책 테이블을 포함할 수 있다.
도 7의 실시예에서는, 반도체 장치(50) 내에 하나의 암호화 모듈(420)만이 구비된다. 하나의 암호화 모듈(420)이 복수의 기능 모듈들에 대하여 각 기능 모듈의 버스 아이디를 이용하여 버스 아이디별로 서로 다른 암호화 정책(예컨대, 암호화 유무, 암호 알고리즘, 암호화 키 등)을 적용한다. 이와 같이 함으로써, 암호화 모듈의 수를 최소화할 수 있다.
도 8은 본 발명의 일 실시예에 따른 암호화 모듈를을 나타내는 블록도이다. 이를 참조하면, 암호화 모듈(520)은 암호화 블록(530), 복호화 블록(540), 라이트 채널 제어부(550) 및 리드 채널 제어부(560)를 포함한다.
도 8의 암호화 모듈(520)은 상술한 반도체 장치(10, 10', 20, 30, 40, 또는 50) 내부에 구비될 수 있다. 또한, 도 8의 암호화 모듈(520)은 상술한 암호화 모듈(121, 122, 123, 221, 222, 223, 331, 332, 333, 334, 335, 및 420) 중 적어도 하나를 대신하여 사용될 수 있다.
암호화 블록(530)은 복수(2이상)의 암호화부, 예컨대, 제1 내지 제3 암호화부(531, 532 및 533)을 포함할 수 있다. 암호화 블록(530)은 또한, 알고리즘 식별자(Alg_sel)에 따라 라이트 채널 데이터(WDATp)를 제1 내지 제3 암호화부(531, 532, 및 533) 중 어느 하나로 입력시키거나 바이패스시키기 위한 제1 선택기(535)를 더 포함할 수 있다. 제1 내지 제3 암호화부(531, 532 및 533)는 서로 다른 암호화 알고리즘을 가질 수 있다.
라이트 채널 제어부(550)는 라이트 채널로부터 버스 아이디(ID)를 입력받고, 미리 저장된 매핑 테이블(미도시)을 이용하여 버스 아이디(ID)에 해당하는 암호화 키(Key) 및 알고리즘 식별자(Alg_sel)를 출력한다.
예를 들어, 알고리즘 식별자(Alg_sel)가 '00'이면 제1 암호화부(531)가 선택되고, 식별자(Alg_sel)가 '01'이면 제2 암호화부(532)가 선택되고, 식별자(Alg_sel)가 '10'이면 제3 암호화부(533)가 선택되며, 식별자(Alg_sel)가 '11'이면 바이패스 경로가 선택될 수 있다.
매핑 테이블은 버스 아이디(ID)별로 암호화 키(Key) 및 알고리즘 식별자(Alg_sel) 정보를 저장하며, 도 6b에 도시된 바와 유사할 수 있다.
암호화 블록(530)은 또한, 알고리즘 식별자(Alg_sel)에 따라 제1 내지 제3 암호화부(531, 532, 및 533)의 출력 데이터 및 바이패스된 데이터 중 어느 하나를 선택하여 출력하기 위한 제2 선택기(536)를 더 포함할 수 있다.
이에 따라, 암호화 블록(530)은 버스 아이디(ID)에 따라 선택된 암호화부에서 선택된 암호화 키를 사용하여 라이트 채널 데이터(WDATp)를 암호화하여 출력하거나, 또는 바이패스시킨다.
라이트 채널 데이터(WDATp)는 상술한 기능 모듈(111, 112, 113, 211, 212, 213, 410, 511, 512, 또는 513)로부터 출력되는 데이터일 수 있고, 제2 선택기(536)의 출력 데이터(WDATe)는 상술한 메모리(13, 15, 또는 450)에 입력되는 데이터일 수 있다.
복호화 블록(540)은 복수(2이상)의 복호화부, 예컨대, 제1 내지 제3 복호화부(541, 542, 및 543)을 포함할 수 있다. 복호화 블록(540)은 또한, 알고리즘 식별자(Alg_sel)에 따라 리드 채널 데이터(RDATp)를 제1 내지 제3 복호화부(541, 542, 및 543) 중 어느 하나로 입력시키거나 바이패스시키기 위한 제3 선택기(545)를 더 포함할 수 있다. 제1 내지 제3 복호화부(541, 542, 및 543)는 서로 다른 복호화 알고리즘을 가질 수 있다.
리드 채널 제어부(560)는 리드 채널로부터 버스 아이디(ID)를 입력받고, 미리 저장된 매핑 테이블(미도시)을 이용하여 버스 아이디(ID)에 해당하는 복호화 키(Key) 및 알고리즘 식별자(Alg_sel)를 출력한다.
예를 들어, 알고리즘 식별자(Alg_sel)가 '00'이면 제1 복호화부(541)가 선택되고, 식별자(Alg_sel)가 '01'이면 제2 복호화부(542)가 선택되고, 식별자(Alg_sel)가 '10'이면 제3 복호화부(543)가 선택되며, 식별자(Alg_sel)가 '11'이면 바이패스 경로가 선택될 수 있다.
매핑 테이블은 버스 아이디(ID)별로 암호화 키(Key) 및 알고리즘 식별자(Alg_sel) 정보를 저장하며, 도 6a에 도시된 바와 유사할 수 있다.
복호화 블록(540)은 또한, 알고리즘 식별자(Alg_sel)에 따라 제1 내지 제3 복호화부(541, 542, 및 543)의 출력 데이터 및 바이패스된 데이터 중 어느 하나를 선택하여 출력하기 위한 제4 선택기(546)를 더 포함할 수 있다.
리드 채널 데이터(RDATp)는 상술한 메모리(13, 15, 또는 450)로부터 출력되는 데이터일 수 있고, 제4 선택기(546)의 출력 데이터(RDATd)는 상술한 기능 모듈(111, 112, 113, 211, 212, 213, 410, 511, 512, 또는 513)로 입력되는 데이터일 수 있다.
이에 따라, 복호화 블록(540)은 버스 아이디(ID)에 따라 선택된 복호화부에서 선택된 암호화 키를 사용하여 리드 채널 데이터(RDATp)를 복호화하여 출력하거나, 또는 바이패스시킨다.
도 9a는 데이터 억세스의 최소 단위가 32비트인 경우의 암호화 모듈을 나타내고, 도 9b는 데이터 억세스의 최소 단위가 64비트인 경우의 암호화 모듈을 나타내며, 도 9c는 데이터 억세스의 최소 단위가 128비트인 경우의 암호화 모듈을 나타낸다.
각 기능 모듈은 다양한 단위의 데이터 억세스가 가능하다. 예를 들어 각 기능 모듈의 데이터 억세스의 최소 단위는 8비트, 16비트, 32비트, 64비트, 128비트 등이 있을 수 있다. 데이터 억세스의 최소 단위란 기능 모듈로부터 동시에 출력되는 데이터 또는 기능 모듈로 동시에 입력되는 데이터의 최소 비트수를 의미할 수 있다.
예를 들어, 제1 기능 모듈의 데이터 입력 또는 데이터 출력이 16비트, 32비트 또는 64비트 단위로 이루어진다고 가정하면 제1 기능 모듈의 데이터 엑세스의 최소 단위는 16비트이다.
상기와 같은 각 기능 모듈의 데이터 억세스의 최소 단위에 맞추어, 해당 암호화 모듈의 암호화/복호화 단위 역시 다르게 설정될 수 있다.
도 9a의 암호화 모듈(610)은 4개의 32비트 서브-암호화 모듈(611~614)로 구현될 수 있다. 각 32비트 서브-암호화 모듈(611~614)은 32비트 입력 데이터를 수신하고, 이를 암호화 또는 복호화하여 32비트 출력 데이터를 출력할 수 있다.
도 9b의 암호화 모듈(620)은 2개의 64비트 서브-암호화 모듈(621~622)로 구현될 수 있다. 각 64비트 서브-암호화 모듈(621~622)은 64비트 입력 데이터를 수신하고, 이를 암호화 또는 복호화하여 64비트 출력 데이터를 출력할 수 있다.
도 9c의 암호화 모듈(630)은 1개의 128비트 암호화 모듈(631)로 구현될 수 있다. 128비트 암호화 모듈(631)은 128비트 입력 데이터를 수신하고, 이를 암호화 또는 복호화하여 128비트 출력 데이터를 출력할 수 있다.
이에 따라, 암호화 모듈은 대응하는 기능 모듈의 데이터 억세스의 최소 단위에 맞게 암호화/복호화를 수행할 수 있다.
도 10은 본 발명의 실시예에 따른 암호화 방법을 나타내는 플로우차트이다. 이를 참조하면, 본 발명의 실시예에 따른 암호화 방법은 채널별로 암호화 키를 설정한다(S110). 예컨대, 제1 채널에 대해서는 제1 암호화 키를 설정하고, 제2 채널에 대해서는 제2 암호화 키를 설정한다(S110).
제1 기능 모듈의 제1 데이터를 제1 암호화 키를 이용하여 암호화한다(S120). 암호화된 제1 데이터는 제1 채널을 통해 다른 기능 모듈(예컨대, 제2 기능모듈)로 전송될 수 있다.
제1 채널은 제1 기능 모듈과 메모리 간 경로, 메모리와 제2 기능 모듈간 경로를 포함할 수 있다. 이에 따라, 암호화된 제1 데이터는 메모리에 저장될 수 있다(S130).
메모리에 저장된 암호화된 제1 데이터는 메모리로부터 독출되어, 제1 암호화 키를 이용하여 복호화된 후 제2 기능 모듈로 입력될 수 있다.
한편, 메모리로부터 암호화된 제2 데이터를 독출한다(S140). 암호화된 제2 데이터를 제2 암호화키를 이용하여 복호화한다(S150). 제1 기능 모듈은 복호화된 제2 데이터를 제2 채널을 통해 수신할 수 있다.
일 실시예에서, 제1 데이터는 제1 기능 모듈이 메모리에 저장할 라이트 데이터일 수 있고, 제2 데이터는 제1 기능 모듈이 메모리로부터 독출한 리드 데이터일 수 있다. 또한, 제1 채널은 제1 기능 모듈의 라이트 채널(write channel)일 수 있고, 제2 채널은 제1 기능 모듈의 리드 채널(read channel)일 수 있다.
도 11은 본 발명의 실시예에 따른 암호화 방법을 나타내는 플로우차트이다. 이를 참조하면, 본 발명의 실시예에 따른 암호화 방법은 버스 아이디별로 암호화 정책을 설정한다(S210). 암호화 정책은 암호화 여부, 암호 알고리즘, 및 암호화 키를 포함할 수 있다. 예컨대, 제1 버스 아이디에 대해서는 제1 암호화 알고리즘 및 제1 암호화 키를 설정하고, 제2 버스 아이디에 대해서는 비암호화 정책, 즉 암호화를 하지 않는 정책을 설정하고, 제3 버스 아이디에 대해서는 제1 암호화 알고리즘 및 제1 암호화 키를 설정할 수 있다(S210).
버스 아이디별 암호화 정책은 암호화 모듈 내에 룩업 테이블 형태로 구현될 수 있다.
암호화 모듈은 제1 기능 모듈로부터 제1 데이터를 수신하면(S220). 제1 기능 모듈의 버스 아이디를 확인한다(S230). 제1 기능 모듈의 버스 아이디가 제1 버스 아이디라고 가정하면, 제1 버스 아이디에 해당하는 암호 정책을 선택한다(S240). 다음으로, 선택된 암호 정책에 따라 제1 데이터를 암호화하고(S250), 암호화된 제1 데이터를 메모리에 저장할 수 있다(S260)
도 12는 본 발명의 실시예에 따른 전자 시스템의 실시예를 나타낸 블록도이다. 도 12을 참조하면, 전자 시스템(900)은 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다.
상기 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰 (smart phone), 태블릿 (tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라 (digital still camera), 디지털 비디오 카메라 (digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
전자 시스템(900)은 SoC(905), 파워 소스(910), 스토리지(920), 메모리(930), 입출력 포트(940), 확장 카드(950), 네트워크 디바이스(960), 및 디스플레이(970)를 포함한다. 실시 예에 따라. 전자 시스템(900)은 카메라 모듈(980)을 더 포함할 수 있다.
SoC(905)는 도 1 내지 도 7에 도시된 반도체 장치(10, 10', 20, 30, 40, 50) 중 하나일 수 있다. SoC(905)는 구성 요소들(elements; 910~980) 중에서 적어도 하나의 동작을 제어할 수 있다.
파워 소스(910)는 구성 요소들(905, 및 910~980) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.
스토리지(920)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(930)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 실시 예에 따라, 메모리(930)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 SoC(100)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 SoC(100)와 메모리(930) 사이에 구현될 수 있다.
입출력 포트(940)는 전자 시스템(900)으로 데이터를 전송하거나 또는 전자 시스템(900)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(940)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(950)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(950)는 SIM(subscriber identification 모듈) 카드 또는 USIM(universal subscriber identity 모듈) 카드일 수 있다.
네트워크 디바이스(960)는 전자 시스템(900)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
디스플레이(970)는 스토리지(920), 메모리(930), 입출력 포트(940), 확장 카드(950), 또는 네트워크 디바이스(960)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(980)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(980)로부터 출력된 전기적인 이미지는 스토리지(920), 메모리(930), 또는 확장 카드(950)에 저장될 수 있다. 또한, 카메라 모듈(980)로부터 출력된 전기적인 이미지는 디스플레이(970)를 통하여 디스플레이될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1A, 1B, 1C, 1D, 1E, 1F, 900: 전자 시스템
10, 10', 20, 30, 40, 50: 반도체 장치
13, 15, 450: 메모리
17: 디스플레이 장치
111, 112, 113, 211, 212, 213, 410, 511, 512, 513: 기능 모듈
121, 122, 123, 221, 222, 223, 331, 332, 333, 334, 335, 420, 520: 암호화 모듈
131, 261, 340, 430: 버스
311: CPU
313: 메모리 컨트롤러
321: 표준 암호화 모듈
322: 코덱 모듈
323: 스케일러
324: 디스플레이 컨트롤러
411, 412, 413: 서브 모듈
10, 10', 20, 30, 40, 50: 반도체 장치
13, 15, 450: 메모리
17: 디스플레이 장치
111, 112, 113, 211, 212, 213, 410, 511, 512, 513: 기능 모듈
121, 122, 123, 221, 222, 223, 331, 332, 333, 334, 335, 420, 520: 암호화 모듈
131, 261, 340, 430: 버스
311: CPU
313: 메모리 컨트롤러
321: 표준 암호화 모듈
322: 코덱 모듈
323: 스케일러
324: 디스플레이 컨트롤러
411, 412, 413: 서브 모듈
Claims (10)
- 버스(bus);
각각이 메모리와 이격되어 배치되고, 상기 버스를 통해 상기 메모리와 데이터를 주거나 받을 수 있는 제1 기능 모듈 및 제2 기능 모듈; 및
상기 제1 기능 모듈로부터 출력되어 상기 메모리에 저장될 제1 데이터와 상기 제2 기능 모듈로부터 출력되어 상기 메모리에 저장될 제2 데이터에 대해 서로 다른 암호화 정책을 적용하는 암호화 모듈을 포함하고,
상기 제1 기능 모듈은 제1 버스 아이디를 갖고, 상기 제2 기능 모듈은 상기 제1 버스 아이디와 다른 제2 버스 아이디를 가지며,
상기 암호화 모듈은 상기 제1 버스 아이디 및 상기 제2 버스 아이디에 대응하여 상기 서로 다른 암호화 정책을 저장하는 키 저장부를 포함하고,
상기 서로 다른 암호화 정책은 상기 제1 버스 아이디에 대응하는 제1 암호화 키를 설정하는 제1 암호화 정책 및 상기 제2 버스 아이디에 대응하는 제2 암호화 키를 설정하는 제2 암호화 정책 중 적어도 어느 하나를 포함하고, 상기 제1 암호화 키는 상기 제2 암호화 키와 다른 반도체 장치. - 제1항에 있어서,
상기 암호화 모듈은
상기 제1 기능 모듈로부터 전송되는 상기 제1 데이터를 상기 제1 암호화 키를 이용하여 암호화하여 제1 암호화된 데이터를 발생하고, 상기 제2 기능 모듈로부터 전송되는 상기 제2 데이터를 상기 제1 암호화 키와 다른 상기 제2 암호화 키를 사용하여 암호화하여 제2 암호화된 데이터를 발생하는 반도체 장치. - 제1항에 있어서,
상기 키 저장부는 상기 제1 버스 아이디에 대응하는 제1 암호화 알고리즘 및 상기 제2 버스 아이디에 대응하는 제2 암호화 알고리즘의 번호를 더 저장하고,
상기 암호화 모듈은 상기 제1 암호화 알고리즘을 이용하여 상기 제1 데이터를 암호화하고, 상기 제1 암호화된 데이터를 복호화하는 제1 암호화부; 및 상기 제2 암호화 알고리즘을 이용하여 상기 제2 데이터를 암호화하고 상기 제2 암호화된 데이터를 복호화하는 제2 암호화부를 포함하는 반도체 장치. - 제1항에 있어서,
상기 반도체 장치는 제3 버스 아이디를 갖는 제3 기능 모듈을 더 포함하고,
상기 암호화 모듈은 상기 제3 기능 모듈로부터 전송되는 제3 데이터를 암호화하지 않고, 상기 메모리에 저장하는 반도체 장치. - 제1항에 있어서,
상기 키 저장부는,
상기 제1 기능 모듈 및 상기 제2 기능 모듈의 리드 채널들에 대하여 버스 아이디별 암호화 정책을 저장하는 리드 채널 키 저장부; 및
상기 제1 기능 모듈 및 상기 제2 기능 모듈의 라이트 채널들에 대하여 버스 아이디별 암호화 정책을 저장하는 라이트 채널 키 저장부를 포함하는 반도체 장치. - 제1항에 있어서,
상기 암호화 모듈은,
각각이 n(2이상의 정수) 비트 단위로 데이터를 수신하여 암호화하는 m(1이상의 정수)개의 서브-암호화 모듈들을 포함하며,
최소 n 비트 단위로 데이터를 암호화하고, 최대 m*n 비트 단위로 데이터를 암호화하는 반도체 장치. - 제1항에 있어서,
상기 반도체 장치는 SoC(system on chip)으로 구현되는 반도체 장치.
- 삭제
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140075146A KR102218715B1 (ko) | 2014-06-19 | 2014-06-19 | 채널별로 데이터를 보호할 수 있는 반도체 장치 |
US14/713,120 US10177913B2 (en) | 2014-06-19 | 2015-05-15 | Semiconductor devices and methods of protecting data of channels in the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140075146A KR102218715B1 (ko) | 2014-06-19 | 2014-06-19 | 채널별로 데이터를 보호할 수 있는 반도체 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150145870A KR20150145870A (ko) | 2015-12-31 |
KR102218715B1 true KR102218715B1 (ko) | 2021-02-23 |
Family
ID=54870637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140075146A KR102218715B1 (ko) | 2014-06-19 | 2014-06-19 | 채널별로 데이터를 보호할 수 있는 반도체 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10177913B2 (ko) |
KR (1) | KR102218715B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11425559B1 (en) * | 2018-05-15 | 2022-08-23 | Know 2Solutions, LLC | Data transmission network device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100188975A1 (en) * | 2009-01-28 | 2010-07-29 | Gregory G. Raleigh | Verifiable device assisted service policy implementation |
US20130145177A1 (en) * | 2011-12-06 | 2013-06-06 | Honeywell International Inc. | Memory location specific data encryption key |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4120398A1 (de) | 1991-06-20 | 1993-01-07 | Standard Elektrik Lorenz Ag | Datenverarbeitungsanlage |
US5596736A (en) * | 1992-07-22 | 1997-01-21 | Fujitsu Limited | Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses |
JP3747520B2 (ja) * | 1996-01-30 | 2006-02-22 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理方法 |
US6250548B1 (en) * | 1997-10-16 | 2001-06-26 | Mcclure Neil | Electronic voting system |
US6195730B1 (en) * | 1998-07-24 | 2001-02-27 | Storage Technology Corporation | Computer system with storage device mapping input/output processor |
US6857076B1 (en) | 1999-03-26 | 2005-02-15 | Micron Technology, Inc. | Data security for digital data storage |
FR2800952B1 (fr) * | 1999-11-09 | 2001-12-07 | Bull Sa | Architecture d'un circuit de chiffrement mettant en oeuvre differents types d'algorithmes de chiffrement simultanement sans perte de performance |
EP1249010B1 (de) | 2000-01-18 | 2003-09-10 | Infineon Technologies AG | Mikroprozessoranordnung mit verschlüsselung |
US7058179B1 (en) * | 2000-03-29 | 2006-06-06 | Sony Corporation | Method and system for a secure high bandwidth bus in a transceiver device |
US20020141577A1 (en) | 2001-03-29 | 2002-10-03 | Ripley Michael S. | Method and system for providing bus encryption based on cryptographic key exchange |
KR100445406B1 (ko) * | 2001-11-30 | 2004-08-25 | 주식회사 하이닉스반도체 | 데이터 암호화 장치 및 그 방법 |
US7093038B2 (en) * | 2002-05-06 | 2006-08-15 | Ivivity, Inc. | Application program interface-access to hardware services for storage management applications |
JP2004104181A (ja) | 2002-09-04 | 2004-04-02 | Kenwood Corp | 情報伝送システム、データ処理装置、暗号化処理装置、情報伝送方法及びプログラム |
JP3880933B2 (ja) * | 2003-01-21 | 2007-02-14 | 株式会社東芝 | 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法 |
EP1457859B1 (en) | 2003-03-14 | 2012-10-17 | Broadcom Corporation | Data encryption/decryption device |
EP2099154A3 (en) | 2004-02-05 | 2010-01-27 | Research In Motion Limited | On-chip storage, creation, and manipulation of an encryption key |
US7383462B2 (en) * | 2004-07-02 | 2008-06-03 | Hitachi, Ltd. | Method and apparatus for encrypted remote copy for secure data backup and restoration |
US7822994B2 (en) * | 2005-01-07 | 2010-10-26 | Konica Minolta Systems Laboratory, Inc. | Data bus line and bus having an encryption/decryption device |
US7657754B2 (en) | 2005-12-08 | 2010-02-02 | Agere Systems Inc | Methods and apparatus for the secure handling of data in a microcontroller |
EP1811415A1 (en) * | 2005-12-23 | 2007-07-25 | Nagracard S.A. | Secure system-on-chip |
EP1802030A1 (en) | 2005-12-23 | 2007-06-27 | Nagracard S.A. | Secure system-on-chip |
JP2007281994A (ja) | 2006-04-10 | 2007-10-25 | Renesas Technology Corp | 半導体集積回路 |
JP4994741B2 (ja) | 2006-08-08 | 2012-08-08 | キヤノン株式会社 | 通信暗号化処理装置 |
US20080155273A1 (en) | 2006-12-21 | 2008-06-26 | Texas Instruments, Inc. | Automatic Bus Encryption And Decryption |
US8464069B2 (en) * | 2007-02-05 | 2013-06-11 | Freescale Semiconductors, Inc. | Secure data access methods and apparatus |
KR101370829B1 (ko) * | 2007-05-08 | 2014-03-10 | 삼성전자주식회사 | 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템 |
KR20090059602A (ko) | 2007-12-07 | 2009-06-11 | 한국전자통신연구원 | 세션 메모리 버스를 구비한 암호화 장치 |
US20120096281A1 (en) * | 2008-12-31 | 2012-04-19 | Eszenyi Mathew S | Selective storage encryption |
JP5272751B2 (ja) * | 2009-01-26 | 2013-08-28 | 富士通セミコンダクター株式会社 | プロセッサ |
US8732468B2 (en) * | 2009-03-09 | 2014-05-20 | The Regents Of The University Of Michigan | Protecting hardware circuit design by secret sharing |
US8386745B2 (en) * | 2009-07-24 | 2013-02-26 | Advanced Micro Devices, Inc. | I/O memory management unit including multilevel address translation for I/O and computation offload |
US9529599B2 (en) * | 2012-02-13 | 2016-12-27 | William Erik Anderson | Dynamic propagation with iterative pipeline processing |
US9400890B2 (en) * | 2012-08-10 | 2016-07-26 | Qualcomm Incorporated | Method and devices for selective RAM scrambling |
US20140310536A1 (en) * | 2013-04-16 | 2014-10-16 | Qualcomm Incorporated | Storage device assisted inline encryption and decryption |
US9553721B2 (en) * | 2015-01-30 | 2017-01-24 | Qualcomm Incorporated | Secure execution environment communication |
-
2014
- 2014-06-19 KR KR1020140075146A patent/KR102218715B1/ko active IP Right Grant
-
2015
- 2015-05-15 US US14/713,120 patent/US10177913B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100188975A1 (en) * | 2009-01-28 | 2010-07-29 | Gregory G. Raleigh | Verifiable device assisted service policy implementation |
US20130145177A1 (en) * | 2011-12-06 | 2013-06-06 | Honeywell International Inc. | Memory location specific data encryption key |
Also Published As
Publication number | Publication date |
---|---|
US20150372816A1 (en) | 2015-12-24 |
US10177913B2 (en) | 2019-01-08 |
KR20150145870A (ko) | 2015-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101975027B1 (ko) | 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들 | |
KR102013841B1 (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
TWI715619B (zh) | 用於硬體強制單向密碼學的處理器、方法及系統 | |
US9954826B2 (en) | Scalable and secure key management for cryptographic data processing | |
US9397834B2 (en) | Scrambling an address and encrypting write data for storing in a storage device | |
CN108449172B (zh) | 加密/解密方法和计算设备的集成电路 | |
US20220197825A1 (en) | System, method and apparatus for total storage encryption | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
JP4999191B2 (ja) | セキュア情報格納システム及び方法 | |
JP2010509662A (ja) | 外部不揮発性メモリに記憶された情報の暗号化のための方法およびシステム | |
US10565381B2 (en) | Method and apparatus for performing firmware programming on microcontroller chip, and associated microcontroller chip | |
US10248579B2 (en) | Method, apparatus, and instructions for safely storing secrets in system memory | |
CN101551784A (zh) | 一种usb接口的ata类存储设备中数据的加密方法及装置 | |
CN112513856A (zh) | 存储器高效的硬件加密引擎 | |
EP2629223A1 (en) | System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction | |
US9729319B2 (en) | Key management for on-the-fly hardware decryption within integrated circuits | |
JP2007251783A (ja) | 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置 | |
CN103246852A (zh) | 加密数据的存取方法及装置 | |
KR102218715B1 (ko) | 채널별로 데이터를 보호할 수 있는 반도체 장치 | |
US9979541B2 (en) | Content management system, host device and content key access method | |
KR20180059217A (ko) | 메모리 데이터 보안 처리 장치 및 방법 | |
US20130198528A1 (en) | Modifying a Length of an Element to Form an Encryption Key | |
CN110837627A (zh) | 一种基于硬盘序列号的软件版权认证方法、***和设备 | |
US11061996B2 (en) | Intrinsic authentication of program code | |
US10664416B2 (en) | Technologies for trusted I/O support for I/O devices using external peripheral device link controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |