KR20080029687A - 암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 - Google Patents
암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 Download PDFInfo
- Publication number
- KR20080029687A KR20080029687A KR1020060096590A KR20060096590A KR20080029687A KR 20080029687 A KR20080029687 A KR 20080029687A KR 1020060096590 A KR1020060096590 A KR 1020060096590A KR 20060096590 A KR20060096590 A KR 20060096590A KR 20080029687 A KR20080029687 A KR 20080029687A
- Authority
- KR
- South Korea
- Prior art keywords
- encryption
- memory
- data
- general
- encrypted
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 암호화 기능이 내장된 메모리를 이용한 암호화 처리 장치 및 그 구현 방법에 관한 것으로, 상세하게는 어플리케이션의 암복호화 요청에 대해 상기 메모리에 내장된 암호화 처리 기능을 이용하여 고속 대용량의 암호화 기능을 제공하는 장치 및 그 방법에 관한 것이다. 기존의 어플리케이션 암호화 제품은 소프트웨어 또는 PCI 버스를 이용한 하드웨어 기반의 암호화 방법을 통하여 데이터를 암호화하였다. 그러나 이러한 방식은 속도에 민감한 어플리케이션의 요구를 만족할 수 없었으며 이러한 문제점을 해결하기 위해 메모리(RAM)에 내장되는 암호화 처리 장치를 고안하고 이를 이용한 고속의 데이터 암호화 처리 장치 및 그 방법을 제공하고자 한다.
고속 암호화 시스템, 암호화 처리 메모리, 메모리 보안, 데이터 암호화
Description
도 1은 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리를 이용한 데이터 암호화 장치의 구성도이며,
도 2는 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리 제품의 형상도이며,
도 3은 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리의 내부 구성도이며,
도 4는 본 발명의 바람직한 일실시예에 따른 사용자 응용 프로그램의 암복호화 요청을 처리하는 암호화 장치에 대한 구성도이며,
도 5는 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리를 이용한 암복호화 방법에 대한 플로우 차트이며,
도 6은 본 발명의 바람직한 일실시예에 따른 사용자 응용 프로그램의 암복호화 요청 처리 방법에 대한 플로우 차트이며,
도 7은 본 발명의 바람직한 일실시예에 따른 사용자와 시스템, 암호화 처리 메모리 간의 암호화 관련 메시지 흐름을 나타내는 도면이며,
도 8은 본 발명의 바람직한 일실시예에 따른 사용자와 시스템, 암호화 처리 메모리 간의 특정 데이터 암복호화 과정을 나타내는 도면이며,
도 9는 본 발명의 바람직한 일실시예에 따른 일반 메모리와 암호화 처리 메모리 간의 데이터 이동 과정을 나타내는 도면이다.
본 발명은 암호화 기능이 내장된 메모리를 이용한 암호화 장치 및 그 구현 방법에 관한 것으로, 자세히는 사용자 응용프로그램의 암복호화 요청에 대해 상기 메모리에 내장된 암호화 처리 기능을 이용하여 고속 대용량의 암호화 기능을 제공하는 장치 및 그 방법에 관한 것이다.
네트워크 보안과 데이터 보안이 각광 받으면서 현재 고속의 대용량 암호화 기술에 대한 요구가 증가하고 있다. 특히 데이터베이스 보안 분야에서는 대용량 데이터베이스의 기존 성능을 저하시키지 않으면서 컬럼 단위의 암호화를 제공하기 위해서 고속 암호화 방법에 대한 여러 가지 방법이 강구되고 있다. 현재 나온 방법으로는 데이터 베이스 시스템의 외부에 암호화 전용 하드웨어 장비를 두고 다른 두 시스템을 네트워크로 연결해서 데이터를 암호화하는 방법 및 데이터 베이스 시스템 내부에서 소프트웨어적으로 암호화 기능을 제공하는 방법 등이 있다. 두 방법 모두 시장에서 요구하는 성능을 만족시키지 못하고 있기 때문에 데이터베이스 보안 시장에서 상기 성능 개선 문제는 시급히 해결해야 할 문제로 인식되고 있다.
즉, 종래의 데이터 암호화 방법은 크게 소프트웨어를 이용하거나 PCI 버스가 연결된 하드웨어를 이용하는 방법이 있음에도 속도에 민감한 어플리케이션의 요구를 만족시킬 수 없는 문제점이 존재하고 있는 것이다. 각각 자세히 살펴 보면, 먼저 소프트웨어를 이용하는 방법은 해당 시스템의 CPU 자원을 소비하는 문제점이 있고, PCI 버스를 이용하므로 PCI 버스의 병목 현상 때문에 고속의 대용량 암호화 요구를 받아들이기 어려운 문제점이 존재한다. 하드웨어를 이용하는 방법 역시 다른 하드웨어 장치 간의 통신에 따른 PCI 등을 이용할 때의 시간적 딜레이 뿐만 아니라, CPU 등의 특정 프로세서에 오버로드를 걸리게 하는 문제점이 존재한다. 이에 본 발명은 상기 문제점을 개선하기 위해서 메모리에 내장되는 암호화 기능을 고안해서 고속의 대용량 데이터 암호화 기능을 제공하고자 한다. 다만 이와 관련하여 기존 발명 중에 메모리 영역을 암호화 영역과 비암호화 영역으로 나누는 특허는 몇 건이 출원된 바 있다.
미국 썬(Sun) 마이크로 시스템이 2002년 1월 16일에 미국 특허청에 출원하여 2003년 7월 17일에 공개된 미국 특허청 출원번호 제2003-0133574호 발명(Secure CPU and Memory management unit with cryptographic extensions)에서 메모리 공간 내에서 암호화 부분과 비암호화 부분이 나누어지는 구성을 보이기는 하나 상기 인용발명은 암호화 기능을 CPU와 메모리 관리 유니트, 암호화 기능 유니트가 분담하기 때문에 여전히 CPU의 자원을 사용하고, PCI 버스를 이용함으로써 속도 저하의 가능성이 남아있다. 또한 상기 인용발명은 메모리 공간에서 보안 영역을 제공한다는 점만을 강조하였고 암호화를 가속화한다는 시도는 없었던 한계가 존재한다.
이와 비슷한 발명으로 미국의 Millind Mittal 씨가 2005년 9월 20일에 미국 특허청에 출원하여 2006년 1월 19일에 공개된 미국 특허청 공개번호 제 2006-0015749 호 발명(Method and Apparatus for secure execution using a secure memory partition)을 들 수 있는데 이 역시 CPU가 상기 암호화 과정에 관련하여 상기 CPU에 오버로드가 계속되며 PCI 버스 사용에 따른 속도 저하 문제도 여전히 존재한다.
본 발명은 상기 문제점을 해결하기 위한 기술적 과제로 메모리 공간 내에서 데이터의 이동 속도(메모리에서 메모리로 데이터가 복사되는 속도)로 암호화가 이루어지는 기능부를 내장한 메모리(RAM)에 의한 암호화 장치 및 그 구현 방법을 제공하고자 한다. 이와 함께 사용자 응용 프로그램(User Application)의 암복호화 요청에 대하여 상기 암호화 처리 메모리를 이용한 데이터 암복호화 처리 과정에 대한 방법도 함께 제공하고자 한다.
상기 기술적 과제를 달성하기 위한 본 발명의 바람직한 일실시예로 암호화 기능이 내장된 메모리를 이용한 암호화 장치는 사용자 응용 프로그램의 요청에 따라 암호화가 요구되는 데이터를 기저장하고 있는 일반 메모리 및 상기 일반 메모리와 동일한 I/O 규격의 메모리 슬롯에 장착되어 일반적인 메모리 간의 복사 속도로 상기 데이터를 메모리 복사하여 내장된 암호화 기능부에 의해 독립적으로 상기 데이터의 암호화 연산 및/또는 암호화 키 관리 연산을 수행한 후 상기 연산 수행된 데이터를 상기 일반 메모리로 메모리 복사하는 암호화 처리 메모리를 포함하여 구성된다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 바람직한 일실시예로 사용자 응용 프로그램의 암호화 또는 복호화 요청의 처리 장치는 사용자 응용 프로그램으로부터 데이터 암호화 또는 복호화 요청을 수신하여 일반 메모리에 저장된 상기 암호화 또는 복호화 요청된 데이터를 확인하는 암호화 요청 수신부, 상기 확인된 데이터의 처리를 위해 암호화 기능이 내장된 암호화 처리 메모리의 현 가용 주소 공간 및/또는 기스케줄링된 암호화 처리 순서를 파악하여 상기 암호화 처리 메모리의 이용 가능 여부를 확인하는 암호화 처리 메모리 확인부, 상기 암호화 처리 메모리가 이용 가능한 경우 상기 일반 메모리에 기저장된 암호화 또는 복호화 요청된 데이터를 상기 암호화 처리 메모리로 복사하는 암호화 요청 데이터 복사부, 상기 암호화 처리 메모리에 내장된 암호화 기능을 이용하여, 상기 복사된 데이터를 암호화 키 관리 정책에 의해 할당된 암복호화 키를 기초로 암호화 또는 복호화하는 암호화 수행부 및 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 복사하여 상기 사용자 응용 프로그램으로 제공하는 암호화 처리 데이터 제공부를 포함하여 구성된다.
상기 기술적 과제를 달성하기 위한 본 발명의 바람직한 일실시예로 암호화 기능이 내장된 메모리에 의한 암호화 방법은 사용자 응용 프로그램의 요청에 따라 암호화 또는 복호화가 요구되는 데이터를 기저장된 일반 메모리로부터 암호화 기능을 내장하며 상기 일반 메모리와 동일한 I/O 규격을 사용하는 암호화 처리 메모리 로 메모리 복사하는 단계, 상기 암호화 처리 메모리의 내장된 암호화 기능을 이용하여 상기 복사된 데이터를 암호화 키 관리 정책에 따라 할당된 암복호화 키를 기초로 암호화 또는 복호화하는 단계 및 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 메모리 복사하는 단계를 포함하여 구성된다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 바람직한 일실시예로 암호화 기능이 내장된 메모리를 이용한 사용자 응용 프로그램의 암호화 또는 복호화 요청의 처리 방법은 사용자 응용 프로그램으로부터 데이터 암호화 또는 복호화 요청을 수신하여 일반 메모리에 저장된 상기 암호화 또는 복호화 요청된 데이터를 확인하는 단계, 상기 확인된 데이터의 처리를 위해 암호화 기능이 내장된 암호화 처리 메모리의 현 가용 주소 공간 및/또는 기스케줄링된 암호화 처리 순서를 파악하여 상기 암호화 처리 메모리의 이용 가능 여부를 확인하는 단계, 상기 암호화 처리 메모리가 이용 가능한 경우 상기 일반 메모리에 기저장된 암호화 또는 복호화 요청된 데이터를 상기 암호화 처리 메모리로 복사하는 단계, 상기 암호화 처리 메모리의 내장된 암호화 기능을 이용하여 상기 복사된 데이터를 암호화 키 관리 정책에 의해 할당된 암복호화 키를 기초로 암호화 또는 복호화하는 단계 및 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 복사하여 상기 사용자 응용 프로그램으로 제공하는 단계를 포함하여 구성된다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 일실시예에 대하여 자세히 살펴보고자 한다.
도 1은 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리를 이용한 데이터 암호화 장치의 구성도이다.
종래 보안 시스템이 속도가 느린 이유는 데이터 이동 시에 생기는 Bus 병목 현상과 암호화 과정에서 생기는 계산 부하가 원인이었다. 이러한 상기 문제인 Bus 병목을 해결하기 위해서 메모리 내에서 바로 암호화가 이루어지도록 하고자 한다. 그리고 두 번째 문제인 계산 부하 문제를 해결하기 위해서 메모리 내부에 암호화 연산을 전담하는 내장형 암호화 Chip 을 추가하고자 한다.
기존 보안 시스템은 암호화 연산을 위해서 CPU 자원을 이용하기 때문에 시스템 성능 저하가 생겼다. 본 발명은 일반적으로 CPU 는 연산 처리를 담당하고 메모리는 데이터의 저장과 반환만을 담당하는 기존 컴퓨터 구조와는 달리 메모리 내부에 암호화 전용 연산 기능을 추가함으로써 대용량 고속 암호화 성능을 제공할 수 있게 된다. 또한 암호화 처리 메모리(또는 암호 전용 메모리, 이하 암호화 처리 메모리라 한다)가 기존 시스템에 투명하게 적용될 수 있도록 하는 운용 방법과 소프트웨어 개발 방법 등을 함께 고안한다.
암호화 처리 메모리를 이용한 고속 암호화 시스템의 구성은 도 1과 같다. 상기 시스템의 구성은 일반 컴퓨터 시스템(100)에 암호화 처리 메모리(120)를 추가한 것으로 상기 암호화 처리 메모리는 기존 일반 메모리(RAM)(110)와 같은 슬롯을 이용해서 컴퓨터에 장착되고 기본적인 동작 또한 일반 RAM과 동일하게 동작된다. 다만 암호화 처리 메모리는 암호화 기능부(125)를 내장하여 CPU(130)에 부하를 걸리지 않게 하면서 데이터를 암호화할 수 있게 된다.
도 2는 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리 제품의 형 상도이다.
도 2를 참조하면, 암호화 처리 메모리는 일반 메모리(210)와 같은 I/O 규격을 이용하고(230) 제품 상단을 확장시켜서 암호화 전용 Chip(220)을 추가한다. 이로써 상기 암호화 처리 메모리는 다른 일반 메모리와 데이터 복사시 메모리 복사 속도로 데이터를 복사하고 복사 받을 수 있게 된다.
도 3은 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리의 내부 구성도이다.
이는 암호화 처리 메모리의 내부 블록 구성도를 나타내는 것으로, 암호화 처리 메모리(300)는 크게 일반 메모리 기능 부분(310)과 암호화 기능 부분(320)로 나누어진다. 상기 일반 메모리 기능 부분(310)을 이용해서 기존 데이터 버스와 제어 버스를 통해 CPU와 통신을 하게 되며 암호화 기능 부분(320)는 다시 키 관리 부분(321)과 암복호화 기능 부분(322)으로 구성된다. 상기 키 관리 부분(321)은 암호화 키 관리 정책에 따라 암복호화 키를 관리하는 역할을 수행하며, 상기 암복호화 기능 부분(322)은 실제로 데이터의 암복호화 과정에 관여하게 된다.
상기 암호화 처리 메모리를 적용한 시스템은 일반 메모리와 암호화 처리 메모리 모두를 장착하고 있어야 한다. 일반 메모리의 특정 영역에 있는 데이터를 암호화해야 하는 경우, 이 데이터들을 암호화 처리 메모리 영역으로 메모리 복사(Memcpy)를 수행한다. 암호화 처리 메모리에 데이터가 복사되면 자동으로 암호화가 이루어진다. 암호화된 데이터는 다시 메모리 복사를 통해서 일반 메모리 영역으로 이동한다. 이 과정은 제공되는 라이브러리의 암호화 API를 통해서 이루어진다.
도 4는 본 발명의 바람직한 일실시예에 따른 사용자 응용 프로그램의 암복호화 요청을 처리하는 암호화 장치에 대한 구성도이다.
이는 암호화 처리 장치를 그 수행 과정을 중심으로 구분하여 나타낸 블록도로서 먼저 암호화 기능이 내장된 암호화 처리 메모리(460)을 중심으로 하여 암호화 요청 수신부(410)에서 사용자 응용 프로그램으로부터 데이터 암호화 또는 복호화 요청을 수신하여 일반 메모리에 저장된 상기 암호화 또는 복호화 요청된 데이터를 확인하게 되면, 암호화 처리 메모리 확인부(420)에서 상기 암호화 기능이 내장된 암호화 처리 메모리(460)의 현 가용 주소 공간 및/또는 기스케줄링된 암호화 처리 순서에 따라 상기 암호화 처리 메모리의 이용 가능 여부를 확인하게 된다.
그런 다음 그러한 상기 암호화 처리 메모리가 이용 가능한 경우는 암호화 요청 데이터 복사부(430)에 의해 상기 일반 메모리에 기저장된 암호화 또는 복호화 요청된 데이터를 상기 암호화 처리 메모리로 복사하게 되면, 암호화 수행부(440)는 실제 상기 암호화 처리 메모리에 내장된 암호화 기능을 이용하여 상기 복사된 데이터를 암호화 키 관리 정책에 따른 암복호화 키를 기초로 암호화 또는 복호화 과정을 수행하게 된다.
마지막으로, 암호화 처리 데이터 제공부(450)는 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 복사하여 상기 사용자 응용 프로그램으로 제공하게 된다.
도 5는 본 발명의 바람직한 일실시예에 따른 암호화 처리 메모리를 이용한 암복호화 방법에 대한 플로우 차트이다.
이는 암호화 처리 메모리와 일반 메모리 간의 데이터 복사 및 암호화 수행 과정의 단계를 나타내는 것으로, 사용자 응용 프로그램의 요청에 따라 암호화 또는 복호화가 요구되는 데이터를 일반 메모리로부터 암호화 기능을 내장하고 상기 일반 메모리와 동일한 입출력 규격을 사용하는 암호화 처리 메모리로 메모리 복사한다(501). 그리고 상기 암호화 처리 메모리의 내장된 암호화 기능을 이용하여 상기 복사된 데이터를 암호화 키 관리 정책에 따라 할당된 암복호화 키를 기초로 암호화 또는 복호화하면(502) 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 메모리 복사함(503)으로 암호화 처리 과정을 마치게 된다.
도 6은 본 발명의 바람직한 일실시예에 따른 사용자 응용 프로그램의 암복호화 요청 처리 방법에 대한 플로우 차트이다.
이는 사용자 응용 프로그램, 일반 메모리, 암호화 처리 메모리를 포함한 전체 시스템 하에 암호화 요구 및 처리 과정에 대한 순서도로서, 먼저 사용자 응용 프로그램으로부터 데이터 암호화 또는 복호화 요청을 수신하여 일반 메모리에 저장된 상기 암호화 또는 복호화 요청된 데이터를 확인 한 후(601) 상기 확인된 데이터의 처리를 위해 암호화 기능이 내장된 암호화 처리 메모리의 현 가용 주소 공간 및/또는 기스케줄링된 암호화 처리 순서를 파악하여 상기 암호화 처리 메모리의 이용 가능 여부를 확인하게 된다(602). 만약 이때 이용이 불가능한 경우는 스케줄링의 변경 등의 조치로 이용가능할 때까지 대기하게 된다. 그러나 이용이 가능한 경우는 상기 일반 메모리에 기저장된 암호화 또는 복호화 요청된 데이터를 상기 암호화 처리 메모리로 복사하고(603) 상기 암호화 처리 메모리의 내장된 암호화 기능을 이용 하여 상기 복사된 데이터를 암호화 키 관리 정책에 의해 할당된 암복호화 키를 기초로 암호화 또는 복호화한 후(604) 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 복사하여 상기 사용자 응용 프로그램으로 제공하게 된다(605).
도 7은 본 발명의 바람직한 일실시예에 따른 사용자와 시스템, 암호화 처리 메모리 간의 암호화 관련 메시지 흐름을 나타내는 도면이다.
도 7를 참조하여 상기 도면상의 중요 구성요소의 특징에 대해 설명하면, 먼저 암호화 처리 메모리는 일반 메모리(RAM)와 같은 방식으로 컴퓨터에 장착되며 같은 Bus I/O을 이용해서 CPU와 통신한다. 또 상기 암호화 처리 메모리는 내장형 칩이 추가로 장착되어 있어서 자체적으로 암호 연산과 키관리 연산 수행이 가능하며 임의의 데이터가 복사되면, 이를 자동으로 암호화하고, 암호화를 요청한 일반 메모리 주소 공간에 암호화된 데이터를 반환한다.
다음으로 암호 기능 제공용 라이브러리(암호 전용 라이브러리)는 암호화 처리 메모리를 제어할 수 있는 소프트웨어 API가 포함하고 있어 사용자가 이 API들을 호출함으로써 자신의 프로그램에서 암호화 처리 메모리를 사용해서 고속 데이터 암호화를 수행할 수 있다. 이와 함께 상기 암호 기능 제공용 라이브러리(암호 전용 라이브러리)는 암호화 요청 기능뿐만 아니라, 암호화 칩 스케쥴링 기능과, 주소 공간 재할당 기능도 제어할 수 있다.
상기 이러한 구성 요소하에 사용자(701)가 특정 데이터의 암호화를 요청하면 응용 프로그램(702)은 암호 전용 라이브러리(또는 암호화 처리 라이브러리)(703)의 API를 호출해서 해당 주소 영역의 암호화를 요청한다. 암호 전용 라이브러리(703) 는 일반 메모리 주소 공간(705)의 데이터를 암호화 처리 메모리로 복사한다. 암호화 처리 메모리(706)는 새로운 데이터가 복사되면 해당 주소 공간을 자동으로 암호화(707)시킨다. 암호화된 데이터는 다시 자동으로 일반 메모리(705) 영역으로 반환된다. 복호화(708) 과정도 상기와 동일하다. 이러한 암호화 과정은 CPU(704)의 연산 작업이 전혀 필요 없고 메모리 외부로의 데이터 복사도 이루어지지 않기 때문에 Bus 병목으로 인한 지연도 생기지 않는다.
도 8은 본 발명의 바람직한 일실시예에 따른 사용자와 시스템, 암호화 처리 메모리 간의 특정 데이터 암복호화 과정을 나타내는 도면이다.
이는 도 7의 메시지 흐름도에서 암호화의 주체가 되는 구성 요소들의 내부 동작 과정을 보이고 있다. 사용자 응용 프로그램(810)은 암호화를 수행하기 위해서 그 프로그램 수행 중(811)에 데이터 암호화 요청(812)을 위한 암호 전용 라이브러리의 API를 호출한다(813). 상기 암호 전용 라이브러리(820)는 API 요청을 받으면 우선 암호화 처리 메모리의 현재 상태를 파악하게 된다(821). 동시에 여러 프로그램에서 암호화 요청이 들어올 수 있기 때문에 암호화 처리 메모리의 주소 공간과 암호화 칩(Chip)의 작업 순서를 스케쥴링하게 된다. 최종적으로 암호화 처리 메모리를 쓸 수 있게 되면, 일반 메모리의 데이터를 암호화 처리 메모리로 이동시킨다(822). 암호화 처리 메모리(830)는 새로운 데이터가 복사된 것이 인식되면, 키 관리 정책에 따라서 암호화 키를 할당하고(831), 해당 데이터를 자동으로 암호화 한다(832). 그 후 암호화된 데이터는 다시 일반 메모리로 반환되고(823), 반환된 데이터는 보안 라이브러리 쪽에서 주소 재설정 작업을 처리한 후에 응용 프로그램 으로 반환되며(814) 상기 응용 프로그램은 이를 사용 가능하게 된다(815).
도 9는 본 발명의 바람직한 일실시예에 따른 일반 메모리와 암호화 처리 메모리 간의 데이터 이동 과정을 나타내는 도면이다.
이는 일반 메모리와 암호화 처리 메모리 간의 데이터 이동 과정을 보이는 것으로 일반 메모리의 주소 공간(901) 0xFFB0부터 0xFFBF에 있는 "5555555555555555" 라는 데이터를 암호화하려고 하는 과정을 보인다.
먼저 상기 데이터를 본 발명에서의 라이브러리의 API를 이용해서 암호화 처리 메모리의 주소 공간(902)으로 복사한다. 암호화 처리 메모리는 자신의 주소 영역에 새로운 데이터가 복사되면 이를 자동으로 암호화시킨다(903). 상기 암호화된 데이터는 다시 자동으로 일반 메모리 주소 영역으로 반환하게 된다(904).
이하 상기 과정에서 요구되는 주소 공간의 변경 부분에 대하여 간단히 살펴 보면 먼저 적용하는 암호화 알고리즘에 따라 원문과 암호문 사이에 길이의 차이가 생길 수 있음을 알 수 있다. 즉 "5555555555555555" 라는 16 바이트 데이터를 암호화하면 16 바이트는 암호문이 나오는 것이 아니라 다른 길이의 암호문이 나올 수 있다. 이 경우 일반 메모리 주소 공간은 암호화된 데이터를 넣기 위한 새로운 주소 공간의 확보가 필요하게 된다. 즉 상기 암호화된 데이터를 암호화 또는 복호화 단계에 의해 변동된 데이터 크기를 기초로 상기 복사될 일반 메모리의 주소값을 재설정한 후 상기 일반 메모리로 복사하는 것이 필요하게 되는데, 이것과 연관된 주소 공간의 확보와 데이터 이동은 암호화 처리 메모리와 함께 제공되는 라이브러리에서 소프트웨어적으로 처리한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명에서 제안하고 있는 암호화 처리 메모리를 이용한 고속 대용량 암호화 시스템은 기존에 성능상의 문제로 시장성이 없었던 여러 가지 보안 제품에 성능 개선 해법을 제공할 수 있다. 기존 보안 제품들은 소프트웨어 방식, 하드웨어 방식 모두 CPU 자원을 소비하거나, bus 병목 현상들로 인해서 기존 응용 프로그램의 성 능을 저하시키는 단점이 있었으나, 본 발명에서 제안하는 암호화 처리 메모리 적용 방법은 보안 프로그램이 장착되는 컴퓨터의 CPU 자원을 소비하지도 않고, 메모리 내부에서 바로 암호화가 이루어지기 때문에 bus 병목 현상도 발생하지 않는다.
현재 개인정보보호법 등의 시행으로 인해서 데이터 보안 제품의 시장 요구가 더욱 많아질 것으로 기대 되어지는데 본 발명은 상기 데이터 보안과 관련된 모든 제품의 성능 향상에 적용될 수 있으며 응용 프로그램과 상관없이 투명하게 적용될 수 있다는 장점이 있다.
Claims (7)
- 사용자 응용 프로그램의 요청에 따라 암호화가 요구되는 데이터를 기저장하고 있는 일반 메모리; 및상기 일반 메모리와 동일한 I/O 규격의 메모리 슬롯에 장착되어 일반적인 메모리 간의 복사 속도로 상기 데이터를 메모리 복사하여, 내장된 암호화 기능부에 의해 독립적으로 상기 데이터의 암호화 연산 및/또는 암호화 키 관리 연산을 수행한 후 상기 연산 수행된 데이터를 상기 일반 메모리로 메모리 복사하는 암호화 처리 메모리;를 포함하는 것을 특징으로 하는 암호화 기능이 내장된 메모리를 이용한 암호화 장치.
- 제 1항에 있어서, 상기 암호화 처리 메모리에 내장된상기 암호화 기능부는 상기 암호화 처리 메모리 내 별도의 칩(chip)으로 구현되어, 암호화 키 관리 정책에 따라 할당받은 암호화 키를 기초로 상기 데이터의 암호화 연산을 수행하는 것을 특징으로 하는 암호화 기능이 내장된 메모리를 이용한 암호화 장치.
- 제 1항에 있어서, 상기 암호화 처리 메모리에 내장된상기 암호화 기능부는 기암호화된 데이터의 복호화 연산 및/또는 복호화 키 관리 연산을 수행하는 것을 특징으로 하는 암호화 기능이 내장된 메모리를 이용한 암호화 장치.
- 사용자 응용 프로그램으로부터 데이터 암호화 또는 복호화 요청을 수신하여 일반 메모리에 저장된 상기 암호화 또는 복호화 요청된 데이터를 확인하는 암호화 요청 수신부;상기 확인된 데이터의 처리를 위해 암호화 기능이 내장된 암호화 처리 메모리의 현 가용 주소 공간 및/또는 기스케줄링된 암호화 처리 순서를 파악하여 상기 암호화 처리 메모리의 이용 가능 여부를 확인하는 암호화 처리 메모리 확인부;상기 암호화 처리 메모리가 이용 가능한 경우 상기 일반 메모리에 기저장된 암호화 또는 복호화 요청된 데이터를 상기 암호화 처리 메모리로 복사하는 암호화 요청 데이터 복사부;상기 암호화 처리 메모리에 내장된 암호화 기능을 이용하여, 상기 복사된 데이터를 암호화 키 관리 정책에 의해 할당된 암복호화 키를 기초로 암호화 또는 복호화하는 암호화 수행부; 및상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 복사하여 상기 사용자 응용 프로그램으로 제공하는 암호화 처리 데이터 제공부;를 포함하는 것을 특징으로 하는 암호화 기능이 내장된 메모리를 이용한 사용자 응용 프로그램의 암호화 또는 복호화 요청의 처리 장치.
- (a) 사용자 응용 프로그램의 요청에 따라 암호화 또는 복호화가 요구되는 데 이터를 기저장된 일반 메모리로부터 암호화 기능을 내장하며 상기 일반 메모리와 동일한 I/O 규격을 사용하는 암호화 처리 메모리로 메모리 복사하는 단계;(b) 상기 암호화 처리 메모리의 내장된 암호화 기능을 이용하여 상기 복사된 데이터를 암호화 키 관리 정책에 따라 할당된 암복호화 키를 기초로 암호화 또는 복호화하는 단계; 및(c) 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 메모리 복사하는 단계;를 포함하는 것을 특징으로 하는 암호화 기능이 내장된 메모리에 의한 암호화 방법.
- (a) 사용자 응용 프로그램으로부터 데이터 암호화 또는 복호화 요청을 수신하여 일반 메모리에 저장된 상기 암호화 또는 복호화 요청된 데이터를 확인하는 단계;(b) 상기 확인된 데이터의 처리를 위해 암호화 기능이 내장된 암호화 처리 메모리의 현 가용 주소 공간 및/또는 기스케줄링된 암호화 처리 순서를 파악하여 상기 암호화 처리 메모리의 이용 가능 여부를 확인하는 단계;(c) 상기 암호화 처리 메모리가 이용 가능한 경우 상기 일반 메모리에 기저장된 암호화 또는 복호화 요청된 데이터를 상기 암호화 처리 메모리로 복사하는 단계;(d) 상기 암호화 처리 메모리의 내장된 암호화 기능을 이용하여 상기 복사된 데이터를 암호화 키 관리 정책에 의해 할당된 암복호화 키를 기초로 암호화 또는 복호화하는 단계; 및(e) 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 복사하여 상기 사용자 응용 프로그램으로 제공하는 단계;를 포함하는 것을 특징으로 하는 암호화 기능이 내장된 메모리를 이용한 사용자 응용 프로그램의 암호화 또는 복호화 요청의 처리 방법.
- 제 6항에 있어서,상기 단계(e)는 상기 단계(d)의 암호화 또는 복호화 단계에 의해 변동된 데이터 크기를 기초로 상기 복사될 일반 메모리의 주소값을 재설정한 후 상기 암호화 또는 복호화된 데이터를 상기 일반 메모리로 복사하는 것을 특징으로 하는 암호화 기능이 내장된 메모리를 이용한 사용자 응용 프로그램의 암호화 또는 복호화 요청의 처리 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060096590A KR20080029687A (ko) | 2006-09-29 | 2006-09-29 | 암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 |
US11/863,394 US20080080715A1 (en) | 2006-09-29 | 2007-09-28 | Apparatus and method for high-speed, large-volume data encryption using secure memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060096590A KR20080029687A (ko) | 2006-09-29 | 2006-09-29 | 암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080029687A true KR20080029687A (ko) | 2008-04-03 |
Family
ID=39261240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060096590A KR20080029687A (ko) | 2006-09-29 | 2006-09-29 | 암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080080715A1 (ko) |
KR (1) | KR20080029687A (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281154B2 (en) | 2009-07-23 | 2012-10-02 | International Business Machines Corporation | Encrypting data in volatile memory |
US8631460B2 (en) * | 2011-03-23 | 2014-01-14 | CipherPoint Software, Inc. | Systems and methods for implementing transparent encryption |
US8990266B2 (en) | 2011-10-18 | 2015-03-24 | CipherPoint Software, Inc. | Dynamic data transformations for network transmissions |
US9235543B2 (en) | 2012-11-26 | 2016-01-12 | International Business Machines Corporation | Systems for signal detection |
WO2017129660A1 (en) * | 2016-01-29 | 2017-08-03 | British Telecommunications Public Limited Company | Secure data storage |
EP3252651A1 (en) | 2016-05-30 | 2017-12-06 | Samsung Electronics Co., Ltd | Computing system having an on-the-fly encryptor and an operating method thereof |
CN109697173B (zh) * | 2018-12-11 | 2023-05-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向信息安全的嵌入式计算机SiP模块设计方法及电路 |
US11646870B2 (en) * | 2019-01-23 | 2023-05-09 | International Business Machines Corporation | Securing mobile device by RAM-encryption |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825878A (en) * | 1996-09-20 | 1998-10-20 | Vlsi Technology, Inc. | Secure memory management unit for microprocessor |
US6581162B1 (en) * | 1996-12-31 | 2003-06-17 | Compaq Information Technologies Group, L.P. | Method for securely creating, storing and using encryption keys in a computer system |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
US6282657B1 (en) * | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US6003117A (en) * | 1997-10-08 | 1999-12-14 | Vlsi Technology, Inc. | Secure memory management unit which utilizes a system processor to perform page swapping |
JP4127587B2 (ja) * | 1999-07-09 | 2008-07-30 | 株式会社東芝 | コンテンツ管理方法およびコンテンツ管理装置および記録媒体 |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US6263054B1 (en) * | 2000-08-01 | 2001-07-17 | William W. Haefliger | Telephone line use enablement of lottery participation |
JP4049297B2 (ja) * | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
US20030039354A1 (en) * | 2001-08-27 | 2003-02-27 | Kimble David E. | FIFO architecture with in-place cryptographic service |
US7200567B2 (en) * | 2002-01-04 | 2007-04-03 | Lockheed Martin Corporation | Purchasing aid logistics appliance and method for use |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
JP4118092B2 (ja) * | 2002-06-19 | 2008-07-16 | 株式会社ルネサステクノロジ | 記憶装置および情報処理装置 |
JP2004070499A (ja) * | 2002-08-02 | 2004-03-04 | Fujitsu Ltd | メモリデバイスおよび暗号化/復号方法 |
JP2005128996A (ja) * | 2003-09-30 | 2005-05-19 | Dainippon Printing Co Ltd | 情報処理装置、情報処理システム及びプログラム |
US20060015753A1 (en) * | 2004-07-15 | 2006-01-19 | International Business Machines Corporation | Internal RAM for integrity check values |
US8959311B2 (en) * | 2006-08-25 | 2015-02-17 | Texas Instruments Incorporated | Methods and systems involving secure RAM |
US20080072070A1 (en) * | 2006-08-29 | 2008-03-20 | General Dynamics C4 Systems, Inc. | Secure virtual RAM |
-
2006
- 2006-09-29 KR KR1020060096590A patent/KR20080029687A/ko not_active Application Discontinuation
-
2007
- 2007-09-28 US US11/863,394 patent/US20080080715A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20080080715A1 (en) | 2008-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
US20220405403A1 (en) | Technologies for trusted i/o protection of i/o data with header information | |
US7526451B2 (en) | Method of transferring digital rights | |
KR100924043B1 (ko) | 보안 데이터 프로세싱 및 전송을 위한 방법들 및 장치들 | |
US9037870B1 (en) | Method and system for providing a rotating key encrypted file system | |
US7200747B2 (en) | System for ensuring data privacy and user differentiation in a distributed file system | |
CN106997439B (zh) | 基于TrustZone的数据加解密方法、装置及终端设备 | |
US8498418B2 (en) | Conversion of cryptographic key protection | |
KR20080029687A (ko) | 암호화 기능이 내장된 메모리를 이용한 고속 대용량의암호화 장치 및 그 구현 방법 | |
US20190325147A1 (en) | Method and apparatus for processing data, computer device and storage medium | |
JP2013232219A (ja) | マイクロコントローラにおけるデータの安全な取扱いのための方法および装置 | |
US11520905B2 (en) | Smart data protection | |
EP1536307B1 (en) | Encryption of system paging file | |
WO2014150339A2 (en) | Method and system for enabling communications between unrelated applications | |
CN110609708B (zh) | 用于数据处理的方法、设备和计算机可读介质 | |
CN113742657A (zh) | 软件保护方法及其系统 | |
CN116522355A (zh) | 一种电力数据边界保护方法、设备、介质及装置 | |
CN107533516B (zh) | 用于管理对在装置的芯片上的系统的安全模块的多次访问的设备 | |
US8010802B2 (en) | Cryptographic device having session memory bus | |
CN112416526A (zh) | 一种直接存储访问方法、装置及相关设备 | |
CN111859351A (zh) | 向芯片写入信息的方法、系统、服务器及存储介质 | |
CN117493344B (zh) | 一种基于机密计算技术的数据组织方法 | |
TWI791995B (zh) | 軟體保護方法及其系統 | |
US20230208821A1 (en) | Method and device for protecting and managing keys | |
CN114244573B (zh) | 数据传输管控方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |