KR100941368B1 - 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법 - Google Patents

파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법 Download PDF

Info

Publication number
KR100941368B1
KR100941368B1 KR1020080091545A KR20080091545A KR100941368B1 KR 100941368 B1 KR100941368 B1 KR 100941368B1 KR 1020080091545 A KR1020080091545 A KR 1020080091545A KR 20080091545 A KR20080091545 A KR 20080091545A KR 100941368 B1 KR100941368 B1 KR 100941368B1
Authority
KR
South Korea
Prior art keywords
header
file
flash
header block
block
Prior art date
Application number
KR1020080091545A
Other languages
English (en)
Other versions
KR20090071348A (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 US12/256,331 priority Critical patent/US8117377B2/en
Publication of KR20090071348A publication Critical patent/KR20090071348A/ko
Application granted granted Critical
Publication of KR100941368B1 publication Critical patent/KR100941368B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 플래시 파일의 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시 파일 안전 삭제 방법에 관한 것이다. 플래시 파일의 실제 내용인 데이터와 객체 헤더가 데이터 블록과 헤더 블록에 각각 구분되어 저장된다. 이때 데이터는 암호화되어 저장되고, 복호화 키는 객체 헤더에 포함되어 헤더 블록에 저장된다. 플래시 파일의 삭제 시에는, 복호화 키를 포함하고 있는 객체 헤더가 저장되어 있는 헤더 블록을 탐색하여 해당 객체 헤더를 삭제한다. 헤더 블록의 탐색을 위해, 말단 노드가 파일 ID의 LSB를 나타내는 이진 트리 구조가 사용된다. 본 발명은 플래시 메모리를 저장 매체로 사용하는 임베디드 시스템에 적용될 수 있다. 특히 본 발명은 NAND 플래시 메모리 장치에 적합하다.

Description

파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시 파일 안전 삭제 방법{FLASH MEMORY DEVICE HAVING SECURE FILE DELETION FUNCTION AND METHOD FOR SECURELY DELETING FLASH FILE}
본 발명은 플래시 메모리 장치 및 플래시 파일 삭제 방법에 관한 것으로서, 특히 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시 파일 안전 삭제 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-039-02, 과제명: 임베디드 보안 운영체제 기술개발(Embedded Secure Operating System Technology Development)].
대부분의 파일 시스템에서는, 파일 삭제 명령에 의해 해당 파일에 대한 메타 데이터가 삭제되거나 변경되지만, 파일의 데이터 자체는 삭제되지 않고 물리 매체에 그대로 존재한다. 따라서 지워진 파일을 복구하는 것이 가능하다. 그러나 이러한 복구를 원하지 않는 사용자도 있다. 이러한 요구는 플래시 메모리를 저장 매체로 사용하는 임베디드 시스템에서 더욱 증가하고 있다.
자기 기록 매체(Magnetic Media)에서 안전하게 데이터를 삭제하는 방법이 알려져 있다. 이 방법은, 데이터를 삭제하기 위해 다른 비트 패턴을 해당 데이터에 덮어씌우는 기법(overwriting)을 사용하고 있다. 구체적으로 이 기법은 4번의 랜덤 비트 패턴으로 데이터를 덮어씌우는 작업, 이어서 27번의 미리 정해진 패턴으로 데이터를 덮어씌우는 작업, 마지막으로 다시 4번의 랜덤 비트 패턴으로 데이터를 덮어씌우는 작업으로 이루어진다. 따라서 총 35회의 덮어쓰기가 행해진다.
자기 디스크(Magnetic Disk)에서 안전하게 데이터를 삭제하기 위한 방법도 제안되어 있다. 미국방성의 DoD 5220 22-M 방식은, 임의의 비트 패턴으로 데이터를 덮어씌우고, 이어서 그 임의의 비트 패턴의 보수로 데이터를 덮어씌운 다음, 다시 임의의 비트 패턴으로 데이터를 덮어씌우는 작업을 7번 반복한다. 따라서 총 21회의 덮어쓰기가 행해진다.
플래시 메모리에 기록되어 있는 데이터를 다른 데이터로 바꿔서 기록하기 위해서는, 삭제 연산이 선행되어야 한다. 플래시 메모리에서의 데이터 삭제 작업은, 블록 단위로 수행되고 기록 작업은 페이지 단위로 수행된다. 일반적으로 블록은 512바이트 크기의 32개의 페이지, 또는 2048바이트 크기의 64개의 페이지로 구성된다. 이러한 기록 단위와 삭제 단위의 불일치 때문에, 플래시 파일 시스템에서는 로그 기반 구조(log-structured) 파일 시스템이 일반적으로 사용된다.
로그 기반 구조 파일 시스템에서 파일을 수정할 때에는, 수정 전의 파일이 삭제되지 않고 무효 표시(invalid)만 된 후, 새로운 페이지에 수정 후의 파일 내용이 기록된다. 또한, 로그 기반 구조 파일 시스템에서는, 전체 파일 시스템을 탐색 하여 무효화된 페이지를 함께 삭제함으로써 안전 삭제를 실현한다.
자기 기록 매체 또는 자기 디스크에 대해 위와 같은 다단계의 과정을 거쳐 데이터를 삭제한다고 하더라도, 지워진 데이터에 자기적인 잔상이 남을 수 밖에 없다. 따라서 데이터에 다른 비트 패턴을 덮어씌우는 방식으로 해당 데이터를 삭제해도 디스크의 약한 자기장의 흔적을 검출할 수 있는 장비로 원래의 데이터를 추출할 수 있다.
또한, 종래의 데이터 안전 삭제 방법은, 자기 기록 매체 또는 자기 디스크에 관한 것이어서, 자기 매체와는 구조적으로 전혀 다른 플래시 메모리로부터 데이터를 안전하게 삭제하는 방법에 그대로 적용할 수 없다.
또한, 플래시 파일 시스템, 즉 로그 기반 구조 파일 시스템에서 안전하게 파일을 삭제하는 종래의 방법은 비효율적이다. 왜냐하면, 안전 삭제를 위해 전체 파일 시스템을 탐색하여 무효화된 페이지를 함께 삭제해야 하기 때문이다.
본 발명의 목적은, 암호화 및 파일의 객체 헤더 블록 관리를 통해, 전체 파일 시스템을 탐색하지 않고서도 신속하고 안전하게 파일을 삭제하는 방법 및 장치를 제공하는 것이다.
본 발명은 플래시 메모리 기반 파일 시스템에서 안전하게 파일을 삭제하는 방법을 제공한다. 이를 위해 본 발명의 발명자들은, 임베디드 시스템에서 가장 일반적으로 사용되는 파일 시스템인 YAFFS(Yet Another Flash File System)를 변경하여 안전 삭제 기능을 가진 플래시 메모리용 파일 시스템을 설계하였다. 그러나 본 발명은 YAFFS에만 국한되는 것은 아니며, 다른 형태의 플래시 파일 시스템에도 적용될 수 있음은 물론이다.
본 발명은 암호화를 기반으로 하고 있으며, 특정 파일을 암호화하는 데 사용된 복호화 키를 삭제함으로써 파일의 안전 삭제를 실현한다. 또한, 본 발명은, 복호화 키를 포함한 파일의 메타 데이터를 갖고 있는 객체 헤더와, 파일의 실제 내용인 데이터를 헤더 블록과 데이터 블록에 각각 별도로 저장한다. 따라서 파일 삭제를 위해 전체 파일 시스템을 탐색할 필요없이, 헤더 블록에서 삭제 대상 객체 헤더만 찾아내어 삭제할 수 있으므로, 삭제에 필요한 처리 시간이 대폭 단축된다. 또한, 본 발명은, 안전 삭제가 필요한 파일을 쉽고 빠르게 찾을 수 있는 이진 트리 기법을 제공한다.
구체적으로, 상기와 같은 목적을 달성하기 위해, 본 발명의 플래시 메모리 장치는, 플래시 파일을 저장하기 위한 메모리 블록들로 구성된 플래시 메모리와, 상기 메모리 블록들 중 데이터 블록에는 플래시 파일의 암호화된 데이터가 저장되고, 상기 메모리 블록들 중 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더가 저장되도록 상기 플래시 메모리를 제어하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는, 암호화된 데이터를 갖는 플 래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭제한다.
또한, 상기와 같은 목적을 달성하기 위해, 본 발명의 플래시 파일 안전 삭제 방법은, 플래시 메모리의 데이터 블록에는 플래시 파일의 암호화된 데이터를 저장하고, 상기 플래시 메모리의 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 저장하는 단계와, 암호화된 데이터를 갖는 플래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭제하는 단계를 포함한다.
본 발명의 이와 같은 구성에 따르면, 암호화된 데이터와 복호화 키를 별도의 메모리 블록에 저장하고, 삭제 시에는 복호화 키만을 삭제하면 암호화된 데이터의 복구를 불가능하게 할 수 있으므로, 플래시 파일의 안전 삭제가 빠르고 쉽게 달성된다. 플래시 메모리의 경우, 삭제 조작을 위한 오버헤드(overhead)가 상당히 크기 때문에 암호화에 따른 오버헤드가 생기더라도 삭제 조작 회수를 줄이는 것이 훨씬 효율적이다.
이때, 상기 삭제는, 상기 복호화 키를 포함하는 객체 헤더가 저장되어 있는 헤더 블록을 임시 저장 장치에 복사하는 단계와, 상기 헤더 블록을 상기 플래시 메모리에서 삭제하는 단계와, 상기 복사된 헤더 블록에서 상기 복호화 키를 포함하는 객체 헤더를 무효로 설정하는 단계와, 상기 삭제된 헤더 블록을 상기 플래시 메모리에 재할당하는 단계와, 상기 복사된 헤더 블록의 객체 헤더들 중에서 유효한 객체 헤더를 상기 재할당된 헤더 블록에 저장하는 단계를 포함할 수 있다.
또한, 동일한 파일 ID를 갖는 플래시 파일의 객체 헤더들은 동일한 헤더 블록에 저장하는 것이 바람직하다. 따라서 시스템 전체를 탐색하지 않고서 하나의 헤더 블록에서만 원하는 객체 헤더를 한꺼번에 삭제할 수 있으므로 신속하고 안전한 플래시 파일의 삭제가 보장된다. 로그 기반 구조 파일 시스템에서는 하나의 파일에 여러 개의 객체 헤더가 있을 수 있다. 따라서 파일 삭제를 위해서는 유효 객체 헤더 뿐만 아니라 기존에 무효화되어 있는 무효 객체 헤더들도 모두 찾아서 삭제해야 한다. 본 발명에 따르면, 동일한 플래시 파일에 대한 객체 헤더들이 모두 하나의 헤더 블록에 모여 있기 때문에, 신속한 파일 안전 삭제가 보장된다.
또한, 본 발명의 플래시 메모리 장치 및 플래시 파일 안전 삭제 방법은, 헤더 블록 탐색을 위해 파일 ID와 연관된 이진값을 갖는 노드들로 구성된 이진 트리가 활용된다. 따라서 신속한 헤더 블록 탐색이 보장된다.
본 발명에 따르면, 암호화된 데이터와 복호화 키를 별도의 메모리 블록에 저장하고, 삭제 시에는 복호화 키만을 삭제하면 암호화된 데이터의 복구를 불가능하게 할 수 있으므로, 플래시 파일의 신속한 안전 삭제가 보장된다.
또한, 본 발명에 따르면, 시스템 전체를 탐색하지 않고서 하나의 헤더 블록에서만 원하는 객체 헤더를 한꺼번에 삭제할 수 있으므로 신속하고 안전한 플래시 파일의 삭제가 보장된다.
또한, 본 발명에 따르면, 파일 ID와 연관된 이진값을 갖는 노드들로 구성된 이진 트리를 헤더 블록 탐색에 활용함으로써 신속한 헤더 블록 탐색이 보장된다.
이하에서는, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다.
도 1에는 본 발명의 실시예에 따라 플래시 파일을 안전하게 삭제하는 기능을 갖는 플래시 메모리 장치(10)가 개시되어 있다. 플래시 메모리 장치(10)는 플래시 메모리(20)와 메모리 컨트롤러(30)를 포함한다. 플래시 메모리 장치(10)가 USB 플래시 드라이브인 경우에는, 외부 장치와의 사이에서 파일 및 제어 신호를 주고 받기 위한 커넥터를 더 포함한다.
플래시 메모리(20)는, 플래시 파일을 저장하기 위한 다수의 메모리 블록들로 구성되어 있으며, 예를 들어 NAND 게이트 플래시 메모리일 수 있지만 그것에 국한되는 것은 아니다. 각 메모리 블록은 512바이트 크기의 32개의 페이지로 구성될 수 있다.
메모리 컨트롤러(30)는, 메모리 블록들이 데이터 블록과 헤더 블록으로 구분되어 사용되도록 플래시 메모리(20)를 제어한다. 데이터 블록에는 플래시 파일의 실제 내용인 데이터가 저장된다. 헤더 블록에는 플래시 파일의 파일 ID, 해당 파일의 데이터가 저장되어 있는 데이터 블록의 위치 등을 포함하는 메타 데이터를 갖는 객체 헤더가 저장된다.
또한, 메모리 컨트롤러(30)는 플래시 파일의 데이터를 암호화하여 데이터 블 록에 저장하고, 암호화된 데이터를 복호화하기 위한 복호화 키는 해당 플래시 파일의 객체 헤더에 포함시켜 헤더 블록에 저장한다. 플래시 파일을 삭제할 때에는, 해당 플래시 파일의 복호화 키만 헤더 블록에서 삭제함으로써 플래시 파일을 신속하고 안전하게 삭제할 수 있다.
이하에서는, 플래시 파일을 생성/변경하고 플래시 파일을 삭제하는 메모리 컨트롤러(30)의 동작에 대해 자세히 설명한다.
1. 헤더 블록 탐색을 위한 이진 트리
도 2에는 메모리 컨트롤러(30)에 의해 행해지는 헤더 블록 탐색을 위한 이진 트리가 도시되어 있다. 이진 트리는 DRAM과 같은 내부 메모리에 유지되어 있으며, 새롭게 생성된 객체 헤더가 저장될 헤더 블록을 탐색하고, 삭제할 객체 헤더가 위치하는 헤더 블록을 탐색하는 데 이용된다.
이진 트리의 최상위층은 NULL값을 갖는다. 부모 노드의 왼쪽 자식 노드에는 부모 노드의 이진값의 왼쪽에 0이 붙고, 오른쪽 자식 노드에는 부모 노드의 이진값의 왼쪽에 1이 붙는다. 이와 같은 규칙에 따라 이진 트리의 전체 노드가 형성되고, 각 노드에 대한 탐색이 편리하게 행해진다. 이때 자식 노드의 좌우 위치가 서로 바뀌어도 됨은 물론이다.
이진 트리의 각 노드에 표시된 이진값은 헤더 블록의 플래시 메모리(20) 내의 위치를 가리키는 포인터로서, 파일 ID의 n개의 LSB(Least Significant Bits)에 해당한다. 헤더 블록은, 플래시 메모리(20)에서 말단 노드의 포인터가 가리키는 위 치에 존재한다.
예를 들어 말단 노드 '010'은, 파일 ID의 LSB가 '010'인 파일에 대응하는 객체 헤더가 저장되어 있는 헤더 블록을 가리킨다. 따라서 새롭게 생성된 객체 헤더를 헤더 블록에 저장하려고 할 때, 파일 ID의 n개의 LSB는 노드의 깊이가 n인 말단 노드의 이진값과 같아야 한다. 즉 파일 ID의 LSB가 '010'인 파일에 대응하는 객체 헤더는, '010'의 이진값을 갖는 말단 노드가 가리키는 헤더 블록에 저장된다.
그러나 헤더 블록의 저장 공간이 부족한 경우, 블록 관리부(11)는 '010'의 말단 노드의 자식 노드들 '0010' 및 '1010'을 생성하고, 생성된 자식 노드들이 가리키는 플래시 메모리(20) 내의 위치에 2개의 새로운 헤더 블록을 생성한다. 노드 '010'이 가리켰던 헤더 블록에 저장되어 있던 객체 헤더들과 새롭게 생성되었던 객체 헤더는 2개의 새로운 헤더 블록에 나누어 저장된다. '010'이 가리켰던 헤더 블록은 삭제된다.
한편, 노드 '10'이 가리키는 헤더 블록은 플래시 메모리에 존재하지 않는다. 후술하는 바와 같이, 노드 '10'의 자식 노드들 '010' 및 '110'이 생성되면서 노드 '10'이 가리키는 헤더 블록이 삭제되기 때문이다.
이와 같은 방식으로 이진 트리를 구성하면, 동일한 파일 ID를 갖는 객체 헤더들은 모두 동일한 헤더 블록에 저장된다. 따라서 삭제 대상 플래시 파일과 관련된 객체 헤더가 저장되어 있는 하나의 헤더 블록만 상기 이진 트리 규칙에 따라 찾아내면 되기 때문에, 신속한 탐색 및 삭제가 보장된다.
이하에서는, 이진값 "X"를 갖는 말단 노드를 "말단 노드 X"로 표시하고, 말 단 노드 X가 가리키는 헤더 블록을 "헤더 블록 X"로 표시한다.
2. 파일의 생성/변경에 따른 헤더 블록의 할당 처리
도 3을 참조하여, 새롭게 생성된 객체 헤더를 대응하는 헤더 블록에 할당하는 처리를 설명한다. 메모리 컨트롤러(30)는, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 하기의 "OBJECT_HEADER_ADD 연산 알고리즘"을 실행시켜 헤더 블록의 할당 처리를 수행한다. 이 알고리즘은 새로운 파일이 생성되거나 기존의 파일이 변경될 때 발생한다.
[OBJECT_HEADER_ADD 연산 알고리즘]
Figure 112008065677069-pat00001
도 2와 같이 이진 트리가 구성되어 있는 상태에서, 파일 ID가 "11010010"인 파일을 생성하려고 할 때, 상기 알고리즘은 다음과 같은 순서로 실행된다. 파일 ID "11010010"인 파일의 데이터는 암호화되어 있고, 복호화 키 및 파일 ID는 그 파일의 객체 헤더에 포함되어 있다.
(1) 생성하려는 파일의 파일 ID "11010010"을 얻는다.
(2) 도 3의 (a): 노드의 깊이가 n이고, 파일 ID의 n개의 LSB와 동일한 이진값을 갖는 말단 노드를 탐색한다. 이 탐색은 루트 노드(NULL)에서 시작하여, 말단 노드가 발견될 때까지 파일 ID의 LSB값의 순서대로 트리의 노드를 따라간다.
파일 ID가 "11010010"인 경우, 노드의 깊이가 1인 노드 중에서 파일 ID의 1개의 LSB인 '0'과 일치하는 이진값을 갖는 노드 '0'이 먼저 탐색된다. 노드 '0'은 아직 말단 노드가 아니므로, 노드 '0'의 자식 노드들 중에서, 파일 ID의 2개의 LSB인 '10'과 일치하는 이진값을 갖는 노드 '10'이 탐색된다. 노드 '10' 역시 아직 말단 노드가 아니므로, 노드 '10'의 자식 노드들 중에서, 파일 ID의 3개의 LSB인 '010'과 일치하는 이진값을 갖는 노드 '010'이 탐색된다. 노드 '010'은 자식 노드를 갖지 않으므로 파일 ID "11010010"에 대한 말단 노드가 된다.
(3) (2)에서 발견된 말단 노드 010이 가리키는 헤더 블록 010에 새로운 객체 헤더가 들어갈 공간이 있는지 확인한다. 빈 공간이 있다면 파일 ID "11010010"인 파일의 객체 헤더를 헤더 블록 010에 저장하고 연산을 끝낸다.
(4) 도 3의 (b): 만약 빈 공간이 없다면 헤더 블록 010을 DRAM에 복사한다. DRAM에 복사된 헤더 블록 010은 플래시 메모리(20)에서 삭제한다.
(5) 도 3의 (c): 헤더 블록 010의 유효한 객체 헤더의 개수를 센다.
(6) 도 3의 (c): (5)의 계산 결과, 유효한 객체 헤더의 수가 헤더 블록 010의 소정 페이지 수 이상(예컨대 절반 이상)이면, 말단 노드 010의 2개의 자식 노드인 말단 노드 0010 및 말단 노드 1010을 전술한 이진 트리 규칙에 따라 생성하고, 헤더 블록 0010 및 헤더 블록 1010을 플래시 메모리(20)에 할당한다(도 3의 (c)).
(7) 도 3의 (d): 헤더 블록 010 내의 유효한 객체 헤더들 및 파일 ID가 "11010010"인 파일의 객체 헤더를 그들의 파일 ID에 따라 헤더 블록 0010 및 헤더 블록 1010에 나누어(예를 들어 절반씩) 저장한다. 즉 파일 ID의 LSB가 '0010'인 파일의 객체 헤더들은 헤더 블록 0010에 저장되고, 파일 ID의 LSB가 '1010'인 파일의 객체 헤더들은 헤더 블록 1010에 저장된다. 따라서 파일 ID "11010010"인 파일의 객체 헤더는 헤더 블록 0010에 저장된다.
(8) (5)의 계산 결과, 유효한 객체 헤더의 수가 헤더 블록 010의 페이지 수의 절반을 넘지 않으면, (4)에서 삭제되었던 헤더 블록 010을 다시 플래시 메모리(20) 내에 할당하고, 헤더 블록 010에 기존의 유효한 객체 헤더들과 파일 ID "11010010"인 파일의 객체 헤더를 저장한다.
(9) (4)에서 복사되었던 헤더 블록을 DRAM에서 지운다.
파일의 데이터를 변경하는 경우에는, 먼저 헤더 블록에 저장되어 있던 해당 파일의 객체 헤더를 무효로 설정한다. 이어서 헤더 블록에 빈 공간이 있을 경우에는, 변경된 객체 헤더를 (3)의 과정에 의해 헤더 블록의 빈 공간에 할당하고, 헤더 블록에 빈 공간이 없을 경우에는 (5)~(8)의 과정에 의해 헤더 블록을 할당한다.
3. 파일의 삭제에 따른 헤더 블록의 할당 처리
도 4를 참조하여, 플래시 파일의 삭제에 따른 헤더 블록의 할당 처리를 설명한다. 메모리 컨트롤러(30)는, 플래시 메모리(20)에 저장되어 있는 특정 플래시 파일의 삭제 명령에 응답하여, 하기의 "OBJECT_HEADER_DEL 연산 알고리즘"을 실행시킨다.
Figure 112008065677069-pat00002
상기 "OBJECT_HEADER_ADD 연산 알고리즘"에 의해 생성되었던, 파일 ID가 "11010010"인 파일을 삭제하려고 할 때, 상기 "OBJECT_HEADER_DEL 연산 알고리즘"은 다음과 같은 순서로 실행된다. 파일 ID "11010010"인 파일의 데이터는 암호화되어 있고, 복호화 키는 그 파일의 객체 헤더에 포함되어 있다. 또한, 파일 ID "11010010"의 객체 헤더는 헤더 블록 010에 저장되어 있다고 가정한다.
(1) 안전 삭제를 하려는 파일의 파일 ID "11010010"을 얻는다.
(2) 노드의 깊이가 n이고, 파일 ID의 n개의 LSB와 동일한 이진값을 갖는 말단 노드를 탐색한다. 이 탐색은 루트 노드(NULL)에서 시작하여, 말단 노드가 발견될 때까지 파일 ID의 LSB값의 순서대로 트리의 노드를 따라간다. 이 탐색에 의해 헤더 블록 010이 찾아진다.
(3) 도 4의 (a): (2)에서 찾은 헤더 블록 010을 DRAM에 복사한다. DRAM에 복사된 헤더 블록 010은 플래시 메모리(20)에서 삭제된다.
(4) 도 4의 (b): DRAM 내의 헤더 블록 010에 저장되어 있는 객체 헤더들 중, 파일 ID "11010010"을 갖는 객체 헤더를 무효(INVALID)로 설정한다.
(5) 도 4의 (c): (3)에서 삭제되었던 헤더 블록 010을 다시 플래시 메모리(20) 내에 할당하고, DRAM 내의 헤더 블록 010에 저장되어 있는 모든 유효한 객체 헤더들을 플래시 메모리(20) 내에 다시 할당된 헤더 블록 010에 저장한다.
(6) (3)에서 복사되었던 헤더 블록 010을 DRAM에서 지운다.
파일 ID "11010010"의 데이터 복호화 키를 포함하고 있던 객체 헤더가 (4)에서 무효로 설정되고, (6)에서 삭제되었기 때문에, 해당 파일의 데이터가 플래시 메모리(20)에 남아 있다고 하더라도, 해당 데이터를 복구할 수 없게 된다.
도 5에는 본 발명의 실시예에 따른 플래시 파일 안전 삭제 방법의 흐름도가 도시되어 있다. 도 5의 (a)에 도시된 바와 같이, 플래시 파일의 데이터는 암호화되어 플래시 메모리(20)의 데이터 블록에 저장되어 있고, 그 복호화 키는 객체 헤더에 포함되어 플래시 메모리(20)의 헤더 블록에 저장되어 있다.
도 5의 (b)의 흐름도에 따라 먼저, 삭제 대상인 플래시 파일의 ID를 얻는다(S110). 이어서 노드의 깊이가 n이고, 파일 ID의 n개의 LSB와 동일한 이진값을 갖는 말단 노드를 탐색한다(S120). 이 탐색은 루트 노드(NULL)에서 시작하여, 말단 노드가 발견될 때까지 파일 ID의 LSB값의 순서대로 트리의 노드를 따라간다. 단계 S120에서 찾은 말단 노드가 가리키는 헤더 블록을 DRAM에 복사하고, DRAM에 복사된 헤더 블록은 플래시 메모리(20)에서 삭제한다(S130). DRAM 내의 헤더 블록에 저장되어 있는 객체 헤더들 중, 삭제 대상 파일의 파일 ID를 갖는 객체 헤더를 무효(INVALID)로 설정한다(S140). 단계 S130에서 삭제되었던 헤더 블록을 다시 플래시 메모리(20) 내에 할당하고, DRAM 내의 헤더 블록에 저장되어 있는 모든 유효한 객체 헤더들을 플래시 메모리(20) 내에 다시 할당된 헤더 블록에 저장한다(S150). 단계 S130에서 복사되었던 헤더 블록을 DRAM에서 지운다(S160).
도 6의 그래프는, 본 발명의 실시예에 따른 파일 안전 삭제 방법과 종래예에 따른 파일 안전 삭제 방법의 실험 결과를 보여준다.
본 발명의 실시예에서는 메모리 컨트롤러(30)가 메모리 블록을 데이터 블록과 헤더 블록으로 나누어 관리하고, 데이터 블록에는 암호화된 데이터를 저장하고 헤더 블록에는 암호화된 데이터를 복호화하는데 필요한 복호화 키를 저장한다. 동 일한 파일 ID를 갖는 플래시 파일의 객체 헤더들은 모두 동일한 헤더 블록에 저장된다. 플래시 파일에 대한 삭제 명령에 응답하여 메모리 컨트롤러(30)는 해당 파일에 대응하는 헤더 블록에 있는 객체 헤더들을 모두 삭제한다. 종래예에서는, 플래시 파일에 대한 삭제 명령에 응답하여 플래시 메모리 전체에 걸쳐 산재해있는 해당 메모리 블록들을 찾아내어 삭제한다.
도 6의 실험 결과에 따르면, 종래예에 따른 파일 안전 삭제 방법에서는, 플래시 파일을 수정하는 빈도에 거의 정비례하여 메모리 블록의 삭제 횟수가 증가하는 반면, 본 발명의 실시예에 따른 파일 안전 삭제 방법에서는, 파일을 수정하는 빈도가 증가하더라도 메모리 블록의 삭제 횟수는 거의 증가하지 않는다. 따라서 메모리 블록의 삭제 조작에 대한 오버헤드가 상당히 큰 플래시 메모리에서 본 발명의 실시예에 따른 파일 안전 삭제 방법은 매우 유용하다.
앞서 설명한 본 발명의 실시예는 구체적인 구성과 도면에 의해 특정되었지만, 그러한 구체적인 실시예가 본 발명의 범위를 제한하는 것이 아니라는 점을 명확히 하고자 한다. 따라서, 본 발명은, 본 발명의 본질을 벗어나지 않는 다양한 변형예와 그 균등물들을 포함하는 것으로 이해되어야 한다.
예를 들어, 파일 ID의 n개의 MSB(Most Significant Bits)에 관하여 이진 트리를 구성하는 것도 본 발명의 범위에 속한다. 이 경우, 왼쪽 자식 노드에는 부모 노드의 이진값의 오른쪽에 0이 붙은 이진값이 할당되고, 오른쪽 자식 노드에는 부모 노드의 이진값의 오른쪽에 1이 붙은 이진값이 할당된다. 이때 자식 노드의 좌우 위치가 서로 바뀌어도 됨은 물론이다.
도 1은 본 발명의 실시예에 따른 플래시 메모리 장치의 구성도.
도 2는 헤더 블록 탐색에 이용되는 이진 트리의 구조도.
도 3a 내지 도 3d는 플래시 파일의 생성/변경 시의 헤더 블록의 할당을 설명하기 위한 개념도.
도 4a 내지 도 4c는 플래시 파일의 삭제 시의 헤더 블록의 할당을 설명하기 위한 개념도.
도 5는 본 발명의 실시예에 따른 플래시 파일 안전 삭제 방법의 흐름도.
도 6은 본 발명의 실시예에 따른 실험 결과를 보여주는 그래프.

Claims (20)

  1. 플래시 파일을 저장하기 위한 메모리 블록들로 구성된 플래시 메모리와,
    상기 메모리 블록들 중 데이터 블록에는 플래시 파일의 암호화된 데이터가 저장되고, 상기 메모리 블록들 중 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더가 저장되도록 상기 플래시 메모리를 제어하는 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는, 암호화된 데이터를 갖는 플래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭제하는, 플래시 메모리 장치.
  2. 청구항 1에 있어서, 상기 삭제 명령에 응답하여 상기 메모리 컨트롤러는, 상기 복호화 키를 포함하는 객체 헤더가 저장되어 있는 헤더 블록을 임시 저장 장치에 복사하고, 상기 헤더 블록을 상기 플래시 메모리에서 삭제하며, 상기 복사된 헤더 블록에서 상기 복호화 키를 포함하는 객체 헤더를 무효로 설정하고, 상기 삭제된 헤더 블록을 상기 플래시 메모리에 재할당하며, 상기 복사된 헤더 블록의 객체 헤더들 중에서 유효한 객체 헤더를 상기 재할당된 헤더 블록에 저장하는, 플래시 메모리 장치.
  3. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 동일한 파일 ID를 갖는 플래시 파일의 객체 헤더들을 동일한 헤더 블록에 저장하는, 플래시 메모리 장치.
  4. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB(Least Significant Bits)를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하고,
    또한, 상기 메모리 컨트롤러는, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하고, 상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는, 플래시 메모리 장치.
  5. 청구항 4에 있어서, 상기 메모리 컨트롤러는, 2개의 자식 노드들이 그 부모 노드의 이진값의 왼쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 메모리 장치.
  6. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 MSB(Most Significant Bits)를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하고,
    또한, 상기 메모리 컨트롤러는, 상기 말단 노드의 이진값을 상기 파일 ID의 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하고, 상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는, 플래시 메모리 장치.
  7. 청구항 6에 있어서, 상기 메모리 컨트롤러는, 2개의 자식 노드들이 그 부모 노드의 이진값의 오른쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 메모리 장치.
  8. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 상기 헤더 블록의 빈 공간에 상기 새롭게 생성된 플래시 파일의 객체 헤더를 저장하는, 플래시 메모리 장치.
  9. 청구항 8에 있어서, 상기 헤더 블록에 빈 공간이 없는 경우에 상기 메모리 컨트롤러는, 해당 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 2개의 새로운 헤더 블록에 나누어 저장하고, 상기 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 플래시 메모리에 새롭게 할당된 하나의 헤더 블록에 저장하는, 플래시 메모리 장치.
  10. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB 또는 MSB를 나타내는 이진값을 가지며 말단 노드의 이진값 은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하고,
    새롭게 생성된 플래시 파일의 저장 명령에 응답하여 상기 메모리 컨트롤러는, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB 또는 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하고,
    또한, 상기 헤더 블록에 빈 공간이 없는 경우에 상기 메모리 컨트롤러는, 해당 헤더 블록을 임시 저장 장치에 복사한 후 상기 플래시 메모리에서 삭제하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면, 상기 말단 노드의 2개의 자식 노드를 생성하고, 생성된 2개의 자식 노드가 각각 가리키는 2개의 헤더 블록을 상기 플래시 메모리 내에 할당하며, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 2개의 헤더 블록에 나누어 저장하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면, 상기 삭제된 헤더 블록을 상기 플래시 메모리 내에 재할당하고, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 재할당된 헤더 블록에 저장하는, 플래시 메모리 장치.
  11. 플래시 메모리의 데이터 블록에는 플래시 파일의 암호화된 데이터를 저장하고, 상기 플래시 메모리의 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 저장하는 단계와,
    암호화된 데이터를 갖는 플래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭 제하는 단계를 포함하는, 플래시 파일 안전 삭제 방법.
  12. 청구항 11에 있어서, 상기 삭제 단계는,
    상기 복호화 키를 포함하는 객체 헤더가 저장되어 있는 헤더 블록을 임시 저장 장치에 복사하는 단계와,
    상기 헤더 블록을 상기 플래시 메모리에서 삭제하는 단계와,
    상기 복사된 헤더 블록에서 상기 복호화 키를 포함하는 객체 헤더를 무효로 설정하는 단계와,
    상기 삭제된 헤더 블록을 상기 플래시 메모리에 재할당하는 단계와,
    상기 복사된 헤더 블록의 객체 헤더들 중에서 유효한 객체 헤더를 상기 재할당된 헤더 블록에 저장하는 단계를 포함하는, 플래시 파일 안전 삭제 방법.
  13. 청구항 11에 있어서, 상기 저장 단계는, 동일한 파일 ID를 갖는 플래시 파일의 객체 헤더들을 동일한 헤더 블록에 저장하는, 플래시 파일 안전 삭제 방법.
  14. 청구항 11에 있어서, 상기 저장 단계는,
    깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내도록 구성된 이진 트리를 구성하는 단계와, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블 록에 저장하는 단계를 포함하며,
    상기 삭제 단계는,
    상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는 단계를 포함하는, 플래시 파일 안전 삭제 방법.
  15. 청구항 14에 있어서, 상기 이진 트리를 구성하는 단계에서, 2개의 자식 노드들이 그 부모 노드의 이진값의 왼쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 파일 안전 삭제 방법.
  16. 청구항 11에 있어서, 상기 저장 단계는,
    깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 MSB를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내도록 구성된 이진 트리를 구성하는 단계와, 상기 말단 노드의 이진값을 상기 파일 ID의 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하는 단계를 포함하며,
    상기 삭제 단계는,
    상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는 단계를 포함하는, 플래시 파일 안전 삭제 방법.
  17. 청구항 16에 있어서, 상기 이진 트리를 구성하는 단계에서, 2개의 자식 노드 들이 그 부모 노드의 이진값의 오른쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 파일 안전 삭제 방법.
  18. 청구항 11에 있어서, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 상기 헤더 블록의 빈 공간에 상기 새롭게 생성된 플래시 파일의 객체 헤더를 저장하는 단계를 더 포함하는, 플래시 파일 안전 삭제 방법.
  19. 청구항 18에 있어서, 상기 새롭게 생성된 플래시 파일의 객체 헤더를 저장하는 상기 단계에서, 상기 헤더 블록에 빈 공간이 없는 경우에, 해당 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 2개의 새로운 헤더 블록에 나누어 저장하고, 상기 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 플래시 메모리에 새롭게 할당된 하나의 헤더 블록에 저장하는, 플래시 파일 안전 삭제 방법.
  20. 청구항 11에 있어서, 상기 저장 단계는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB 또는 MSB를 나타내는 이진값을 가지며 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하는 단계와, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB 또는 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하는 단계를 포함하고,
    상기 헤더 블록에 빈 공간이 없는 경우에는, 해당 헤더 블록을 임시 저장 장치에 복사한 후 상기 플래시 메모리에서 삭제하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면, 상기 말단 노드의 2개의 자식 노드를 생성하고, 생성된 2개의 자식 노드가 각각 가리키는 2개의 헤더 블록을 상기 플래시 메모리 내에 할당하며, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 2개의 헤더 블록에 나누어 저장하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면, 상기 삭제된 헤더 블록을 상기 플래시 메모리 내에 재할당하고, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 재할당된 헤더 블록에 저장하는, 플래시 파일 안전 삭제 방법.
KR1020080091545A 2007-12-27 2008-09-18 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법 KR100941368B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/256,331 US8117377B2 (en) 2007-12-27 2008-10-22 Flash memory device having secure file deletion function and method for securely deleting flash file

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20070138650 2007-12-27
KR1020070138650 2007-12-27

Publications (2)

Publication Number Publication Date
KR20090071348A KR20090071348A (ko) 2009-07-01
KR100941368B1 true KR100941368B1 (ko) 2010-02-11

Family

ID=41322776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080091545A KR100941368B1 (ko) 2007-12-27 2008-09-18 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법

Country Status (1)

Country Link
KR (1) KR100941368B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101284465B1 (ko) * 2013-03-26 2013-07-09 서울과학기술대학교 산학협력단 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체
US9342257B2 (en) 2012-10-30 2016-05-17 Samsung Electronics Co., Ltd. Computer system having main memory and control method thereof
WO2024034997A1 (ko) * 2022-08-09 2024-02-15 박종성 단말장치 및 이를 이용한 데이터를 복구 불가능하게 삭제하는 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231592B1 (ko) * 2011-04-18 2013-02-08 고려대학교 산학협력단 안전한 삭제를 위한 플래시 메모리 제어 장치 및 방법
US20200387633A1 (en) * 2019-06-07 2020-12-10 Lenovo (Singapore) Pte. Ltd. Apparatus, method, and program product for securing personal information in a file

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832493A (en) 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
KR100251636B1 (ko) 1997-04-10 2000-05-01 윤종용 소형컴퓨터시스템인터페이스방식접속을위한메모리장치
KR20040044023A (ko) * 2002-11-20 2004-05-27 엘지엔시스(주) 메모리 데이터 관리장치 및 방법
KR100703680B1 (ko) 1999-10-14 2007-04-05 삼성전자주식회사 플래시 파일 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100251636B1 (ko) 1997-04-10 2000-05-01 윤종용 소형컴퓨터시스템인터페이스방식접속을위한메모리장치
US5832493A (en) 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
KR100703680B1 (ko) 1999-10-14 2007-04-05 삼성전자주식회사 플래시 파일 시스템
KR20040044023A (ko) * 2002-11-20 2004-05-27 엘지엔시스(주) 메모리 데이터 관리장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342257B2 (en) 2012-10-30 2016-05-17 Samsung Electronics Co., Ltd. Computer system having main memory and control method thereof
KR101284465B1 (ko) * 2013-03-26 2013-07-09 서울과학기술대학교 산학협력단 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체
WO2024034997A1 (ko) * 2022-08-09 2024-02-15 박종성 단말장치 및 이를 이용한 데이터를 복구 불가능하게 삭제하는 방법

Also Published As

Publication number Publication date
KR20090071348A (ko) 2009-07-01

Similar Documents

Publication Publication Date Title
US8117377B2 (en) Flash memory device having secure file deletion function and method for securely deleting flash file
US20230195654A1 (en) Namespace encryption in non-volatile memory devices
US9043614B2 (en) Discarding sensitive data from persistent point-in-time image
US8250380B2 (en) Implementing secure erase for solid state drives
US7856451B2 (en) Selective file erasure using metadata modifications
JP4991320B2 (ja) ホスト装置およびメモリシステム
US8762431B2 (en) System and method for secure erase in copy-on-write file systems
WO2007075966A2 (en) Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems
KR100941368B1 (ko) 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법
JP2009244962A (ja) メモリシステム
US10146782B1 (en) Secure erasure of files by a filesystem
JP5007248B2 (ja) スナップショットを管理する記憶制御装置及び方法
JP2015172959A (ja) フラッシュメモリのアクセス方法
CN104751076A (zh) 一种恢复磁盘数据的方法
KR101467227B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
Li et al. TASecure: Temperature-aware secure deletion scheme for solid state drives
US11132134B2 (en) Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
KR101648262B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
Tiwari et al. Secure Wipe Out in BYOD Environment
Khouzani et al. Architecting data placement in SSDs for efficient secure deletion implementation
Hsieh et al. PRESS: Persistence Relaxation for Efficient and Secure Data Sanitization on Zoned Namespace Storage
CN111913915A (zh) 文件隐藏方法和装置
KR101970874B1 (ko) 비휘발성 메모리 저장 장치를 위한 하이브리드 해시 인덱스
CN104794062A (zh) 一种磁盘读取方法
US10740015B2 (en) Optimized management of file system metadata within solid state storage devices (SSDs)

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee