KR100906149B1 - 데이터 판독 방법 및 기록 방법 - Google Patents

데이터 판독 방법 및 기록 방법 Download PDF

Info

Publication number
KR100906149B1
KR100906149B1 KR1020070093403A KR20070093403A KR100906149B1 KR 100906149 B1 KR100906149 B1 KR 100906149B1 KR 1020070093403 A KR1020070093403 A KR 1020070093403A KR 20070093403 A KR20070093403 A KR 20070093403A KR 100906149 B1 KR100906149 B1 KR 100906149B1
Authority
KR
South Korea
Prior art keywords
data
encryption
buffer cache
layer
cache layer
Prior art date
Application number
KR1020070093403A
Other languages
English (en)
Other versions
KR20080052317A (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 한국전자통신연구원
Publication of KR20080052317A publication Critical patent/KR20080052317A/ko
Application granted granted Critical
Publication of KR100906149B1 publication Critical patent/KR100906149B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 컴퓨터 운영체제를 구성하는 커널에 관한 것으로, 특히 암호화 파일 시스템을 구비한 커널 및 여기서 수행되는 데이터 판독/기록 방법에 관한 것이다.
본 발명의 커널은, 어플리케이션 프로그램과 암호화 파일 시스템에 따라 데이터를 저장하는 보조 저장 장치 간의 데이터 전송 경로상에, 어플리케이션 프로그램들이 구동되는 유저 영역층; 상기 보조 저장 장치로부터 버퍼링한 데이터를 저장하기 위한 버퍼 캐쉬층; 상기 보조 저장 장치로부터 버퍼링한 데이터를 저장하기 위한 버퍼 캐쉬층; 및 상기 보조 저장 장치와 상기 버퍼 캐쉬층과의 데이터 통신을 중계하는 디바이스 드라이버층을 구비하되, 상기 버퍼 캐쉬층은, 내부에 버퍼링된 데이터에 대한 세부 암호화 정보를 보유하는 것을 특징으로 한다.
암호화 파일 시스템, 버퍼 캐쉬, 커널, OS

Description

데이터 판독 방법 및 기록 방법{Data Reading Method and Data Writing Method in it}
본 발명은 컴퓨터 운영체제를 구성하는 커널에 관한 것으로, 특히 암호화 파일 시스템을 구비한 커널 및 여기서 수행되는 데이터 판독/기록 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-039-01, 과제명: 임베디드 보안 운영체제 기술개발].
암호화 파일 시스템은 운영체제에서 보조 저장 장치에 저장되는 파일의 기밀성을 보장해주는 가장 대표적인 방법이다. 현재까지 암호화 파일 시스템을 구현하기 위해 나와 있는 방법은 크게 두 가지로, 사용자 수준 암호화 파일 시스템과 커널 수준 암호화 파일 시스템이다. 사용자 수준 암호화 파일 시스템은 성능 문제로 거의 사용되지 않고 대부분 커널 수준 암호화 파일 시스템이 사용되고 있다.
커널 수준 암호화 파일 시스템은 암호화 알고리즘 적용 위치에 따라 두 가지 로 분류된다. 첫째는 스택(Stackable) 파일 시스템을 이용하여 가상 파일 시스템 상위에서 파일 암호화 알고리즘을 적용하는 것으로, 파일 암호화 시스템은 일반적인 커널 계층 구조 중 스택층에 존재한다.
둘째는 보조 저장 장치로의 데이터 통신 인터페이스를 제공하는 디바이스 드라이버 수준에서 파일 암호화 알고리즘을 적용하는 것으로, 파일 암호화 시스템은 일반적인 커널 계층 구조 중 디바이스 드라이버층에 존재한다.
그런데, 두 방법 모두 중복해서 암/복호화를 수행하거나 불필요한 복호화를 수행하는 경우가 생기게 되어 성능이 저하될 수 있다. 스택 파일 시스템을 이용하는 경우는 캐쉬의 히트 여부와 상관없이 데이터를 읽거나 쓸 때마다 복호화나 암호화를 수행하므로 중복이 발생할 수 있다. 디바이스 드라이버 수준의 경우는 데이터를 버퍼 캐쉬로 읽을 때마다 무조건 복호화를 하기 때문에 사용되지 않는 데이터의 복호화를 유발시킨다.
본 발명은 상기 문제점들을 해결하기 위하여 안출된 것으로서, 보조 저장 장치로의 데이터 입출력 속도를 평균적으로 높일 수 있는 커널 및 여기서의 판독/기록 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 암호화 파일 시스템의 암호화 및 복호화 연산을 줄일 수 있는 커널 및 여기서의 판독/기록 방법을 제공하는데 다른 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 커널은, 어플리케이션 프로그램과 암호화 파일 시스템에 따라 데이터를 저장하는 보조 저장 장치 간의 데이터 전송 경로상에, 어플리케이션 프로그램들이 구동되는 유저 영역층; 상기 보조 저장 장치로부터 버퍼링한 데이터를 저장하기 위한 버퍼 캐쉬층; 상기 보조 저장 장치로부터 버퍼링한 데이터를 저장하기 위한 버퍼 캐쉬층; 및 상기 보조 저장 장치와 상기 버퍼 캐쉬층과의 데이터 통신을 중계하는 디바이스 드라이버층을 구비하되, 상기 버퍼 캐쉬층은, 내부에 버퍼링된 데이터에 대한 세부 암호화 정보를 보유하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 버퍼 캐쉬층을 가지는 커널에서 보조 저장 장치로부터의 데이터 판독 방법은, 판독 호출에 따라 상기 보조 저장 장치에 저장된 데이터 저장 블록들 중 판독 동작에 필요한 것들을 상기 버퍼 캐쉬층으로 복사하는 단계; 상기 버퍼 캐쉬층에 복사된 각 데이터 저장 블록들 내의 다수개의 암호화 블록들 중 상기 판독 호출에 필요한 것들만을 복호화하여 상기 버퍼 캐쉬층의 상부층으로 전달하는 단계; 및 상기 복호화된 암호화 블록들을 복호화된 내용으로 상기 버퍼 캐쉬층에 덮어쓰는 단계를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 버퍼 캐쉬층을 가지는 커널에서 보조 저장 장치로의 데이터 기록 방법은, 기록 호출에 따라 기록할 데이터 저장 블록에 대한 세부 암호화 정보를 상기 버퍼층에서 검색하는 단계; 상기 세부 암호화 정보에 따라 기록할 데이터 저장 블록들 내의 다수개의 암호화 블록들 중 암호화 되지 않은 것들만을 암호화하는 단계; 및 상기 암호화된 데이터 저장 블록들을 상기 보조 저장 장치에 저장하는 단계를 포함하는 것을 특징으로 한다.
도 1은 일반적인 버퍼 캐쉬층을 포함하는 커널에서 보조 저장 장치에 저장되는 파일의 암호화 및 복호화가 호출되는 과정을 도시한다. 버퍼 캐쉬층로부터 스택층에 존재하는 가상 파일 시스템으로 데이터를 복사하기 전에 데이터는 복호화되어야 하며, 버퍼 캐쉬층에 버퍼링된 데이터의 암호화는 버퍼 캐쉬가 디스크로 데이터를 위탁할 때만 수행되면 된다.
도 2는 암호화 파일 시스템이 스택층 또는 디바이스 드라이버층에 존재하는 종래 기술의 경우, 판독/기록 호출에 따라 암/복호화 동작이 수행되는 과정을 도시한다. 스택층에서 암/복호화가 수행되는 구조를 적용하는 경우, 암/복호화 알고리즘은 VFS(Virtual File System) 모듈에서 수행될 수 있으며, 디바이스 드라이버층에서 암/복호화가 수행되는 구조를 적용하는 경우, 암/복호화 알고리즘은 디바이스 드라이버에서 수행될 수 있다.
버퍼 캐쉬란, 디스크의 내용을 메모리에 임시적으로 저장함으로써 디스크 I/O의 횟수를 줄이고 시스템 성능을 높이는 데 그 목적으로 하드웨어 또는 소프트웨어적으로 구비하는 모듈이다. 도 2의 스택 파일 시스템을 이용하는 암호화 파일 시스템에서는 암호화된 데이터는 소프트웨어 모듈인 버퍼 캐쉬층에 암호화된 상태로 저장된다. 따라서, 버퍼 캐쉬층에 저장된 암호화 데이터를 반복적으로 접근할 때(즉, 캐쉬 히트일 경우), 반복적으로 암호화시키거나 복호화시키는 과정이 필요하다.
본 발명은 버퍼 캐쉬 수준에서 데이터를 암/복호화 하도록 한다. 즉, 데이터 읽기에 필요한 복호화 연산은 버퍼 캐쉬에서 데이터를 읽을 때 이루어지고, 데이터 쓰기에 필요한 암호화 연산은 버퍼 캐쉬 내용이 디스크에 쓰여질 때 이루어진다.
불필요한 암/복호화를 방지하기 위해, 본 발명은 버퍼 캐쉬층에서 암호화 파일 시스템에 따른 암/복호화를 수행하되, 해당 데이터 블록이 버퍼 캐쉬층에 버퍼링된 상태에서, 버퍼링된 데이터 중 판독/기록 호출에 직접 사용되는 부분만을 선택적으로 암/복호화를 수행하는 방안을 제안한다.
상기 구성에 따라 실시할 수 있는 본 발명의 버퍼 캐쉬층 기반 암호화 파일 시스템을 가지는 커널은, 보조 저장 장치로의 파일 입출력의 평균적인 속도를 향상시킬 수 있는 효과가 있다.
또한, 본 발명의 커널은 암호화 파일 시스템에 소요되는 암/복호화 연산량을 절감할 수 있는 효과도 있다.
이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
예컨대, 하기 실시예에서는 종래 기술들과의 비교의 편의를 위해, 본 발명에 따른 데이터 복호화를 스택층에서 수행하고, 데이터 암호화를 디바이스 드라이버층에서 수행한다고 규정하여 설명하지만, 계층 구조의 구분하는 방법에 따라서는 상기 암호화 및/또는 복호화를 스택층에서 수행한다고 규정할 수도 있다.
또한, 데이터 복호화를 버퍼 캐쉬층의 상부층에서 수행하고, 데이터 암호화를 버퍼 캐쉬층의 하부층에서 수행하는 구조에서는 본 발명의 사상을 용이하게 적용할 수 있으며, 이 또한 본 발명의 권리범위에 속한다.
또한, 하기 실시예에서는 본 발명의 사상을, 사용자 및 응용 프로그램 제작자에 대한 편의성이 우수한 데이터 블록 암호화 방식의 파일 암호화 시스템으로 구현한 구조로 구체화하여 설명하지만, 스트림 암호화 방식 등 다른 방식의 파일 암호화 시스템에도 적용가능함은 물론이다.
(실시예)
하기 실시예에서는 암호화 알고리즘으로서 블록 암호화 방법을 적용하였고, 블록 암호화 모드로서 ECB(Electronic CodeBook) 모드를 사용하였다. 이에 따라, 램덤 액세스 및 암/복호화된 블록의 길이를 일정하게 유지하게 된다.
도 3은 본 발명의 사상에 따른 암호화 파일 시스템을 가지는 커널의 계층 구조를 도시한다.
도 3은 본 실시예의 커널 중에서 본 발명의 사상이 적용되는 유저 영역에서 실행되는 어플리케이션 프로그램과 디스크 장치간의 데이터 전송 경로상 계층을 도시하였다. 여기서, 상기 커널은 예컨대 워크스테이션 같은 전산 설비의 운영체제(Operating System)의 하부 구조로서, 전산 설비에 포함되는 다양한 보조 하드웨어를 지원하기 위한 인터페이스/드라이버 등을 포함하는 소프트웨어로 구현될 수 있다. 따라서, 상기 커널은 커널 프로그램을 포함하는 컴퓨터 판독가능한 기록매체의 형태를 가질 수 있다.
상기 디스크 장치는, 상기 커널과 구별되는 보조 저장 장치의 일종이며, 소정의 데이터 저장 블록 단위로 데이터를 저장하며, 암호화 파일 시스템에 따라 암호화된 데이터를 저장한다.
도시한 본 실시예의 커널은, 어플리케이션 프로그램들이 구동되는 유저 영역층(User space); 상기 어플리케이션 프로그램들의 구동 중 데이터를 임시 저장하기 위한 스택층(Stackable Layer); 디스크 장치로부터 버퍼링한 데이터를 저장하기 위한 버퍼 캐쉬층(Buffer Cache Layer); 및 상기 디스크 장치와 상기 버퍼 캐쉬층과의 데이터 통신을 중계하는 디바이스 드라이버층(Device Driver Layer)을 포함한다.
일반적으로 대용량을 가지는 하드 디스크 장치 같은 보조 저장 장치는, 데이 터 엑세스의 편의성 및 신속성을 위해 일정한 크기를 가지는 데이터 저장 블록 단위로 데이터를 입출력하고 기록/수정한다.
본 발명의 사상이 구현되는 상기 버퍼 캐쉬층은, 커널에서 보조 기억 장치로부터 입출력되는 데이터를 버퍼링하기 위한 것으로, 동일한 위치의 데이터를 수회 반복 액세스 하는 경우가 많은 경우, 이미 버퍼 캐쉬층에 버퍼링된 데이터 저장 블록의 경우, 다시 디스크 장치로의 액세스를 수행하지 않게 하여, 전산 설비의 실질적인 평균 속도를 향상시킬 수 있다.
버퍼 캐쉬는 일반적인 하드 디스크 장치 내에도 하드웨어 버퍼의 형태로도 존재하는데, 본 발명의 사상이 적용되는 것은 커널 내의 버퍼 캐쉬층인 것이 바람직하다. 커널 내의 버퍼 캐쉬층에 본 발명의 사상에 따른 암호화 파일 시스템을 적용하면, 하드웨어 적용 유연성을 강화하면서도, 버퍼링 시의 암/복호화 연산량을 줄일 수 있기 때문이다.
상기 스택층은 각 어플리케이션 프로그램들에 할당되는 저장 공간으로, 각 어플리케이션 프로그램이 발하는 판독/기록 호출에 대한 직접적인 데이터만이 입출력된다.
상기 디바이스 드라이버층은, 소프트웨어인 커널과 하드웨어인 디스크 장치를 매개하기 위한 것으로, 디스크 장치에서의 데이터 취급 단위인 데이터 저장 블록 단위로 데이터가 입출력된다.
본 발명의 사상에 따라 상기 버퍼 캐쉬층에 버퍼링된 각 데이터 저장 블록은, 최초로 버퍼 캐쉬층으로 로딩될 때에는 전부가 다 암호화된 상태이지만, 그 후 버퍼 캐쉬층의 상부층(즉, 본 실시예에서는 스택층 및 유저 영역층)에서 액세스하였던 부분만이 복호화된 상태가 되고, 그렇지 않은 영역은 암호화된 상태를 유지한다.
이와 같이 상기 버퍼 캐쉬층에 버퍼링된 하나의 데이터 저장 블록은 암호화된 부분과 복호화된 부분이 뒤섞여 존재하며, 이를 나타내기 위하여 상기 버퍼 캐쉬층은 후술할 세부 암호화 정보를 보유한다.
도 4a 내지 4c에서는 판독 동작에서 복호화가 이루어지는 과정에 본 발명의 사상을 적용한 경우를, 종래와 같이 암호화 파일 시스템을 스택층이 가지는 경우 및 디바이스 드라이버층이 가지는 경우와 비교하여 도시하였다.
3가지 경우 모두 파일을 디스크 장치에 암호화한 형태로 저장하는 암호화 파일 시스템이므로, 유저 영역층에는 복호화된 데이터가 존재하며, 디스크 장치에는 암호화된 데이터로 존재한다.
도시한 바와 같은 버퍼 캐쉬층을 가지는 커널에서 수행되는 디스크 장치로부터의 데이터 판독 방법은, 판독 호출에 따라, 상기 보조 저장 장치에 저장된 데이터 저장 블록들 중 판독 동작에 필요한 것들을 상기 버퍼 캐쉬층으로 복사하는 단계; 상기 버퍼 캐쉬층에 복사된 각 데이터 저장 블록들 내의 다수개의 암호화 블록들 중 상기 판독 호출에 필요한 것들만을 복호화하여 상기 버퍼 캐쉬층의 상부층(도면에서는 스택층)으로 전달하는 단계; 및 상기 복호화된 암호화 블록들을 복호화된 내용으로 상기 버퍼 캐쉬층에 덮어쓰는 단계로 이루어진다.
또한, 상기 버퍼 캐쉬층을 덮어 쓰는 단계와 동시에 또는 순차적으로, 상기 복호화한 암호화 블록들에 대한 정보를 포함하는 세부 암호화 정보를 상기 버퍼 캐쉬층 내에 기록하는 단계가 수행될 수 있다. 상기 세부 암호화 정보는 후술할 비트맵 행태를 가질 수 있다.
도 4a에 도시한 바와 같이, 암호화 파일 시스템을 스택층이 가지는 경우 암호화 및 복호화를 스택층에서 수행하므로, 버퍼 캐쉬에는 항상 디스크의 암/복호화 상태와 동일한 상태의 데이터가 존재하며, 4b에 도시한 바와 같이, 디바이스 드라이버층이 가지는 경우 암호화 및 복호화를 디바이스 드라이버층에서 수행하므로, 버퍼 캐쉬에는 항상 유저 영영층과 동일하게 복호화된 상태의 데이터가 존재한다.
또한, 도 4a의 암호화 파일 시스템을 스택층이 가지는 경우, 이전의 판독시 읽었던 데이터 블록에 대하여 판독 호출이 반복되면, 복호화 과정도 또 다시 반복된다. 이는 스택층 암/복호화 파일 시스템의 경우 커널에 버퍼 캐쉬층이 존재하는지 여부를 고려치 않고 동일하게 암/복호화가 수행되기 때문이다.
도 4b의 암호화 파일 시스템을 디바이스 드라이버층이 가지는 경우, 버퍼 캐쉬에는 항상 복호화된 데이터가 존재하여 중복되는 복호화 과정이 발생되지 않지만, 디바이스 드라이버는 판독 호출에 대한 어떤 정보도 가지고 있지 않아 복호화는 전체 블록에 대하여 수행되기 때문에, 당해 판독 호출 실행에 불필요한 부분까지 복호화가 되어 복호화 효율을 저해하며 데이터의 보안성을 떨어뜨리게 된다.
반면, 본 발명의 사상에 따르는 경우, 도 4c에 도시한 바와 같이 특정 데이터 저장 블록에 대한 최초 판독 동작시에는 일단 요청받은 데이터 블록을 복호화하지 않고 버퍼 캐쉬로 복사하므로, 버퍼 캐쉬층에는 디스크의 상태와 동일한 암호화된 상태로 데이터가 존재한다.
그 후, 버퍼 캐쉬층의 상부층(즉, 스택층)에서의 판독 동작의 수행에 따라, 복사한 데이터 블록 중 판독 호출에 필요한 부분만을 복호화하여 다시 버퍼 캐쉬의 해당 위치에 덮어쓴다. 판독 호출에 불필요한 부분에 대한 복호화가 일어나지 않기 때문에, 데이터 보안성이 우수할 뿐만 아니라 수행 효율도 높아진다.
도 5a 내지 5c에서는 기록 동작에서 복호화가 이루어지는 과정에 본 발명의 사상을 적용한 경우를 종래의 스택층 암호화의 경우 및 디바이스 드라이버층 암호화의 경우와 비교하여 도시하였다. 여기서 기록 동작은 디스크 장치에 재기록하는 과정까지 포함한다.
그런데, 상기 도 4c에 도시한 본 실시예에 의한 판독 방법이 수행된 데이터 저장 블록의 상태를 살펴보면, 본 실시예의 판독 방법을 수행하는 경우 데이터 저장 블록 내에서도 판독 호출에 필요한 부분(여기서는 암호화 블록)들은 복호화된 상태로, 판독 호출에 필요하지 않았던 부분(암호화 블록)들은 암호화된 상태로, 암호화된 부분과 복호화된 부분이 뒤섞인 상태로 존재한다.
이러한 데이터 저장 블록이 버퍼링된 상태의 버퍼 캐쉬층에 대하여, 5b에 도시한 바와 같은 암호화 파일 시스템을 디바이스 드라이버층이 가지는 구현의 기록를 적용하면, 이미 암호화되어 별도의 암호화가 불필요한 부분까지 암호화를 수행한다. 즉, 버퍼 캐쉬층에 존재하는 데이터 블록 내의 복호화된 상태의 암호화 블록들만을 암호화하면 되는데, 판독 과정에서 복호화되지 않고 암호화된 상태를 유지하는 암호화 블록들을 포함하는 전체 데이트 블록을 다시 암호화하므로, 암호화 효율을 떨어뜨릴 뿐만 아니라 중복 암호화에 따른 오류 가능성도 존재한다.
한편, 도 5a에 도시한 바와 같은 암호화 파일 시스템을 스택층이 가지는 구현에서의 기록 방법은, 버퍼 캐쉬층에는 항상 암호화된 상태의 데이터 블록이 저장되는 경우만을 가정하므로, 본 실시예의 판독 방법과 함께 사용될 수 없다.
한편, 도 5c의 본 실시예의 버퍼 캐쉬층을 가지는 커널에서 수행되는 디스크 장치로부터의 데이터 기록 방법은, 기록 호출에 따라 기록할 데이터 저장 블록에 대한 세부 암호화 정보를 상기 버퍼층에서 검색하는 단계; 상기 세부 암호화 정보에 따라 기록할 데이터 저장 블록들 내의 다수개의 암호화 블록들 중 암호화 되지 않은 것들만을 암호화하는 단계; 및 상기 암호화된 데이터 저장 블록들을 상기 보조 저장 장치에 저장하는 단계로 이루어진다.
상기와 같이 암호화된 부분과 복호화된 부분이 혼재하는 데이터 저장 블록에 대하여, 도 5c에 도시한 바와 같이 본 실시예의 데이터 기록 방법을 적용하면, 이전의 판독 호출에 직접적으로 사용되어 복호화된 암호화 블록들만을 암호화하고, 사용되지 않아 암호화된 상태로 남아 있는 암호화 블록들은 암호화를 생략할 수 있어, 버퍼 캐쉬층에서 디스크 장치로 데이터 블록을 기록할 때의 암호화 연산량을 크게 절감할 수 있다.
본 실시예의 커널의 경우, 버퍼 캐쉬층에 버퍼 캐쉬 뿐만 아니라 하나의 데 이터 블록에 대한 부분적인 암/복호화를 알 수 있는 정보를 기록할 수 있는 영역을 보유한다.
상기 정보는 도 6에 도시한 바와 같은 비트맵으로 구현할 수 있다. 하나의 데이터 단위 저장 블록은, 복수개의 단위 암호화 블록으로 구현될때, 하나의 데이터 단위 저장 블록의 부분 암/복호화 상태를 표시하는 비트맵을 도시한 바와 같이 구현할 수 있다. 여기서, 상기 비트맵을 구성하는 각 비트는 대응하는 데이터 단위 저장 블록에 대한 암/복호화 상태를 표시한다.
예컨대, 암/복호화 알고리즘이 AES라면 상기 단위 암호화 블록은 16바이트의 크기를 가진다. 만약 하나의 데이터 단위 저장 블록이 4096바이트의 크기를 가지는 경우, AEA 알고리즘을 사용하면 하나의 데이터 잔위 저장 블록에 대하여 32바이트의 비트맵이 필요하게 된다.
이상을 통해 본 발명의 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명의 범위에 속하는 것은 당연하다.
도 1은 일반적인 커널에서 파일 저장 구조를 도시한 블록도,
도 2는 종래기술에 따른 암호화 파일 시스템을 채택한 커널을 설명하기 위한 블록도.
도 3은 본 발명의 일실시예에 따른 커널의 계층 구조를 도시한 블록도.
도 4a 내지 4c는 본 발명의 일실시예에 따른 커널에서의 데이터 판독 방법을 종래기술의 경우와 비교하여 설명한 블록도.
도 5a 내지 5c는 본 발명의 일실시예에 따른 커널에서의 데이터 기록 방법을 종래기술의 경우와 비교하여 설명한 블록도.
도 6은 본 발명에 따른 커널의 버퍼 캐쉬층이 보유하는 세부 암호화 정보의 일실시예를 도시한 구조도.

Claims (14)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 버퍼 캐쉬층을 가지는 커널에서 보조 저장 장치로부터의 데이터 판독 방법에 있어서,
    판독 호출에 따라, 상기 보조 저장 장치에 저장된 데이터 저장 블록들 중 판독 동작에 필요한 블록들을 상기 버퍼 캐쉬층으로 복사하는 단계;
    상기 버퍼 캐쉬층에 복사된 각 데이터 저장 블록들 내의 다수개의 암호화 블록들 중 상기 판독 호출에 필요한 블록들만을 복호화하여 상기 버퍼 캐쉬층의 상부층으로 전달하는 단계;
    상기 복호화된 암호화 블록들을 복호화된 내용으로 상기 버퍼 캐쉬층에 덮어쓰는 단계; 및
    상기 복호화한 암호화 블록들에 대한 정보를 포함하는 세부 암호화 정보를 상기 버퍼 캐쉬층 내에 기록하는 단계
    를 포함하는 것을 특징으로 하는 데이터 판독 방법.
  9. 삭제
  10. 제8항에 있어서, 상기 세부 암호화 정보는,
    각 암호화 블록들의 암호화 또는 복호화 상태를 표시하는 비트들로 이루어진 것을 특징으로 하는 데이터 판독 방법.
  11. 제8항에 있어서, 상기 보조 저장 장치는,
    디스크 장치인 것을 특징으로 하는 데이터 판독 방법.
  12. 버퍼 캐쉬층을 가지는 커널에서 보조 저장 장치로의 데이터 기록 방법에 있어서,
    기록 호출에 따라 기록할 데이터 저장 블록에 대한 세부 암호화 정보를 상기 버퍼 캐쉬층에서 검색하는 단계;
    상기 세부 암호화 정보에 따라 기록할 데이터 저장 블록들 내의 다수개의 암호화 블록들 중 암호화 되지 않은 블록들만을 암호화하는 단계; 및
    상기 암호화된 데이터 저장 블록들을 상기 보조 저장 장치에 저장하는 단계
    를 포함하는 것을 특징으로 하는 데이터 기록 방법.
  13. 제12항에 있어서, 상기 세부 암호화 정보는,
    각 암호화 블록들의 암호화 또는 복호화 상태를 표시하는 비트들로 이루어진 것을 특징으로 하는 데이터 기록 방법.
  14. 제12항에 있어서, 상기 보조 저장 장치는,
    디스크 장치인 것을 특징으로 하는 데이터 기록 방법.
KR1020070093403A 2006-12-05 2007-09-14 데이터 판독 방법 및 기록 방법 KR100906149B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060122303 2006-12-05
KR1020060122303 2006-12-05

Publications (2)

Publication Number Publication Date
KR20080052317A KR20080052317A (ko) 2008-06-11
KR100906149B1 true KR100906149B1 (ko) 2009-07-03

Family

ID=39807152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070093403A KR100906149B1 (ko) 2006-12-05 2007-09-14 데이터 판독 방법 및 기록 방법

Country Status (1)

Country Link
KR (1) KR100906149B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100261280B1 (ko) 1998-02-05 2000-07-01 정선종 파일의 고속 전송 시스템 및 제어방법
KR20020016701A (ko) * 2000-08-26 2002-03-06 박태규 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체
KR20050018735A (ko) * 2004-05-12 2005-02-28 영진비쥬얼테크놀러지 주식회사 윈도우즈 환경에서의 실시간 백업/보호 시스템 및 방법
KR20060059779A (ko) * 2004-11-29 2006-06-02 주식회사 안철수연구소 실시간 복호화 기능을 이용한 파일 데이터 보호 방법 및장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100261280B1 (ko) 1998-02-05 2000-07-01 정선종 파일의 고속 전송 시스템 및 제어방법
KR20020016701A (ko) * 2000-08-26 2002-03-06 박태규 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체
KR20050018735A (ko) * 2004-05-12 2005-02-28 영진비쥬얼테크놀러지 주식회사 윈도우즈 환경에서의 실시간 백업/보호 시스템 및 방법
KR20060059779A (ko) * 2004-11-29 2006-06-02 주식회사 안철수연구소 실시간 복호화 기능을 이용한 파일 데이터 보호 방법 및장치

Also Published As

Publication number Publication date
KR20080052317A (ko) 2008-06-11

Similar Documents

Publication Publication Date Title
US8069317B2 (en) Providing and utilizing high performance block storage metadata
JP3852954B2 (ja) データ記憶装置
US8438403B2 (en) Storage apparatus
JP4643427B2 (ja) 暗号化機能内蔵ストレージシステム
US7596695B2 (en) Application-based data encryption system and method thereof
US9215066B2 (en) Method and system for making information in a data set of a copy-on-write file system inaccessible
US9324361B2 (en) Protecting stored data from traffic analysis
US20030041253A1 (en) Recording apparatus, medium, method, and related computer program
US8712035B2 (en) Online data conversion technique using a sliding window
US20130124785A1 (en) Data deleting method and apparatus
US20030037248A1 (en) Crypto-pointers for secure data storage
KR20090026941A (ko) 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치
KR101047213B1 (ko) 암호화 장치, 암호화 방법 및 컴퓨터 판독가능한 기록 매체
JP2007011522A (ja) データの消去方法、ストレージ・デバイス及び計算機システム
US8364985B1 (en) Buffer-caches for caching encrypted data via copy-on-encrypt
CN110826099A (zh) 适用于嵌入式实时操作系统的安全存储方法及系统
KR20120054502A (ko) 반도체 기억 장치
KR20050050530A (ko) 시스템 페이징 파일의 암호화
CN105224882A (zh) 一种基于桥文件系统的文件加密系统
CN114611123B (zh) 一种文件透明加解密方法和系统
CN106775448A (zh) 一种加密卡的文件存储方法及安全删除方法
KR102090374B1 (ko) Gpu를 이용한 파일 시스템 레벨 암호화 장치 및 방법
KR100906149B1 (ko) 데이터 판독 방법 및 기록 방법
CN102160038A (zh) 管理非易失性磁盘高速缓存的方法和设备
JP2008009933A (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
LAPS Lapse due to unpaid annual fee