KR101370829B1 - 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템 - Google Patents

데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템 Download PDF

Info

Publication number
KR101370829B1
KR101370829B1 KR1020070044699A KR20070044699A KR101370829B1 KR 101370829 B1 KR101370829 B1 KR 101370829B1 KR 1020070044699 A KR1020070044699 A KR 1020070044699A KR 20070044699 A KR20070044699 A KR 20070044699A KR 101370829 B1 KR101370829 B1 KR 101370829B1
Authority
KR
South Korea
Prior art keywords
data
bus
transmitted
synchronization signal
stream
Prior art date
Application number
KR1020070044699A
Other languages
English (en)
Other versions
KR20080099070A (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 KR1020070044699A priority Critical patent/KR101370829B1/ko
Priority to US12/025,829 priority patent/US20080279371A1/en
Priority to CN200810081777.XA priority patent/CN101304314B/zh
Priority to JP2008101626A priority patent/JP2008282004A/ja
Publication of KR20080099070A publication Critical patent/KR20080099070A/ko
Application granted granted Critical
Publication of KR101370829B1 publication Critical patent/KR101370829B1/ko

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Abstract

본 발명은 암호화 방법에 관한 것으로, 버스로 전송할 데이터를 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 데이터를 암호화하고, 암호화된 데이터를 버스를 통해 소정의 모듈로 전송하며, 암호화된 데이터가 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 소정의 모듈로 전송함으로써, 암호화의 속도를 향상시키고 구현을 간단하게 하여 버스에서 전송되는 데이터에 대한 보안을 강화할 수 있다.

Description

데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템{Method of encrypting and decrypting data, and Bus System using the same}
도 1은 종래의 스트림 암호 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 1:1 구조의 버스 시스템을 나타내는 블록도이다.
도 3은 도 2의 버스 시스템에서의 데이터의 전송 동작을 상세하게 나타내는 블록도이다.
도 4는 도 2의 버스 시스템에 포함된 래퍼를 개략적으로 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 N:N 구조의 버스 시스템을 나타내는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 버스 시스템의 데이터 암호화 및 복호화 동작을 구체적으로 나타내는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 데이터의 암호화 방법을 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 데이터의 복호화 방법을 나타내는 흐름도이다.
본 발명은 암호화 방법에 관한 것으로, 더욱 상세하게는 데이터의 암호화(encryption) 및 복호화(decryption) 방법, 및 버스 시스템에 관한 것이다.
암호 시스템은 키(key)를 운영하는 방식에 따라 공개키 암호 시스템과 비밀키 암호 시스템으로 나눌 수 있다. 공개키 암호 시스템에서 모든 사용자는 모든 사람에게 공개되어 있는 공개키(public key)와 자기만의 개인키(private key 또는 secret key)를 가지고 있으며, 공개키는 문서를 암호화할 때 사용하며 개인키는 개인이 보관을 하면서 암호화된 문서를 해독할 때 사용한다. 이에 반해, 비밀키 암호 시스템은 하나의 비밀키만으로 암호화 및 복호화(해독)를 동시에 수행하는 것으로, 블록 암호(block cipher) 시스템과 스트림 암호(stream cipher) 시스템이 있다.
블록 암호 시스템은 주어진 평문(plain text)을 정해진 길이의 블록(64 비트 혹은 128 비트)으로 나누어 블록 단위로 암호화를 수행한다. 스트림 암호 시스템은 평문을 블록으로 나누지 않고, 비밀키로부터 유도된 키 스트림(key stream)과 평문에 대하여 배타적 논리합(XOR)을 수행하여 암호문을 생성한다. 일반적으로 스트림 암호 시스템은 블록 암호 시스템에 비해 속도가 빠르다.
도 1은 종래의 스트림 암호 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스트림 암호 시스템은 CPU(central processing unit, 11), 캐쉬(cache, 12), 메모리 컨트롤러(memory controller, 13), 암호화/복호화 부(encryption/decryption unit, 14), 연산부(15) 및 외부 메모리(external memory, 16)를 포함한다.
먼저, CPU(11)에서 버스로 전송되는 데이터를 암호화하는 동작에 대하여 설명하기로 한다. CPU(11)에서 데이터에 대한 읽기/쓰기를 요청(request)하는 경우 생성되는 데이터는 암호화되지 않은 평문(plaintext) 데이터이므로, 이를 버스로 전송하기 위해서는 암호화하는 과정이 필요하다. CPU(11)가 데이터에 대한 읽기/쓰기를 요청하면, 암호화/복호화부(14)는 데이터에 대한 읽기/쓰기 요청을 탐지한다. 이 때, 암호화/복호화부(14)에 포함된 키 스트림 생성부(141)는 클럭 신호에 동기하여(즉, 클럭 신호의 상승 및/또는 하강 에지(edge)에서) 데이터의 사이즈에 해당하는 키 스트림을 발생한다. 여기서, 데이터 사이즈는 예를 들어, 바이트 또는 입력된 데이터로부터 줄, 단어, 문자의 개수 등을 계산한 워드 카운트로 나타낼 수 있다. 연산부(15)는 키 스트림과 데이터에 대하여 각각 바이트 단위로 일대일 매핑이 되도록 동기되어 배타적 논리합(XOR)을 수행하여 데이터를 암호화한다. 이와 같이, 암호화된 데이터는 버스를 통하여 외부로 전송될 수 있다.
다음으로, 버스를 통해 전송되는 암호화된 데이터를 CPU(11)가 인식할 수 있도록 복호화하는 동작에 대하여 설명하기로 한다. 외부 메모리(16)로부터 버스를 통해 전송되는 암호화된 데이터는 메모리 컨트롤러(13) 및 캐쉬(12)를 거쳐서 CPU(11)로 전달되는데 CPU(11)는 암호화된 데이터를 인식할 수 없으므로 이를 복호화하는 과정이 필요하다. 외부 메모리(16)로부터 버스를 통해 암호화된 데이터가 전송되면, 암호화/복호화부(14)는 이를 탐지한다. 이 때, 암호화/복호화부(14)에 포함된 키 스트림 생성부(141)는 클럭 신호에 동기하여 키 스트림을 발생한다. 연산부(15)는 키 스트림과 암호화된 데이터에 대하여 각각 바이트 단위로 일대일 매핑이 되도록 동기되어 배타적 논리합을 수행하여 데이터를 복호화한다. 이와 같이, 복호화된 데이터는 CPU(11)에 입력된다.
여기서, CPU(11), 캐쉬(12), 메모리 컨트롤러(13), 암호화/해독화부(14), 및 연산부(15)를 포함하는 영역은 신뢰 영역(trusted area)이라고 할 수 있으며, 신뢰 영역을 제외한 모든 모듈, 예를 들어, 외부 메모리(15)는 비신뢰 영역(non-trusted area)이라고 할 수 있다. 비신뢰 영역에서 버스를 통해 전송되는 데이터는 태핑(tapping) 등을 통하여 외부에 노출될 위험이 있다. 여기서, 태핑은 버스를 통해 전송되는 데이터를 다른 선을 통해 외부로 노출시키는 것을 말한다. SoC(system on chip)나 단일 칩 내부는 신뢰 영역으로 데이터가 보호될 수 있으나, 하나의 보드 상에 서로 다른 모듈을 붙여서 사용하는 경우에는 신뢰 영역으로 데이터가 보호받기 어렵다. 왜냐하면, 보드 상에서 버스를 통해 전송되는 데이터는 태핑을 통해 정보가 노출될 가능성이 있기 때문이다.
본 발명이 이루고자 하는 기술적 과제는 버스로 연결된 서로 다른 모듈들 사이에 안전하게 데이터를 전송할 수 있는 데이터 암호화 방법을 제공하는데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 버스로 연결된 서로 다른 모듈들 사이에 안전하게 데이터를 전송할 수 있는 데이터 복호화 방법을 제공하는데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는 버스로 연결된 서로 다른 모듈들 사이에 안전하게 데이터를 전송할 수 있고, 암호화된 또는 복호화된 데이터를 전송할 때의 성능의 저하를 줄일 수 있는 버스 시스템을 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 데이터 암호화 방법은 버스로 전송할 데이터를 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 상기 데이터를 암호화하는 단계, 상기 암호화된 데이터를 상기 버스를 통해 소정의 모듈로 전송하는 단계, 및 상기 암호화된 데이터가 상기 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 상기 소정의 모듈로 전송하는 단계를 포함한다.
또한, 상기 기술적 과제는 버스로 전송할 데이터를 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 상기 데이터를 암호화하는 단계, 상기 암호화된 데이터를 상기 버스를 통해 소정의 모듈로 전송하는 단계, 및 상기 암호화된 데이터가 상기 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 상기 소정의 모듈로 전송하는 단계를 포함하는 데이터 암호화 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 의해 달성된다.
또한, 상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 데이터 복호화 방법은 소정의 모듈로부터 버스를 통해 암호화된 데이터를 수신하는 단계, 상기 암호화된 데이터가 상기 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 수신하는 단계, 및 상기 암호화된 데이터를 상기 동기 신호가 온인 구간에서 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 복호화하는 단계를 포함한다.
또한, 상기 다른 기술적 과제는 소정의 모듈로부터 버스를 통해 암호화된 데이터를 수신하는 단계, 상기 암호화된 데이터가 상기 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 수신하는 단계, 및 상기 암호화된 데이터를 상기 동기 신호가 온인 구간에서 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 복호화하는 단계를 포함하는 데이터 복호화 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 의해 달성된다.
또한, 상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 버스 시스템은 버스에 연결된 적어도 두 개 이상의 모듈을 포함하고, 각 모듈은 모듈 코어 및 상기 모듈 코어와 상기 버스를 인터페이싱하는 래퍼(wrapper)를 포함하며, 상기 래퍼는 상기 모듈 코어에서 생성된 제1 데이터를 암호화하여 상기 버스로 전송하고, 상기 암호화된 제1 데이터가 상기 버스로 전송되는 구간에서 온(on)되는 제1 동기 신호를 출력하며, 상기 버스로부터 전송된 제2 데이터를 상기 제2 데이터가 상기 버스로 전송되는 구간에서 온되는 제2 동기 신호에 따라 복호화하여 상기 모듈 코어에 제공한다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 1:1 구조의 버스 시스템을 나타내는 블록도이다.
도 2를 참조하면, 1:1 구조의 버스 시스템은 제1 모듈 코어(21), 제1 래퍼(wrapper, 22), 제2 모듈 코어(23), 제2 래퍼(24), 및 버스(25)를 포함한다. 제1 모듈 코어(21) 및 제2 모듈 코어(23)는 CPU(central processing unit), PCI(peripheral component interconnect), UART(universal asynchronous receiver/transmitter) 등이 될 수 있다.
제1 래퍼(22)는 제1 모듈 코어(21)의 출력 신호를 버스(25)의 전송 스펙에 적합하도록 변환하고, 버스에서 전송되는 제어 신호 및 데이터 신호를 모니터링(monitoring)함으로써 제1 모듈 코어(21)와 버스(25)를 인터페이싱하며, 제1 스트림 암호화 송신부(Tx SC, stream cipher transmitter, 221) 및 제1 스트림 암호화 수신부(Rx SC, stream cipher receiver, 222)를 포함한다.
제2 래퍼(24)는 제2 모듈 코어(23)의 출력 신호를 버스(25)의 전송 스펙에 적합하도록 변환하고, 버스에서 전송되는 제어 신호 및 데이터 신호를 모니터링함으로서 제2 모듈 코어(23)와 버스(25)를 인터페이싱하며, 제2 스트림 암호화 송신부(241) 및 제2 스트림 암호화 송신부(242)를 포함한다.
제1 및 제2 스트림 암호화 송신부(221, 242)는 버스로 전송할 데이터를 암호화한다. 구체적으로, 제1 및 제2 스트림 암호화 송신부(221, 242)는 소정의 키(key)와 부가 정보(예를 들어, 초기화 벡터(initialization vector))를 포함하는 시드(seed)로부터 키 스트림을 생성하고, 생성된 키 스트림과 버스로 전송할 데이터를 연산하여 암호화한다. 예를 들어, 제1 및 제2 스트림 암호화 송신부(221, 242)는 생성된 키 스트림과 버스로 전송할 데이터에 대하여 배타적 논리합(XOR)을 수행하여 데이터를 암호화할 수 있다.
제1 및 제2 스트림 암호화 수신부(222, 241)는 버스에서 전송되는 데이터를 복호화한다. 구체적으로, 제1 및 제2 스트림 암호화 수신부(222, 241)는 소정의 키와 부가 정보를 포함하는 시드로부터 키 스트림을 생성하고, 생성된 키 스트림과 버스에서 전송되는 데이터를 연산하여 복호화한다. 예를 들어, 제1 및 제2 스트림 암호화 수신부(222, 241)는 생성된 키 스트림과 버스에서 전송되는 데이터에 대하 여 배타적 논리합(XOR)을 수행하여 데이터를 복호화할 수 있다.
이 경우, 제1 및 제2 스트림 암호화 송신부(221, 242) 및 제1 및 제2 스트림 암호화 수신부(222, 241)는 동일한 시드를 공유할 수 있다. 구체적으로, 초기에 전원을 공급할 때, 동일한 시드를 제1 및 제2 스트림 암호화 송신부 및 수신부(221, 222, 241, 242)에 제공할 수 있다. 이로써 제1 및 제2 스트림 암호화 송신부 및 수신부(221, 222, 241, 242)는 동일한 키 스트림을 생성할 수 있다. 다만, 제1 스트림 암호화 송신부(221) 및 제2 스트림 암호화 수신부(241)의 쌍과, 제2 스트림 암호화 송신부(242) 및 제1 스트림 암호화 수신부(222)의 쌍 각각의 동기 신호에 의해 사용되는 키 스트림의 순서가 변경될 수 있다. 동기 신호에 대해서는 이하에서 도 3을 참조하여 설명하기로 한다.
예를 들어, 제1 및 제2 스트림 암호화 송신부(221, 242) 및 제1 및 제2 스트림 암호화 수신부(222, 241)는 RC4(Route Coloniale 4)일 수 있다. RC4는 바이트 연산을 통해 키의 길이를 가변적으로 만들 수 있는 스트림 방식의 암호화 알고리즘으로 블록 암호화 알고리즘에 비해 매우 빠른 암호화 속도를 지원한다. 그러나, 이는 본 발명의 일 실시예에 불과하며, 다른 실시예에서 제1 및 제2 스트림 암호화 송신부(221, 242) 및 제1 및 제2 스트림 암호화 수신부(222, 241)는 다른 알고리즘으로 구현할 수 있음은 당업자에게 자명하다.
도 3은 도 2의 버스 시스템에서의 데이터의 전송 동작을 상세하게 나타내는 블록도이다.
도 3을 참조하면, 1:1 구조의 버스 시스템은 제1 모듈 래퍼(31), 제2 모듈 래퍼(32) 및 버스(33)을 포함한다. 제1 모듈 래퍼(31)는 스트림 암호화 송신부(Tx SC, 311)를 포함하고, 제2 모듈 래퍼(32)는 스트림 암호화 수신부(Rx SC, 321)를 포함한다.
제1 모듈 래퍼(31)는 데이터가 입력되면 스트림 암호화 송신부(311)에서 암호화하여 암호화된 데이터(E_DATA)를 버스를 통하여 제2 모듈 래퍼(32)로 전송한다. 제2 모듈 래퍼(32)는 버스에서 암호화된 데이터(E_DATA)가 전송되면 스트림 암호화 수신부(321)에서 복호화하여 제2 모듈 래퍼(32)와 연결된 모듈(미도시)에 제공한다.
이 때, 제1 모듈 래퍼(31)는 암호화된 데이터(E_DATA)를 버스로 전송할 경우, 버스의 클럭 신호에 동기되는 동기 신호(Sync Signal)를 생성한다. 동기 신호는 암호화된 데이터(E_DATA)에 따라 온/오프되는 신호이다. 예를 들어, 동기 신호는 암호화된 데이터(E_DATA)가 버스에 제공되는 경우에만 논리 '하이(high)'로 온되고, 암호화된 데이터(E_DATA)가 버스에 제공되지 않는 경우에는 논리 '로우(low)'로 오프될 수 있다.
제1 모듈 래퍼(31)에서 생성되는 동기 신호는 제2 모듈 래퍼(32)에 포함된 스트림 암호화 수신부(321)에 제공된다. 본 발명의 일 실시예에서, 동기 신호는 전용선을 통해 제2 모듈 래퍼(32)로 제공될 수 있다. 버스(33)로 전송되는 신호는 일정한 버스 스펙을 따라야 하는바, 버스가 아닌 별도의 전용선(dedicated wire)을 통해 동기 신호를 전송함으로써 버스 스펙을 변경할 필요가 없으므로 호환성을 높일 수 있다. 본 발명의 다른 실시예에서, 동기 신호는 버스 컨트롤러에 의해 제어 되어 버스로 전송될 수 있다. 본 발명의 또 다른 실시예에서, 별도의 동기 신호를 생성하지 않고, 버스(33)의 제어 신호를 조합하여 제1 모듈 래퍼(31)와 제2 모듈 래퍼(32)의 동기를 맞출 수도 있으나, 이 경우 구현이 복잡해질 수 있다.
제2 모듈 래퍼(32)에 포함된 스트림 암호화 수신부(321)는 버스로부터 암호화된 데이터(E_DATA)를 수신하고, 동시에 제1 모듈 래퍼(31)에서 생성된 동기 신호를 수신한다. 스트림 암호화 수신부(321)는 동기 신호에 따라 키 스트림을 생성하고, 암호화된 데이터(E_DATA)를 키 스트림과 연산하여 복호화한다.
도 4는 도 2의 버스 시스템에 포함된 래퍼를 개략적으로 나타내는 블록도이다.
도 4를 참조하면, 래퍼(40)는 스트림 암호화 송신부(Tx SC, 41) 및 스트림 암호화 수신부(Rx SC, 42)를 포함한다. 스트림 암호화 송신부(41)는 제1 데이터를 암호화하여 버스에 제1 암호화된 데이터(E_DATA1)를 제공하고, 스트림 암호화 수신부(42)는 버스로부터 전송된 제2 암호화된 데이터(E_DATA2)를 복호화한다.
래퍼(40)는 제1 암호화된 데이터(E_DATA1)에 따라 온/오프되는 제1 동기 신호를 버스가 아닌 별도의 전용선을 통하여 다른 모듈에 전송하고, 제2 암호화된 데이터(E_DATA2)에 따라 온/오프되는 제2 동기 신호를 버스가 아닌 별도의 전용선을 통하여 다른 모듈로부터 전송받을 수 있다. 다시 말해, 래퍼(40)는 버스 외에 두 개의 별도의 전용선을 가질 수 있다. 서로 다른 모듈들이 1:1의 구조로 연결된 경우에는 래퍼(40)는 두 개의 전용선을 가질 수 있으며, 서로 다른 모듈들이 1:N의 구조로 연결된 경우에는 래퍼(40)는 2N개의 전용선을 가질 수 있다. 여기서 N은 1 보다 큰 자연수이다.
도 5는 본 발명의 일 실시예에 따른 N:N 구조의 버스 시스템을 나타내는 블록도이다.
도 5를 참조하면, N:N 구조의 버스 시스템은 CPU(51), PCI(peripheral component interconnect, 53), UART(universal asynchronous receive/transmitter, 55), 및 버스(59)를 포함하고, 다른 모듈들(other modules, 57)을 더 포함할 수 있다. 여기서 CPU(51), PCI(53) 및 UART(55)는 버스(59)와 연결된 모듈을 설명하기 위한 예에 불과하고, 다른 모듈이나 미래에 개발될 새로운 모듈 등 어느 것이나 가능하다.
CPU(51)는 명령어의 해석과 자료의 연산, 비교 등의 처리를 제어하는 컴퓨터 시스템의 핵심적인 장치로서, 버스(59)와 인터페이싱하기 위한 CPU 래퍼(52)를 더 포함하고, CPU 래퍼(52)는 제1 스트림 암호화 송신부(521) 및 제1 스트림 암호화 수신부(522)를 포함할 수 있다.
PCI(53)는 고속 운영을 위해 마이크로프로세서와 가깝게 위치해있는 확장 슬롯들에 부착된 장치들 간의 상호 접속 시스템으로, 버스(59)와 인터페이싱하기 위한 PCI 래퍼(54)를 더 포함하고, PCI 래퍼(54)는 제2 스트림 암호화 송신부(541) 및 제2 스트림 암호화 수신부(542)를 포함할 수 있다.
UART(55)는 컴퓨터의 비동기 직렬 통신을 처리하는 프로그램으로 보통 마이크로칩으로 실현되며, 버스(59)와 인터페이싱하기 위한 UART 래퍼(56)를 더 포함하고, UART 래퍼(56)는 제3 스트림 암호화 송신부(561) 및 제3 스트림 암호화 수신 부(562)를 포함할 수 있다.
다른 모듈들(57)은 미래에 개발될 수 있는 모듈일 수 있으며, 버스(59)와 인터페이싱하기 위한 래퍼(58)를 더 포함하고, 래퍼(58)은 제4 스트림 암호화 송신부(581) 및 제4 스트림 암호화 수신부(582)를 포함할 수 있다.
도 5의 버스 시스템은 4개의 모듈을 포함하므로 N은 4이고, 4:4의 구조를 갖는다. 이 때, 각각의 스트림 암호화 송신부 및 수신부가 독립적으로 동작한다면, 버스 시스템의 모듈 상호간은 4*3(즉, N*(N-1))개의 쌍을 가지게 되고, 스트림 암호화 송신부/수신부는 2*4*3(즉, 2*N*(N-1))개가 필요하므로 버스 시스템의 구조는 매우 복잡해질 수 있다.
그러나, 본 발명의 일 실시예에서 스트림 암호화 송신부/수신부는 동일한 시드(seed)를 공유하여 2*4(즉, 2*N)개만으로 암호화 및 복호화를 수행할 수 있다. 상술한 바와 같이, 여기서 시드는 소정의 키(key)와 부가 정보(예를 들어, 초기 벡터(initialization vector, IV))를 포함하는 것으로, 스트림 암호화 송신부/수신부는 시드를 기초로 키 스트림을 생성한다. 즉, 제1 내지 제4 스트림 암호화 송신부(521, 541, 561, 581) 및 제1 내지 제4 스트림 암호화 수신부(522, 542, 562, 582)는 동일한 시드를 공유하여 8개의 유닛만으로 N:N의 구조의 버스 시스템을 간단하게 구현할 수 있다.
이 때, 하나의 모듈은 동기 신호를 전체 모듈들에게 브로드캐스트(broadcast)할 수 있다. 예를 들어, CPU 래퍼(52)는 동기 신호를 PCI 래퍼(54), UART 래퍼(56) 및 래퍼(58)에 전송되도록 브로드캐스킹할 수 있다. 그러나 이는 본 발명의 일 실시예에 불과하고, 다른 실시예에서 복수의 모듈을 적어도 두 개 이상의 그룹으로 나누고, 적어도 두 개 이상의 그룹 중 적어도 하나의 그룹에만 동기 신호를 전송할 수 있다. 예를 들어, PCI(53)와 UART(55)를 제1 그룹으로 하고, 다른 모듈들(57)을 제2 그룹으로 하여, CPU 래퍼(52)는 제1 그룹에 포함된 PCI 래퍼(54)와 UART 래퍼(56)에만 동기 신호를 전송할 수 있다.
본 발명의 일 실시예에서 동기 신호는 1 비트일 수 있다. 스트림 암호화 송신부 및 수신부는 2*4개(즉, 2*N개)가 존재하지만, 동기 신호는 4*3개(즉, N*(N-1)개)가 필요하므로, 전체적으로 4*3비트(즉, N*(N-1)비트)의 부가 비트(overhead bit)가 발생한다.
도 6은 본 발명의 일 실시예에 따른 버스 시스템의 데이터 암호화 및 복호화 동작을 구체적으로 나타내는 블록도이다.
도 6을 참조하면, 버스 시스템은 모듈 코어(61) 및 래퍼(62)를 포함하고, 래퍼(62)는 스트림 암호화 송신부(Tx SC, 621) 및 스트림 암호화 수신부(Rx SC, 622)를 포함한다. 또한, 래퍼(62)는 제1 및 제2 연산부(623, 634)를 더 포함할 수 있다.
모듈 코어(61)는 CPU 또는 PCI 등의 어느 모듈일 수 있다. 모듈 코어(61)는 데이터의 읽기/쓰기 요청 등을 할 수 있고, 이러한 요청된 데이터는 암호화되지 않은 평문 데이터(plaintext data, PD)이다. 모듈 코어(61)에서 생성된 데이터는 버스를 통해 목표 모듈로 전송되어야 하는데, 버스에서 외부로 노출될 위험이 있으므로, 버스에서는 평문 데이터를 암호화하여 암호문 데이터(ciphertext data, CD)로 전송하여야 한다.
이하에서는, 데이터의 암호화(encryption) 및 복호화(decryption) 과정을 나누어서 래퍼(62)의 동작을 설명하기로 한다.
먼저, 암호화 과정에서 래퍼(62)는 모듈 코어(61)로부터 입력된 평문 데이터(PD1)를 탐지하고, 래퍼(62)에 포함된 스트림 암호화 송신부(621)는 버스의 클럭 신호에 동기되도록 키 스트림을 생성한다. 상술한 바와 같이, 스트림 암호화 송신부(621)는 소정의 키와 부가 정보를 포함하는 시드로부터 키 스트림을 생성한다. 이 때, 생성된 키 스트림은 랜덤 넘버(random number)가 될 수 있고, 다양한 변형이 가능함은 당업자에게 자명하다.
래퍼(62)에 포함된 제1 연산부(623)는 생성된 키 스트림과 평문 데이터(PD1)을 연산하여 암호화된 데이터, 즉, 암호문 데이터(CD1)를 생성한다. 이 때, 본 발명의 일 실시예에서 제1 연산부(623)는 생성된 키 스트림과 평문 데이터(PD1)에 대해 배타적 논리합(XOR)을 수행하여 암호문 데이터(CD1)를 생성할 수 있다.
래퍼(62)는 암호문 데이터(CD1)를 버스로 전송하는 동시에, 버스에 암호문 데이터(CD1)가 전송되는 구간에 논리 '하이(high)'를 갖는 동기 신호를 생성한다. 즉, 동기 신호는 암호문 데이터(CD1)에 따라 온/오프되며, 버스의 클럭 신호와 동기되어야 한다. 여기서, 한 데이터 프레임이 버스 상에서 딜레이 등의 이유로 중간에 끊어지는 경우에는 동기 신호도 논리 '로우(low)'로 오프되고, 데이터가 다시 전송되면 동기 신호도 논리 '하이'로 온 될 수 있다. 이로써, 목표 모듈의 스트림 암호화 수신부가 수신한 암호문 데이터와 정확히 동기되는 키 스트림을 생성할 수 있게 된다. 다른 실시예에서, 래퍼(62)는 동기 신호를 다른 모듈들에게도 전송할 수 있으며, 이 경우 브로드캐스팅할 수도 있고, 모듈들을 복수의 그룹으로 나누고 일부의 그룹에만 전송할 수도 있다.
다음으로, 복호화 과정에서 래퍼(62)는 버스로부터 전송되는 암호화된 데이터, 즉, 암호문 데이터(CD2)를 탐지한다. 또한, 래퍼(62)에 포함된 스트림 암호화 수신부(622)는 동기 신호를 수신하고, 동기 신호에 따라 키 스트림을 생성한다. 이 경우 키 스트림의 생성에 기초가 되는 시드는 스트림 암호화 송신부(621) 및 다른 모듈의 스트림 암호화 송신부/수신부와 동일하다. 동기 신호는 암호문 데이터(CD2)를 생성한 상대편의 모듈에서 제공된 것으로 암호문 데이터(CD2)에 따라 온/오프된다. 다른 실시예에서, 래퍼(62)는 동기 신호를 다른 모듈들로부터 전송받을 수 있다.
래퍼(62)에 포함된 스트림 암호화 수신부(622)는 생성된 키 스트림과 암호문 데이터(CD2)를 연산하여 암호문 데이터(CD2)를 복호화된 데이터, 즉, 평문 데이터(PD2)를 생성한다. 이 때, 본 발명의 일 실시예에서 스트림 암호화 수신부(622)는 생성된 키 스트림과 암호문 데이터(CD2)에 대하여 배타적 논리합(XOR)을 수행하여 평문 데이터(PD2)를 생성할 수 있다.
도 7은 본 발명의 일 실시예에 따른 데이터의 암호화 방법을 나타내는 흐름도이다.
도 7을 참조하면, 본 실시예에 따른 데이터의 암호화 방법은 도 6에 도시된 버스 시스템에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 버스 시스템에 관하여 이상에서 기술된 내용은 본 실시예에 따른 데이터의 암호화 방법에도 적용된다.
71 단계에서 데이터를 전송할 모듈에서 데이터가 생성되면, 모듈에 연결된 래퍼는 버스로 전송할 데이터를 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 데이터를 암호화한다. 본 발명의 일 실시예에서, 버스로 전송할 데이터와 키 스트림에 대해 배타적 논리합(XOR)을 수행함으로써 데이터를 암호화할 수 있다. 이 때, 키 스트림은 소정의 키 및 부가 정보를 포함하는 시드(seed)를 기초로 생성되고, 버스의 클럭 신호에 동기될 수 있다. 여기서, 부가 정보는 초기화 벡터(initialization vector)로 표시될 수 있다.
72 단계에서 래퍼는 암호화된 데이터를 버스를 통해 소정의 모듈로 전송한다. 본 발명의 일 실시예에서, 소정의 모듈은 적어도 두 개 이상일 수 있다.
73 단계에서 암호화된 데이터가 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 소정의 모듈로 전송한다. 이 때, 동기 신호는 버스의 클럭 신호에 동기될 수 있다. 본 발명의 일 실시예에서, 소정의 모듈은 적어도 두 개 이상이고, 동기 신호는 브로드캐스팅될 수 있다. 여기서, 동기 신호는 적어도 두 개 이상의 모듈 각각의 전용선을 통해 전송될 수도 있고, 버스의 컨트롤러의 제어를 통해 버스로 전송될 수도 있다. 본 발명의 다른 실시예에서, 소정의 모듈은 적어도 두 개 이상이고, 적어도 두 개 이상의 모듈은 복수의 그룹으로 나눌 수 있으며, 복수의 그룹 중 적어도 하나의 그룹에 동기 신호를 전송할 수 있다.
도 8은 본 발명의 일 실시예에 따른 데이터의 복호화 방법을 나타내는 흐름 도이다.
도 8을 참조하면, 본 실시예에 따른 데이터의 복호화 방법은 도 6에 도시된 버스 시스템에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 6에 도시된 버스 시스템에 관하여 이상에서 기술된 내용은 본 실시예에 따른 데이터의 복호화 방법에도 적용된다.
81 단계에서 데이터를 수신하는 모듈에 연결된 래퍼는 소정의 모듈로부터 버스를 통해 암호화된 데이터를 수신한다.
82 단계에서 래퍼는 암호화된 데이터가 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 수신한다. 이 때, 동기 신호는 버스의 클럭 신호에 동기될 수 있다.
83 단계에서 래퍼는 암호화된 데이터를 동기 신호가 온인 구간에서 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 복호화한다. 본 발명의 일 실시예에서, 키 스트림과 암호화된 데이터에 대해 배타적 논리합(XOR)을 수행함으로써 암호화된 데이터를 복호화할 수 있다.
본 발명은 상술한 실시예에 한정되지 않으며, 본 발명의 사상 내에서 당업자에 의한 변형이 가능함은 물론이다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드디 스크, 플로피디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
본 발명에 따르면, 버스로 전송할 데이터를 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 데이터를 암호화하고, 암호화된 데이터를 버스를 통해 소정의 모듈로 전송하며, 암호화된 데이터가 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 소정의 모듈로 제공함으로써 동기 신호를 참조하여 복호화할 수 있고, 그 결과 버스 상에서 전송되는 데이터에 대한 보안성이 향상될 수 있는 효과가 있다.
또한, 본 발명에 따르면, 동기 신호를 브로드캐스팅하고, 초기 세팅 시에 동일한 시드를 공유함으로써 스트림 암호화 송수신부의 수를 줄일 수 있어 시스템의 구현이 간편해질 수 있다. 그리고, 신뢰 영역 밖에 새로운 모듈을 붙이는 경우에도 보안을 유지할 수 있어 확장이 용이하므로 칩 외부에 하나 이상의 별도의 모듈을 장착하는 경우, 보드 상에 여러 모듈이 장착된 경우, 독점 버스를 사용하는 경우, 오픈 버스 시스템의 경우 등에 효율적으로 이용할 수 있다.

Claims (19)

  1. (a) 버스로 전송할 데이터를 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 상기 데이터를 암호화하는 단계;
    (b) 상기 암호화된 데이터를 상기 버스를 통해 소정의 모듈로 전송하는 단계; 및
    (c) 상기 암호화된 데이터가 상기 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 상기 소정의 모듈로 전송하는 단계를 포함하고,
    상기 동기 신호는 적어도 두 개 이상의 소정의 모듈로 브로드캐스팅(broadcasting)되는 것을 특징으로 하는 데이터 암호화 방법.
  2. 제1항에 있어서,
    상기 (a) 단계는
    상기 데이터와 상기 키 스트림에 대해 배타적 논리합(XOR)을 수행함으로써 상기 데이터를 암호화하는 것을 특징으로 하는 데이터 암호화 방법.
  3. 제2항에 있어서,
    상기 (a) 단계는
    상기 키 스트림은 상기 소정의 키 및 부가 정보를 포함하는 시드(seed)를 기초로 생성되고,
    상기 시드는 상기 암호화된 데이터를 수신하는 모듈에서 상기 암호화된 데이 터를 복호화할 때 동일하게 적용되는 것을 특징으로 하는 데이터 암호화 방법.
  4. 제2항에 있어서,
    상기 (a) 단계는
    상기 키 스트림은 상기 버스의 클럭 신호에 동기되도록 생성된 것을 특징으로 하는 데이터 암호화 방법.
  5. 제1항에 있어서,
    상기 (c) 단계는
    상기 동기 신호는 상기 버스의 클럭 신호에 동기되는 것을 특징으로 하는 데이터 암호화 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 (c) 단계는
    상기 동기 신호는 상기 적어도 두 개 이상의 소정의 모듈 각각의 전용선을 통해 전송되는 것을 특징으로 하는 데이터 암호화 방법.
  8. 제1항에 있어서,
    상기 (c) 단계는
    상기 동기 신호는 상기 버스의 컨트롤러의 제어를 통해 상기 버스로 전송되는 것을 특징으로 하는 데이터 암호화 방법.
  9. 제5항에 있어서,
    상기 (c) 단계는
    상기 소정의 모듈은 적어도 두 개 이상이고, 상기 적어도 두 개 이상의 모듈을 복수의 그룹으로 나누고,
    상기 복수의 그룹 중 적어도 하나의 그룹에 상기 동기 신호를 전송하는 것을 특징으로 하는 데이터 암호화 방법.
  10. 제1항 내지 제5항 또는 제7항 내지 제9항 중 어느 한 항의 데이터 암호화 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  11. (a) 소정의 모듈로부터 버스를 통해 암호화된 데이터를 수신하는 단계;
    (b) 상기 암호화된 데이터가 상기 버스를 통해 전송되는 구간에서 온(on)되는 동기 신호를 수신하는 단계; 및
    (c) 상기 암호화된 데이터를 상기 동기 신호가 온인 구간에서 소정의 키(key)로부터 생성된 키 스트림과 연산함으로써 복호화하는 단계를 포함하고,
    상기 동기 신호는 적어도 두 개 이상의 소정의 모듈로 브로드캐스팅되는 것을 특징으로 하는 데이터 복호화 방법.
  12. 제11항에 있어서,
    상기 (b) 단계는
    상기 동기 신호는 상기 버스의 클럭 신호에 동기되는 것을 특징으로 하는 데이터 복호화 방법.
  13. 제11항에 있어서,
    상기 (c) 단계는
    상기 암호화된 데이터와 상기 키 스트림에 대해 배타적 논리합(XOR)을 수행함으로써 상기 암호화된 데이터를 복호화하는 것을 특징으로 하는 데이터 복호화 방법.
  14. 제11항 내지 제13항 중 어느 한 항의 데이터 복호화 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  15. 버스에 연결된 적어도 두 개 이상의 모듈을 포함하는 버스 시스템에 있어서,
    각 모듈은 모듈 코어 및 상기 모듈 코어와 상기 버스를 인터페이싱하는 래퍼(wrapper)를 포함하고,
    상기 래퍼는 상기 모듈 코어에서 생성된 제1 데이터를 암호화하여 상기 버스로 전송하고, 상기 암호화된 제1 데이터가 상기 버스로 전송되는 구간에서 온(on)되는 제1 동기 신호를 출력하며,
    상기 버스로부터 전송된 제2 데이터를 상기 제2 데이터가 상기 버스로 전송되는 구간에서 온되는 제2 동기 신호에 따라 복호화하여 상기 모듈 코어에 제공하고,
    상기 제1 동기 신호는 적어도 두 개 이상의 소정의 모듈로 브로드캐스팅(broadcasting)되는 것을 특징으로 하는 버스 시스템.
  16. 제15항에 있어서,
    상기 래퍼는
    상기 모듈 코어에서 상기 제1 데이터가 생성되면, 소정의 키(key)로부터 키 스트림을 생성하는 스트림 암호화 송신부; 및
    상기 버스에서 상기 제2 데이터가 전송되면, 상기 제2 동기 신호에 따라 상기 키 스트림을 생성하는 스트림 암호화 수신부를 포함하는 것을 특징으로 하는 버스 시스템.
  17. 제16항에 있어서,
    상기 키 스트림은 상기 소정의 키와 부가 정보를 포함하는 시드(seed)를 기초로 생성되고,
    상기 시드는 상기 각 모듈에 동일하게 적용되는 것을 특징으로 하는 버스 시스템.
  18. 제16항에 있어서,
    상기 래퍼는
    상기 키 스트림과 상기 제1 데이터에 대하여 배타적 논리합(XOR)을 수행하여 상기 암호화된 제1 데이터를 생성하는 제1 연산부; 및
    상기 키 스트림과 상기 제2 데이터에 대하여 배타적 논리합을 수행하여 복호화된 제2 데이터를 생성하는 제2 연산부를 더 포함하는 것을 특징으로 하는 버스 시스템.
  19. 제15항에 있어서,
    상기 제1 및 제2 동기 신호는 상기 각 모듈의 전용선을 통해 전송되는 것을 특징으로 하는 버스 시스템.
KR1020070044699A 2007-05-08 2007-05-08 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템 KR101370829B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020070044699A KR101370829B1 (ko) 2007-05-08 2007-05-08 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
US12/025,829 US20080279371A1 (en) 2007-05-08 2008-02-05 Methods of encrypting and decrypting data and bus system using the methods
CN200810081777.XA CN101304314B (zh) 2007-05-08 2008-03-13 对数据进行加密和解密的方法和使用该方法的总线系统
JP2008101626A JP2008282004A (ja) 2007-05-08 2008-04-09 データの暗号化/復号化方法及びそれを適用したバスシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070044699A KR101370829B1 (ko) 2007-05-08 2007-05-08 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템

Publications (2)

Publication Number Publication Date
KR20080099070A KR20080099070A (ko) 2008-11-12
KR101370829B1 true KR101370829B1 (ko) 2014-03-10

Family

ID=39969548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070044699A KR101370829B1 (ko) 2007-05-08 2007-05-08 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템

Country Status (4)

Country Link
US (1) US20080279371A1 (ko)
JP (1) JP2008282004A (ko)
KR (1) KR101370829B1 (ko)
CN (1) CN101304314B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719593B2 (en) * 2009-05-20 2014-05-06 Harris Corporation Secure processing device with keystream cache and related methods
CN201699877U (zh) * 2010-02-05 2011-01-05 鸿富锦精密工业(深圳)有限公司 视频加密信号侦测电路及使用其的视频设备
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US8813085B2 (en) 2011-07-19 2014-08-19 Elwha Llc Scheduling threads based on priority utilizing entitlement vectors, weight and usage level
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US8930714B2 (en) * 2011-07-19 2015-01-06 Elwha Llc Encrypted memory
CN103166753B (zh) * 2013-03-26 2015-12-09 桂林电子科技大学 4个非线性驱动的轻量级流密码加密方法
KR102218715B1 (ko) * 2014-06-19 2021-02-23 삼성전자주식회사 채널별로 데이터를 보호할 수 있는 반도체 장치
CN105743652B (zh) * 2014-12-11 2019-01-22 上海华虹集成电路有限责任公司 基于地址异或的数据总线加密方法
GB202010806D0 (en) * 2020-07-14 2020-08-26 Graphcore Ltd Extended sync network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001237825A (ja) * 1999-11-30 2001-08-31 St Microelectronics Sa 電子的安全部品
JP2004023156A (ja) 2002-06-12 2004-01-22 Denso Corp 暗号化通信方式、および通信装置
US20040052375A1 (en) 2002-09-12 2004-03-18 International Business Machines Corporation Dynamic systm bus encryption using improved differential transitional encoding
KR20040052304A (ko) * 2002-12-16 2004-06-23 한국전자통신연구원 디지털 하드웨어 시스템 보안 장치 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61108277A (ja) * 1984-11-01 1986-05-26 Toshiba Corp 有料放送方式
US4780905A (en) * 1984-11-26 1988-10-25 Nightwatch, Inc. Computer data encryption system
KR930009699B1 (ko) * 1990-09-19 1993-10-08 삼성전자 주식회사 영상 녹/재생 시스템의 더블 기록 재생회로
JPH09233065A (ja) * 1996-02-23 1997-09-05 Sony Corp 暗号化装置及び暗号化方法
JP4083925B2 (ja) * 1999-06-24 2008-04-30 株式会社日立製作所 情報処理装置、カード部材および情報処理システム
UA72944C2 (uk) * 1999-12-02 2005-05-16 Інфінеон Текнолоджіз Аг Мікропроцесорний пристрій з кодуванням
EP1624609B1 (en) * 2000-01-21 2011-08-24 Sony Computer Entertainment Inc. Encryption data processing apparatus and method
US7131004B1 (en) * 2001-08-31 2006-10-31 Silicon Image, Inc. Method and apparatus for encrypting data transmitted over a serial link
US7046803B2 (en) * 2001-10-06 2006-05-16 Samsung Electronics Co., Ltd. Random keystream generation apparatus and method for use in an encryption system
US7242766B1 (en) * 2001-11-21 2007-07-10 Silicon Image, Inc. Method and system for encrypting and decrypting data using an external agent
JP2004070499A (ja) * 2002-08-02 2004-03-04 Fujitsu Ltd メモリデバイスおよび暗号化/復号方法
CN100349219C (zh) * 2002-10-18 2007-11-14 松下电器产业株式会社 用于信息记录介质的信息记录装置以及信息再现装置
US7702904B2 (en) * 2002-11-15 2010-04-20 Nec Corporation Key management system and multicast delivery system using the same
US20050141716A1 (en) * 2003-09-29 2005-06-30 Prem Kumar Coherent-states based quantum data-encryption through optically-amplified WDM communication networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001237825A (ja) * 1999-11-30 2001-08-31 St Microelectronics Sa 電子的安全部品
JP2004023156A (ja) 2002-06-12 2004-01-22 Denso Corp 暗号化通信方式、および通信装置
US20040052375A1 (en) 2002-09-12 2004-03-18 International Business Machines Corporation Dynamic systm bus encryption using improved differential transitional encoding
KR20040052304A (ko) * 2002-12-16 2004-06-23 한국전자통신연구원 디지털 하드웨어 시스템 보안 장치 및 방법

Also Published As

Publication number Publication date
JP2008282004A (ja) 2008-11-20
KR20080099070A (ko) 2008-11-12
CN101304314A (zh) 2008-11-12
US20080279371A1 (en) 2008-11-13
CN101304314B (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
KR101370829B1 (ko) 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
US5345508A (en) Method and apparatus for variable-overhead cached encryption
EP2186250B1 (en) Method and apparatus for hardware-accelerated encryption/decryption
US9152805B2 (en) Security device
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
US7242766B1 (en) Method and system for encrypting and decrypting data using an external agent
US5444781A (en) Method and apparatus for decryption using cache storage
CN101969376B (zh) 一种具有语义安全的自适应加密系统及方法
EP3014800A1 (en) Method and apparatus to encrypt plaintext data
CN112134703B (zh) 使用改良式键熵汇流排保护的电子装置
KR20190010251A (ko) 클라우드 스토리지 전송단계에서의 보안성 강화를 위한 lpes 방법 및 장치
US11695542B2 (en) Technology for generating a keystream while combatting side-channel attacks
US20070189543A1 (en) Data-processing apparatus and method for processing data
US20090150664A1 (en) Computer management system
CN106537837B (zh) Dp hdcp版本转换器
CN111832051B (zh) 一种基于fpga的对称加解密方法及系统
US7773753B2 (en) Efficient remotely-keyed symmetric cryptography for digital rights management
KR100480998B1 (ko) 디지털 하드웨어 시스템 보안 장치 및 방법
KR101522691B1 (ko) 암호 데이터를 제공하기 위한 방법, 모듈 및 시스템
KR20060110383A (ko) 네트워크 보안 프로세서의 다중모드 암호화 장치
KR101375670B1 (ko) 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
KR20210108787A (ko) 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기
JP2719660B2 (ja) マルチメディア通信用暗号装置
KR20050060301A (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리방법, 이에 적합한 f함수 처리기, 그리고 보안 시스템
JPS59186442A (ja) 暗号装置の時分割暗号化方式

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
FPAY Annual fee payment

Payment date: 20170125

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee