KR20090071348A - Flash memory device having secure file deletion function and method for securely deleting flash file - Google Patents

Flash memory device having secure file deletion function and method for securely deleting flash file Download PDF

Info

Publication number
KR20090071348A
KR20090071348A KR1020080091545A KR20080091545A KR20090071348A KR 20090071348 A KR20090071348 A KR 20090071348A KR 1020080091545 A KR1020080091545 A KR 1020080091545A KR 20080091545 A KR20080091545 A KR 20080091545A KR 20090071348 A KR20090071348 A KR 20090071348A
Authority
KR
South Korea
Prior art keywords
header
file
flash
header block
block
Prior art date
Application number
KR1020080091545A
Other languages
Korean (ko)
Other versions
KR100941368B1 (en
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/en
Application granted granted Critical
Publication of KR100941368B1 publication Critical patent/KR100941368B1/en

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (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

A flash memory device having a secure file deletion function and a method for securely deleting a flash file are provided to store encoded data and a decoding key in a separate memory block and disable recovery of the encoded data through deletion of the decoding key, thereby guaranteeing quick and secure deletion of a flash file. An end node having the same binary value as LSB(Least Significant Bits) of file ID of a flash file which is a deletion target is searched(S120). A header block indicating the end node is copied to a DRAM(Dynamic Random Access Memory). An object header having the file ID of a deletion target file is set invalid(S140). Effective object headers are stored in the header block(S150). The copied header block is deleted from the DRAM(S160).

Description

파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시 파일 안전 삭제 방법{FLASH MEMORY DEVICE HAVING SECURE FILE DELETION FUNCTION AND METHOD FOR SECURELY DELETING FLASH FILE}FLASH MEMORY DEVICE HAVING SECURE FILE DELETION FUNCTION AND METHOD FOR SECURELY DELETING FLASH FILE}

본 발명은 플래시 메모리 장치 및 플래시 파일 삭제 방법에 관한 것으로서, 특히 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시 파일 안전 삭제 방법에 관한 것이다.The present invention relates to a flash memory device and a flash file deleting method, and more particularly, to a flash memory device having a file safe deletion function and a flash file safe deletion method.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-039-02, 과제명: 임베디드 보안 운영체제 기술개발(Embedded Secure Operating System Technology Development)].The present invention is derived from the research conducted as part of the IT growth engine technology development project of the Ministry of Information and Communication and the Ministry of Information and Communication Research and Development. [Task management number: 2006-S-039-02, Title: Development of embedded security operating system technology Secure Operating System Technology Development)].

대부분의 파일 시스템에서는, 파일 삭제 명령에 의해 해당 파일에 대한 메타 데이터가 삭제되거나 변경되지만, 파일의 데이터 자체는 삭제되지 않고 물리 매체에 그대로 존재한다. 따라서 지워진 파일을 복구하는 것이 가능하다. 그러나 이러한 복구를 원하지 않는 사용자도 있다. 이러한 요구는 플래시 메모리를 저장 매체로 사용하는 임베디드 시스템에서 더욱 증가하고 있다.In most file systems, the metadata for the file is deleted or changed by the file delete command, but the data of the file itself is not deleted but remains on the physical medium. Thus it is possible to recover erased files. However, some users do not want this recovery. This demand is growing in embedded systems that use flash memory as a storage medium.

자기 기록 매체(Magnetic Media)에서 안전하게 데이터를 삭제하는 방법이 알려져 있다. 이 방법은, 데이터를 삭제하기 위해 다른 비트 패턴을 해당 데이터에 덮어씌우는 기법(overwriting)을 사용하고 있다. 구체적으로 이 기법은 4번의 랜덤 비트 패턴으로 데이터를 덮어씌우는 작업, 이어서 27번의 미리 정해진 패턴으로 데이터를 덮어씌우는 작업, 마지막으로 다시 4번의 랜덤 비트 패턴으로 데이터를 덮어씌우는 작업으로 이루어진다. 따라서 총 35회의 덮어쓰기가 행해진다.A method of securely deleting data from a magnetic recording medium is known. This method uses overwriting to overwrite other bit patterns with data to delete the data. Specifically, this technique consists of overwriting data with 4 random bit patterns, then overwriting data with 27 predetermined patterns, and finally overwriting data with 4 random bit patterns. Therefore, a total of 35 overwrites are performed.

자기 디스크(Magnetic Disk)에서 안전하게 데이터를 삭제하기 위한 방법도 제안되어 있다. 미국방성의 DoD 5220 22-M 방식은, 임의의 비트 패턴으로 데이터를 덮어씌우고, 이어서 그 임의의 비트 패턴의 보수로 데이터를 덮어씌운 다음, 다시 임의의 비트 패턴으로 데이터를 덮어씌우는 작업을 7번 반복한다. 따라서 총 21회의 덮어쓰기가 행해진다.A method for safely deleting data from a magnetic disk has also been proposed. The DoD 5220 22-M method of the Department of Defense overwrites data with an arbitrary bit pattern, then overwrites the data with the complement of the arbitrary bit pattern, and then overwrites the data with an arbitrary bit pattern seven times. Repeat. Therefore, a total of 21 overwrites are performed.

플래시 메모리에 기록되어 있는 데이터를 다른 데이터로 바꿔서 기록하기 위해서는, 삭제 연산이 선행되어야 한다. 플래시 메모리에서의 데이터 삭제 작업은, 블록 단위로 수행되고 기록 작업은 페이지 단위로 수행된다. 일반적으로 블록은 512바이트 크기의 32개의 페이지, 또는 2048바이트 크기의 64개의 페이지로 구성된다. 이러한 기록 단위와 삭제 단위의 불일치 때문에, 플래시 파일 시스템에서는 로그 기반 구조(log-structured) 파일 시스템이 일반적으로 사용된다.In order to replace the data recorded in the flash memory with other data, the erase operation must be preceded. Data erase operations in the flash memory are performed in units of blocks and write operations are performed in units of pages. In general, a block consists of 32 pages of 512 bytes or 64 pages of 2048 bytes. Because of this discrepancy between write and delete units, log-structured file systems are commonly used in flash file systems.

로그 기반 구조 파일 시스템에서 파일을 수정할 때에는, 수정 전의 파일이 삭제되지 않고 무효 표시(invalid)만 된 후, 새로운 페이지에 수정 후의 파일 내용이 기록된다. 또한, 로그 기반 구조 파일 시스템에서는, 전체 파일 시스템을 탐색 하여 무효화된 페이지를 함께 삭제함으로써 안전 삭제를 실현한다.When a file is modified in the log-based file system, the file before the modification is not deleted but only invalid, and then the contents of the file are recorded in a new page. In addition, in the log-based structure file system, secure deletion is realized by searching the entire file system and deleting invalidated pages together.

자기 기록 매체 또는 자기 디스크에 대해 위와 같은 다단계의 과정을 거쳐 데이터를 삭제한다고 하더라도, 지워진 데이터에 자기적인 잔상이 남을 수 밖에 없다. 따라서 데이터에 다른 비트 패턴을 덮어씌우는 방식으로 해당 데이터를 삭제해도 디스크의 약한 자기장의 흔적을 검출할 수 있는 장비로 원래의 데이터를 추출할 수 있다.Even if data is deleted through the above-described multi-step process for the magnetic recording medium or the magnetic disk, magnetic afterimage remains in the erased data. Therefore, the original data can be extracted with a device that can detect traces of the weak magnetic field of the disk even if the corresponding data is deleted by overwriting the other bit patterns.

또한, 종래의 데이터 안전 삭제 방법은, 자기 기록 매체 또는 자기 디스크에 관한 것이어서, 자기 매체와는 구조적으로 전혀 다른 플래시 메모리로부터 데이터를 안전하게 삭제하는 방법에 그대로 적용할 수 없다.Further, the conventional data safe erasing method relates to a magnetic recording medium or a magnetic disk, and thus cannot be applied to a method of safely erasing data from a flash memory that is structurally different from the magnetic medium.

또한, 플래시 파일 시스템, 즉 로그 기반 구조 파일 시스템에서 안전하게 파일을 삭제하는 종래의 방법은 비효율적이다. 왜냐하면, 안전 삭제를 위해 전체 파일 시스템을 탐색하여 무효화된 페이지를 함께 삭제해야 하기 때문이다.In addition, the conventional method of securely deleting files in a flash file system, that is, a log-based file system, is inefficient. This is because you must search the entire file system and delete the invalidated pages together for safe deletion.

본 발명의 목적은, 암호화 및 파일의 객체 헤더 블록 관리를 통해, 전체 파일 시스템을 탐색하지 않고서도 신속하고 안전하게 파일을 삭제하는 방법 및 장치를 제공하는 것이다.It is an object of the present invention to provide a method and apparatus for quickly and securely deleting files without having to navigate the entire file system through encryption and object header block management of files.

본 발명은 플래시 메모리 기반 파일 시스템에서 안전하게 파일을 삭제하는 방법을 제공한다. 이를 위해 본 발명의 발명자들은, 임베디드 시스템에서 가장 일반적으로 사용되는 파일 시스템인 YAFFS(Yet Another Flash File System)를 변경하여 안전 삭제 기능을 가진 플래시 메모리용 파일 시스템을 설계하였다. 그러나 본 발명은 YAFFS에만 국한되는 것은 아니며, 다른 형태의 플래시 파일 시스템에도 적용될 수 있음은 물론이다.The present invention provides a method for securely deleting files in a flash memory based file system. To this end, the inventors of the present invention designed a file system for a flash memory having a safe erase function by changing a YAFFS (YetFS) which is a file system most commonly used in an embedded system. However, the present invention is not limited to YAFFS and can be applied to other types of flash file systems.

본 발명은 암호화를 기반으로 하고 있으며, 특정 파일을 암호화하는 데 사용된 복호화 키를 삭제함으로써 파일의 안전 삭제를 실현한다. 또한, 본 발명은, 복호화 키를 포함한 파일의 메타 데이터를 갖고 있는 객체 헤더와, 파일의 실제 내용인 데이터를 헤더 블록과 데이터 블록에 각각 별도로 저장한다. 따라서 파일 삭제를 위해 전체 파일 시스템을 탐색할 필요없이, 헤더 블록에서 삭제 대상 객체 헤더만 찾아내어 삭제할 수 있으므로, 삭제에 필요한 처리 시간이 대폭 단축된다. 또한, 본 발명은, 안전 삭제가 필요한 파일을 쉽고 빠르게 찾을 수 있는 이진 트리 기법을 제공한다.The present invention is based on encryption and realizes secure deletion of a file by deleting a decryption key used to encrypt a particular file. In addition, the present invention separately stores an object header having metadata of a file including a decryption key and data which is the actual content of the file in a header block and a data block, respectively. Therefore, it is possible to find and delete only the object header to be deleted from the header block without having to search the entire file system for file deletion, which greatly reduces the processing time required for deletion. In addition, the present invention provides a binary tree technique that can quickly and easily find a file that requires safe deletion.

구체적으로, 상기와 같은 목적을 달성하기 위해, 본 발명의 플래시 메모리 장치는, 플래시 파일을 저장하기 위한 메모리 블록들로 구성된 플래시 메모리와, 상기 메모리 블록들 중 데이터 블록에는 플래시 파일의 암호화된 데이터가 저장되고, 상기 메모리 블록들 중 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더가 저장되도록 상기 플래시 메모리를 제어하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는, 암호화된 데이터를 갖는 플 래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭제한다.Specifically, in order to achieve the above object, the flash memory device of the present invention, a flash memory consisting of memory blocks for storing a flash file, and the data block of the memory block in the encrypted data of the flash file And a memory controller configured to control the flash memory to store an object header including a decryption key for decrypting the encrypted data in a header block of the memory blocks, wherein the memory controller stores the encrypted data. In response to the delete command of the flash file, the object header including the decryption key for decrypting the encrypted data is deleted from the header block.

또한, 상기와 같은 목적을 달성하기 위해, 본 발명의 플래시 파일 안전 삭제 방법은, 플래시 메모리의 데이터 블록에는 플래시 파일의 암호화된 데이터를 저장하고, 상기 플래시 메모리의 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 저장하는 단계와, 암호화된 데이터를 갖는 플래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭제하는 단계를 포함한다.In addition, in order to achieve the above object, according to the flash file safe erasing method of the present invention, the encrypted data of the flash file is stored in the data block of the flash memory, and the encrypted data is decrypted in the header block of the flash memory. Storing an object header including a decryption key to delete the object header including a decryption key for decrypting the encrypted data in response to a delete command of the flash file having encrypted data; Steps.

본 발명의 이와 같은 구성에 따르면, 암호화된 데이터와 복호화 키를 별도의 메모리 블록에 저장하고, 삭제 시에는 복화화 키만을 삭제하면 암호화된 데이터의 복구를 불가능하게 할 수 있으므로, 플래시 파일의 안전 삭제가 빠르고 쉽게 달성된다. 플래시 메모리의 경우, 삭제 조작을 위한 오버헤드(overhead)가 상당히 크기 때문에 암호화에 따른 오버헤드가 생기더라도 삭제 조작 회수를 줄이는 것이 훨씬 효율적이다.According to this configuration of the present invention, if the encrypted data and the decryption key are stored in separate memory blocks, and only the decryption key is deleted at the time of deletion, recovery of the encrypted data may be impossible, thereby safely deleting the flash file. Is achieved quickly and easily. In the case of flash memory, since the overhead for the delete operation is quite large, it is much more efficient to reduce the number of delete operations even if an encryption overhead occurs.

이때, 상기 삭제는, 상기 복호화 키를 포함하는 객체 헤더가 저장되어 있는 헤더 블록을 임시 저장 장치에 복사하는 단계와, 상기 헤더 블록을 상기 플래시 메모리에서 삭제하는 단계와, 상기 복사된 헤더 블록에서 상기 복호화 키를 포함하는 객체 헤더를 무효로 설정하는 단계와, 상기 삭제된 헤더 블록을 상기 플래시 메모리에 재할당하는 단계와, 상기 복사된 헤더 블록의 객체 헤더들 중에서 유효한 객체 헤더를 상기 재할당된 헤더 블록에 저장하는 단계를 포함할 수 있다.In this case, the deleting may include copying a header block in which the object header including the decryption key is stored, to the temporary storage device, deleting the header block from the flash memory, and in the copied header block, Invalidating an object header including a decryption key, reassigning the deleted header block to the flash memory, and valid object header among the object headers of the copied header block; Storing in a block.

또한, 동일한 파일 ID를 갖는 플래시 파일의 객체 헤더들은 동일한 헤더 블록에 저장하는 것이 바람직하다. 따라서 시스템 전체를 탐색하지 않고서 하나의 헤더 블록에서만 원하는 객체 헤더를 한꺼번에 삭제할 수 있으므로 신속하고 안전한 플래시 파일의 삭제가 보장된다. 로그 기반 구조 파일 시스템에서는 하나의 파일에 여러 개의 객체 헤더가 있을 수 있다. 따라서 파일 삭제를 위해서는 유효 객체 헤더 뿐만 아니라 기존에 무효화되어 있는 무효 객체 헤더들도 모두 찾아서 삭제해야 한다. 본 발명에 따르면, 동일한 플래시 파일에 대한 객체 헤더들이 모두 하나의 헤더 블록에 모여 있기 때문에, 신속한 파일 안전 삭제가 보장된다.In addition, it is preferable to store object headers of a flash file having the same file ID in the same header block. Therefore, you can delete the desired object headers in only one header block at a time without having to navigate the entire system, ensuring fast and safe flash file deletion. In a log-based file system, there can be multiple object headers in a file. Therefore, to delete a file, not only the valid object header but also all invalid object headers that have been invalidated must be found and deleted. According to the present invention, since the object headers for the same flash file are all gathered in one header block, fast file safe deletion is ensured.

또한, 본 발명의 플래시 메모리 장치 및 플래시 파일 안전 삭제 방법은, 헤더 블록 탐색을 위해 파일 ID와 연관된 이진값을 갖는 노드들로 구성된 이진 트리가 활용된다. 따라서 신속한 헤더 블록 탐색이 보장된다.In addition, in the flash memory device and the flash file safe erasing method of the present invention, a binary tree composed of nodes having a binary value associated with a file ID is used for a header block search. Therefore, fast header block search is guaranteed.

본 발명에 따르면, 암호화된 데이터와 복호화 키를 별도의 메모리 블록에 저장하고, 삭제 시에는 복화화 키만을 삭제하면 암호화된 데이터의 복구를 불가능하게 할 수 있으므로, 플래시 파일의 신속한 안전 삭제가 보장된다.According to the present invention, if the encrypted data and the decryption key are stored in separate memory blocks, and only the decryption key is deleted at the time of deletion, recovery of the encrypted data can be impossible, thereby ensuring safe safe deletion of the flash file. .

또한, 본 발명에 따르면, 시스템 전체를 탐색하지 않고서 하나의 헤더 블록에서만 원하는 객체 헤더를 한꺼번에 삭제할 수 있으므로 신속하고 안전한 플래시 파일의 삭제가 보장된다.In addition, according to the present invention, since the desired object header can be deleted at one time only in one header block without searching the entire system, the fast and safe deletion of the flash file is guaranteed.

또한, 본 발명에 따르면, 파일 ID와 연관된 이진값을 갖는 노드들로 구성된 이진 트리를 헤더 블록 탐색에 활용함으로써 신속한 헤더 블록 탐색이 보장된다.In addition, according to the present invention, a fast header block search is ensured by utilizing a binary tree composed of nodes having a binary value associated with a file ID in the header block search.

이하에서는, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention.

도 1에는 본 발명의 실시예에 따라 플래시 파일을 안전하게 삭제하는 기능을 갖는 플래시 메모리 장치(10)가 개시되어 있다. 플래시 메모리 장치(10)는 플래시 메모리(20)와 메모리 컨트롤러(30)를 포함한다. 플래시 메모리 장치(10)가 USB 플래시 드라이브인 경우에는, 외부 장치와의 사이에서 파일 및 제어 신호를 주고 받기 위한 커넥터를 더 포함한다.1 illustrates a flash memory device 10 having a function of securely deleting a flash file according to an embodiment of the present invention. The flash memory device 10 includes a flash memory 20 and a memory controller 30. When the flash memory device 10 is a USB flash drive, the flash memory device 10 further includes a connector for exchanging files and control signals with an external device.

플래시 메모리(20)는, 플래시 파일을 저장하기 위한 다수의 메모리 블록들로 구성되어 있으며, 예를 들어 NAND 게이트 플래시 메모리일 수 있지만 그것에 국한되는 것은 아니다. 각 메모리 블록은 512바이트 크기의 32개의 페이지로 구성될 수 있다.The flash memory 20 is composed of a plurality of memory blocks for storing a flash file, and may be, for example, but not limited to, a NAND gate flash memory. Each memory block may consist of 32 pages of 512 bytes in size.

메모리 컨트롤러(30)는, 메모리 블록들이 데이터 블록과 헤더 블록으로 구분되어 사용되도록 플래시 메모리(20)를 제어한다. 데이터 블록에는 플래시 파일의 실제 내용인 데이터가 저장된다. 헤더 블록에는 플래시 파일의 파일 ID, 해당 파일의 데이터가 저장되어 있는 데이터 블록의 위치 등을 포함하는 메타 데이터를 갖는 객체 헤더가 저장된다.The memory controller 30 controls the flash memory 20 so that the memory blocks are divided into data blocks and header blocks. The data block stores data which is the actual content of the flash file. The header block stores an object header having metadata including a file ID of a flash file, a location of a data block in which data of the file is stored, and the like.

또한, 메모리 컨트롤러(30)는 플래시 파일의 데이터를 암호화하여 데이터 블 록에 저장하고, 암호화된 데이터를 복호화하기 위한 복호화 키는 해당 플래시 파일의 객체 헤더에 포함시켜 헤더 블록에 저장한다. 플래시 파일을 삭제할 때에는, 해당 플래시 파일의 복호화 키만 헤더 블록에서 삭제함으로써 플래시 파일을 신속하고 안전하게 삭제할 수 있다.In addition, the memory controller 30 encrypts the data of the flash file and stores it in the data block, and the decryption key for decrypting the encrypted data is included in the object header of the corresponding flash file and stored in the header block. When deleting a flash file, the flash file can be deleted quickly and safely by deleting only the decryption key of the flash file from the header block.

이하에서는, 플래시 파일을 생성/변경하고 플래시 파일을 삭제하는 메모리 컨트롤러(30)의 동작에 대해 자세히 설명한다.Hereinafter, an operation of the memory controller 30 that creates / changes a flash file and deletes the flash file will be described in detail.

1. 헤더 블록 탐색을 위한 이진 트리1. Binary Tree for Header Block Search

도 2에는 메모리 컨트롤러(30)에 의해 행해지는 헤더 블록 탐색을 위한 이진 트리가 도시되어 있다. 이진 트리는 DRAM과 같은 내부 메모리에 유지되어 있으며, 새롭게 생성된 객체 헤더가 저장될 헤더 블록을 탐색하고, 삭제할 객체 헤더가 위치하는 헤더 블록을 탐색하는 데 이용된다.2 shows a binary tree for header block search performed by the memory controller 30. The binary tree is maintained in internal memory, such as DRAM, and is used to search for a header block in which a newly created object header is to be stored, and to search for a header block in which an object header to be deleted is located.

이진 트리의 최상위층은 NULL값을 갖는다. 부모 노드의 왼쪽 자식 노드에는 부모 노드의 이진값의 왼쪽에 0이 붙고, 오른쪽 자식 노드에는 부모 노드의 이진값의 왼쪽에 1이 붙는다. 이와 같은 규칙에 따라 이진 트리의 전체 노드가 형성되고, 각 노드에 대한 탐색이 편리하게 행해진다. 이때 자식 노드의 좌위 위치가 서로 바뀌어도 됨은 물론이다.The top layer of the binary tree has a NULL value. The left child node of the parent node has a zero on the left of its parent's binary value, and the right child node has a one on its left's binary value. According to such a rule, all nodes of the binary tree are formed, and the search for each node is conveniently performed. At this time, the positions of the child nodes may be interchanged.

이진 트리의 각 노드에 표시된 이진값은 헤더 블록의 플래시 메모리(20) 내의 위치를 가리키는 포인터로서, 파일 ID의 n개의 LSB(Least Significant Bits)에 해당한다. 헤더 블록은, 플래시 메모리(20)에서 말단 노드의 포인터가 가리키는 위 치에 존재한다.The binary value indicated at each node of the binary tree is a pointer indicating a position in the flash memory 20 of the header block and corresponds to n Least Significant Bits (LSBs) of the file ID. The header block is located at the location indicated by the pointer of the end node in the flash memory 20.

예를 들어 말단 노드 '010'은, 파일 ID의 LSB가 '010'인 파일에 대응하는 객체 헤더가 저장되어 있는 헤더 블록을 가리킨다. 따라서 새롭게 생성된 객체 헤더를 헤더 블록에 저장하려고 할 때, 파일 ID의 n개의 LSB는 노드의 깊이가 n인 말단 노드의 이진값과 같아야 한다. 즉 파일 ID의 LSB가 '010'인 파일에 대응하는 객체 헤더는, '010'의 이진값을 갖는 말단 노드가 가리키는 헤더 블록에 저장된다. For example, the end node '010' indicates a header block in which an object header corresponding to a file whose LSB of the file ID is '010' is stored. Therefore, when trying to store the newly created object header in the header block, n LSBs of the file ID must be equal to the binary value of the end node whose node depth is n. In other words, the object header corresponding to the file whose LSB of the file ID is '010' is stored in a header block indicated by an end node having a binary value of '010'.

그러나 헤더 블록의 저장 공간이 부족한 경우, 블록 관리부(11)는 '010'의 말단 노드의 자식 노드들 '0010' 및 '1010'을 생성하고, 생성된 자식 노드들이 가리키는 플래시 메모리(20) 내의 위치에 2개의 새로운 헤더 블록을 생성한다. 노드 '010'이 가리켰던 헤더 블록에 저장되어 있던 객체 헤더들과 새롭게 생성되었던 객체 헤더는 2개의 새로운 헤더 블록에 나누어 저장된다. '010'이 가리켰던 헤더 블록은 삭제된다.However, when the storage space of the header block is insufficient, the block manager 11 generates child nodes '0010' and '1010' of the end node of '010', and the location in the flash memory 20 indicated by the generated child nodes. Create two new header blocks in. The object headers stored in the header block pointed to by node '010' and the newly created object header are stored in two new header blocks. The header block indicated by '010' is deleted.

한편, 노드 '10'이 가리키는 헤더 블록은 플래시 메모리에 존재하지 않는다. 후술하는 바와 같이, 노드 '10'의 자식 노드들 '010' 및 '110'이 생성되면서 노드 '10'이 가리키는 헤더 블록이 삭제되기 때문이다.Meanwhile, the header block indicated by the node '10' does not exist in the flash memory. As will be described later, the header blocks indicated by the node '10' are deleted while the child nodes '010' and '110' of the node '10' are generated.

이와 같은 방식으로 이진 트리를 구성하면, 동일한 파일 ID를 갖는 객체 헤더들은 모두 동일한 헤더 블록에 저장된다. 따라서 삭제 대상 플래시 파일과 관련된 객체 헤더가 저장되어 있는 하나의 헤더 블록만 상기 이진 트리 규칙에 따라 찾아내면 되기 때문에, 신속한 탐색 및 삭제가 보장된다.By constructing a binary tree in this way, all object headers with the same file ID are stored in the same header block. Therefore, only one header block in which the object header associated with the flash file to be deleted needs to be found according to the binary tree rule, thereby ensuring fast searching and deleting.

이하에서는, 이진값 "X"를 갖는 말단 노드를 "말단 노드 X"로 표시하고, 말 단 노드 X가 가리키는 헤더 블록을 "헤더 블록 X"로 표시한다.In the following description, an end node having a binary value "X" is represented by "end node X", and a header block indicated by the end node X is represented by "header block X".

2. 파일의 생성/변경에 따른 헤더 블록의 할당 처리2. Header block allocation process according to file creation / modification

도 3을 참조하여, 새롭게 생성된 객체 헤더를 대응하는 헤더 블록에 할당하는 처리를 설명한다. 메모리 컨트롤러(30)는, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 하기의 "OBJECT_HEADER_ADD 연산 알고리즘"을 실행시켜 헤더 블록의 할당 처리를 수행한다. 이 알고리즘은 새로운 파일이 생성되거나 기존의 파일이 변경될 때 발생한다.Referring to Fig. 3, the process of assigning the newly generated object header to the corresponding header block will be described. The memory controller 30 executes the following "OBJECT_HEADER_ADD arithmetic algorithm" in response to a newly generated flash file storage command to perform a header block allocation process. This algorithm occurs when a new file is created or an existing file is changed.

[OBJECT_HEADER_ADD 연산 알고리즘][OBJECT_HEADER_ADD arithmetic algorithm]

Figure 112008065677069-PAT00001
Figure 112008065677069-PAT00001

도 2와 같이 이진 트리가 구성되어 있는 상태에서, 파일 ID가 "11010010"인 파일을 생성하려고 할 때, 상기 알고리즘은 다음과 같은 순서로 실행된다. 파일 ID "11010010"인 파일의 데이터는 암호화되어 있고, 복호화 키 및 파일 ID는 그 파일의 객체 헤더에 포함되어 있다.In the state where the binary tree is constructed as shown in FIG. 2, when the file having the file ID of "11010010" is to be generated, the algorithm is executed in the following order. The data of the file having the file ID "11010010" is encrypted, and the decryption key and the file ID are included in the object header of the file.

(1) 생성하려는 파일의 파일 ID "11010010"을 얻는다.(1) Obtain the file ID "11010010" of the file to be created.

(2) 도 3의 (a): 노드의 깊이가 n이고, 파일 ID의 n개의 LSB와 동일한 이진값을 갖는 말단 노드를 탐색한다. 이 탐색은 루트 노드(NULL)에서 시작하여, 말단 노드가 발견될 때까지 파일 ID의 LSB값의 순서대로 트리의 노드를 따라간다. (2) Fig. 3 (a): The end node having a depth of n and having a binary value equal to n LSBs of a file ID is searched for. This search starts at the root node (null) and follows the nodes of the tree in the order of the LSB value of the file ID until the end node is found.

파일 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"에 대한 말단 노드가 된다.When the file ID is "11010010", the node '0' having a binary value matching '0' which is one LSB of the file ID among the nodes having a node depth of 1 is searched first. Since node '0' is not yet an end node, among the child nodes of node '0', node '10' having a binary value matching two LSBs of file ID '10' is searched for. Since the node '10' is not yet an end node, among the child nodes of the node '10', the node '010' having a binary value matching the three LSBs of the file ID '010' is searched for. Node '010' has no child nodes and thus becomes an end node for file ID "11010010".

(3) (2)에서 발견된 말단 노드 010이 가리키는 헤더 블록 010에 새로운 객체 헤더가 들어갈 공간이 있는지 확인한다. 빈 공간이 있다면 파일 ID "11010010"인 파일의 객체 헤더를 헤더 블록 010에 저장하고 연산을 끝낸다.(3) Check whether there is space for the new object header in header block 010 pointed to by end node 010 found in (2). If there is an empty space, the object header of the file having the file ID "11010010" is stored in the header block 010, and the operation ends.

(4) 도 3의 (b): 만약 빈 공간이 없다면 헤더 블록 010을 DRAM에 복사한다. DRAM에 복사된 헤더 블록 010은 플래시 메모리(20)에서 삭제한다.(4) FIG. 3B: If there is no free space, the header block 010 is copied to the DRAM. The header block 010 copied to the DRAM is deleted from the flash memory 20.

(5) 도 3의 (c): 헤더 블록 010의 유효한 객체 헤더의 개수를 센다.(5) FIG. 3C: Count the number of valid object headers of the header block 010. FIG.

(6) 도 3의 (c): (5)의 계산 결과, 유효한 객체 헤더의 수가 헤더 블록 010의 소정 페이지 수 이상(예컨대 절반 이상)이면, 말단 노드 010의 2개의 자식 노드인 말단 노드 0010 및 말단 노드 1010을 전술한 이진 트리 규칙에 따라 생성하고, 헤더 블록 0010 및 헤더 블록 1010을 플래시 메모리(20)에 할당한다(도 3의 (c)). (6) As a result of the calculation in FIG. The end node 1010 is generated according to the above-described binary tree rule, and the header block 0010 and the header block 1010 are allocated to the flash memory 20 (Fig. 3 (c)).

(7) 도 3의 (d): 헤더 블록 010 내의 유효한 객체 헤더들 및 파일 ID가 "11010010"인 파일의 객체 헤더를 그들의 파일 ID에 따라 헤더 블록 0010 및 헤더 블록 1010에 나누어(예를 들어 절반씩) 저장한다. 즉 파일 ID의 LSB가 '0010'인 파일의 객체 헤더들은 헤더 블록 0010에 저장되고, 파일 ID의 LSB가 '1010'인 파일의 객체 헤더들은 헤더 블록 1010에 저장된다. 따라서 파일 ID "11010010"인 파일의 객체 헤더는 헤더 블록 0010에 저장된다.(7) FIG. 3D: Valid object headers in the header block 010 and the object header of the file having the file ID "11010010" are divided into the header block 0010 and the header block 1010 according to their file ID (for example, half Save). That is, the object headers of the file whose LSB of the file ID is '0010' are stored in the header block 0010, and the object headers of the file having the LSB of the file ID '1010' are stored in the header block 1010. Therefore, the object header of the file having the file ID "11010010" is stored in the header block 0010.

(8) (5)의 계산 결과, 유효한 객체 헤더의 수가 헤더 블록 010의 페이지 수의 절반을 넘지 않으면, (4)에서 삭제되었던 헤더 블록 010을 다시 플래시 메모리(20) 내에 할당하고, 헤더 블록 010에 기존의 유효한 객체 헤더들과 파일 ID "11010010"인 파일의 객체 헤더를 저장한다.(8) If the calculation result of (5) indicates that the number of valid object headers does not exceed half of the number of pages of the header block 010, the header block 010 deleted in (4) is allocated again in the flash memory 20, and the header block 010 Stores existing valid object headers and the object header of the file with file ID "11010010".

(9) (4)에서 복사되었던 헤더 블록을 DRAM에서 지운다.(9) The header block copied in (4) is deleted from the DRAM.

파일의 데이터를 변경하는 경우에는, 먼저 헤더 블록에 저장되어 있던 해당 파일의 객체 헤더를 무효로 설정한다. 이어서 헤더 블록에 빈 공간이 있을 경우에는, 변경된 객체 헤더를 (3)의 과정에 의해 헤더 블록의 빈 공간에 할당하고, 헤더 블록에 빈 공간이 없을 경우에는 (5)~(8)의 과정에 의해 헤더 블록을 할당한다.When changing the data of the file, first, the object header of the file stored in the header block is set to invalid. Subsequently, if there is empty space in the header block, the changed object header is allocated to the empty space of the header block by the process of (3), and if there is no empty space in the header block, the process of (5) to (8) Allocates a header block.

3. 파일의 삭제에 따른 헤더 블록의 할당 처리3. Header Block Allocation Process According to File Deletion

도 4를 참조하여, 플래시 파일의 삭제에 따른 헤더 블록의 할당 처리를 설명한다. 메모리 컨트롤러(30)는, 플래시 메모리(20)에 저장되어 있는 특정 플래시 파일의 삭제 명령에 응답하여, 하기의 "OBJECT_HEADER_DEL 연산 알고리즘"을 실행시킨다.Referring to Fig. 4, the allocation process of the header block according to the deletion of the flash file will be described. The memory controller 30 executes the following "OBJECT_HEADER_DEL algorithm" in response to the delete command of the specific flash file stored in the flash memory 20.

Figure 112008065677069-PAT00002
Figure 112008065677069-PAT00002

상기 "OBJECT_HEADER_ADD 연산 알고리즘"에 의해 생성되었던, 파일 ID가 "11010010"인 파일을 삭제하려고 할 때, 상기 "OBJECT_HEADER_DEL 연산 알고리즘"은 다음과 같은 순서로 실행된다. 파일 ID "11010010"인 파일의 데이터는 암호화되어 있고, 복호화 키는 그 파일의 객체 헤더에 포함되어 있다. 또한, 파일 ID "11010010"의 객체 헤더는 헤더 블록 010에 저장되어 있다고 가정한다.When attempting to delete a file whose file ID is "11010010", which was generated by the "OBJECT_HEADER_ADD arithmetic algorithm", the "OBJECT_HEADER_DEL arithmetic algorithm" is executed in the following order. The data of the file with the file ID "11010010" is encrypted, and the decryption key is included in the object header of the file. In addition, it is assumed that the object header of the file ID "11010010" is stored in the header block 010.

(1) 안전 삭제를 하려는 파일의 파일 ID "11010010"을 얻는다.(1) Obtain file ID "11010010" of the file to be safely deleted.

(2) 노드의 깊이가 n이고, 파일 ID의 n개의 LSB와 동일한 이진값을 갖는 말단 노드를 탐색한다. 이 탐색은 루트 노드(NULL)에서 시작하여, 말단 노드가 발견될 때까지 파일 ID의 LSB값의 순서대로 트리의 노드를 따라간다. 이 탐색에 의해 헤더 블록 010이 찾아진다.(2) Search for the end node whose node depth is n and has the same binary value as n LSBs of the file ID. This search starts at the root node (null) and follows the nodes of the tree in the order of the LSB value of the file ID until the end node is found. This search finds the header block 010.

(3) 도 4의 (a): (2)에서 찾은 헤더 블록 010을 DRAM에 복사한다. DRAM에 복사된 헤더 블록 010은 플래시 메모리(20)에서 삭제된다.(3) The header block 010 found in Fig. 4A is copied to DRAM. The header block 010 copied to the DRAM is deleted from the flash memory 20.

(4) 도 4의 (b): DRAM 내의 헤더 블록 010에 저장되어 있는 객체 헤더들 중, 파일 ID "11010010"을 갖는 객체 헤더를 무효(INVALID)로 설정한다.(4) FIG. 4B: Among the object headers stored in the header block 010 in the DRAM, the object header having the file ID "11010010" is set to INVALID.

(5) 도 4의 (c): (3)에서 삭제되었던 헤더 블록 010을 다시 플래시 메모리(20) 내에 할당하고, DRAM 내의 헤더 블록 010에 저장되어 있는 모든 유효한 객체 헤더들을 플래시 메모리(20) 내에 다시 할당된 헤더 블록 010에 저장한다.(5) (c) of FIG. 4: The header block 010 deleted in (3) is allocated to the flash memory 20 again, and all valid object headers stored in the header block 010 in the DRAM are stored in the flash memory 20. Store in the reassigned header block 010.

(6) (3)에서 복사되었던 헤더 블록 010을 DRAM에서 지운다.(6) The header block 010 copied in (3) is deleted from the DRAM.

파일 ID "11010010"의 데이터 복호화 키를 포함하고 있던 객체 헤더가 (4)에서 무효로 설정되고, (6)에서 삭제되었기 때문에, 해당 파일의 데이터가 플래시 메모리(20)에 남아 있다고 하더라도, 해당 데이터를 복구할 수 없게 된다.Since the object header containing the data decryption key of the file ID "11010010" is set invalid in (4) and deleted in (6), even if data of the file remains in the flash memory 20, the data Cannot be recovered.

도 5에는 본 발명의 실시예에 따른 플래시 파일 안전 삭제 방법의 흐름도가 도시되어 있다. 도 5의 (a)에 도시된 바와 같이, 플래시 파일의 데이터는 암호화되어 플래시 메모리(20)의 데이터 블록에 저장되어 있고, 그 복호화 키는 객체 헤더에 포함되어 플래시 메모리(20)의 헤더 블록에 저장되어 있다. 5 is a flowchart of a method for securely deleting a flash file according to an exemplary embodiment of the present invention. As shown in FIG. 5A, data of a flash file is encrypted and stored in a data block of the flash memory 20, and the decryption key is included in an object header to store the header block of the flash memory 20. It is stored.

도 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).According to the flowchart of FIG. 5B, first, an ID of a flash file to be deleted is obtained (S110). Subsequently, an end node having a depth of n and having the same binary value as n LSBs of the file ID is searched for (S120). This search starts at the root node (null) and follows the nodes of the tree in the order of the LSB value of the file ID until the end node is found. The header block indicated by the end node found in step S120 is copied to the DRAM, and the header block copied to the DRAM is deleted from the flash memory 20 (S130). Among the object headers stored in the header block in the DRAM, an object header having a file ID of a file to be deleted is set to INVALID (S140). The header block deleted in step S130 is allocated to the flash memory 20 again, and all valid object headers stored in the header block in the DRAM are stored in the header block allocated again in the flash memory 20 (S150). The header block copied in step S130 is deleted from the DRAM (S160).

도 6의 그래프는, 본 발명의 실시예에 따른 파일 안전 삭제 방법과 종래예에 따른 파일 안전 삭제 방법의 실험 결과를 보여준다.The graph of FIG. 6 shows an experimental result of a file safe deletion method according to an embodiment of the present invention and a file safe deletion method according to a conventional example.

본 발명의 실시예에서는 메모리 컨트롤러(30)가 메모리 블록을 데이터 블록과 헤더 블록으로 나누어 관리하고, 데이터 블록에는 암호화된 데이터를 저장하고 헤더 블록에는 암호화된 데이터를 복호화하는데 필요한 복호화 키를 저장한다. 동 일한 파일 ID를 갖는 플래시 파일의 객체 헤더들은 모두 동일한 헤더 블록에 저장된다. 플래시 파일에 대한 삭제 명령에 응답하여 메모리 컨트롤러(30)는 해당 파일에 대응하는 헤더 블록에 있는 객체 헤더들을 모두 삭제한다. 종래예에서는, 플래시 파일에 대한 삭제 명령에 응답하여 플래시 메모리 전체에 걸쳐 산재해있는 해당 메모리 블록들을 찾아내어 삭제한다.In the embodiment of the present invention, the memory controller 30 divides and manages a memory block into a data block and a header block, stores encrypted data in the data block, and stores a decryption key necessary for decrypting the encrypted data in the header block. All object headers of a flash file with the same file ID are stored in the same header block. In response to the delete command for the flash file, the memory controller 30 deletes all object headers in the header block corresponding to the file. In the conventional example, in response to a delete command for a flash file, corresponding memory blocks scattered throughout the flash memory are found and deleted.

도 6의 실험 결과에 따르면, 종래예에 따른 파일 안전 삭제 방법에서는, 플래시 파일을 수정하는 빈도에 거의 정비례하여 메모리 블록의 삭제 횟수가 증가하는 반면, 본 발명의 실시예에 따른 파일 안전 삭제 방법에서는, 파일을 수정하는 빈도가 증가하더라도 메모리 블록의 삭제 횟수는 거의 증가하지 않는다. 따라서 메모리 블록의 삭제 조작에 대한 오버헤드가 상당히 큰 플래시 메모리에서 본 발명의 실시예에 따른 파일 안전 삭제 방법은 매우 유용하다.According to the experimental result of FIG. 6, in the file safe deletion method according to the conventional example, the number of deletions of the memory block increases in direct proportion to the frequency of modifying the flash file, whereas in the file safe deletion method according to the embodiment of the present invention, However, even if the frequency of modifying a file increases, the number of deletions of a memory block rarely increases. Therefore, the file safe erase method according to the embodiment of the present invention is very useful in a flash memory having a large overhead for the erase operation of the memory block.

앞서 설명한 본 발명의 실시예는 구체적인 구성과 도면에 의해 특정되었지만, 그러한 구체적인 실시예가 본 발명의 범위를 제한하는 것이 아니라는 점을 명확히 하고자 한다. 따라서, 본 발명은, 본 발명의 본질을 벗어나지 않는 다양한 변형예와 그 균등물들을 포함하는 것으로 이해되어야 한다. Although the embodiments of the present invention described above have been specified by specific configurations and drawings, it is intended to be clear that such specific embodiments do not limit the scope of the present invention. Accordingly, it is to be understood that the invention includes various modifications and equivalents thereof without departing from the spirit of the invention.

예를 들어, 파일 ID의 n개의 MSB(Most Significant Bits)에 관하여 이진 트리를 구성하는 것도 본 발명의 범위에 속한다. 이 경우, 왼쪽 자식 노드에는 부모 노드의 이진값의 오른쪽에 0이 붙은 이진값이 할당되고, 오른쪽 자식 노드에는 부모 노드의 이진값의 오른쪽에 1이 붙은 이진값이 할당된다. 이때 자식 노드의 좌우 위치가 서로 바뀌어도 됨은 물론이다.For example, constructing a binary tree with respect to n Most Significant Bits (MSBs) of a file ID is also within the scope of the present invention. In this case, the left child node is assigned a binary value with zeros to the right of the parent node's binary value, and the right child node is assigned a binary value with ones to the right of the parent node's binary value. At this time, the left and right positions of the child nodes may be interchanged.

도 1은 본 발명의 실시예에 따른 플래시 메모리 장치의 구성도.1 is a block diagram of a flash memory device according to an embodiment of the present invention.

도 2는 헤더 블록 탐색에 이용되는 이진 트리의 구조도.2 is a structural diagram of a binary tree used for header block searching.

도 3a 내지 도 3d는 플래시 파일의 생성/변경 시의 헤더 블록의 할당을 설명하기 위한 개념도.3A to 3D are conceptual views illustrating the allocation of header blocks when creating / modifying flash files.

도 4a 내지 도 4c는 플래시 파일의 삭제 시의 헤더 블록의 할당을 설명하기 위한 개념도.4A to 4C are conceptual views for explaining allocation of header blocks when deleting a flash file.

도 5는 본 발명의 실시예에 따른 플래시 파일 안전 삭제 방법의 흐름도.5 is a flowchart of a method for securely deleting a flash file according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 실험 결과를 보여주는 그래프.6 is a graph showing experimental results according to an embodiment of the present invention.

Claims (20)

플래시 파일을 저장하기 위한 메모리 블록들로 구성된 플래시 메모리와,A flash memory composed of memory blocks for storing a flash file, 상기 메모리 블록들 중 데이터 블록에는 플래시 파일의 암호화된 데이터가 저장되고, 상기 메모리 블록들 중 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더가 저장되도록 상기 플래시 메모리를 제어하는 메모리 컨트롤러를 포함하며,Controlling the flash memory to store encrypted data of a flash file in a data block of the memory blocks, and an object header including a decryption key for decrypting the encrypted data in a header block of the memory blocks. A memory controller, 상기 메모리 컨트롤러는, 암호화된 데이터를 갖는 플래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭제하는, 플래시 메모리 장치.And the memory controller deletes an object header including a decryption key for decrypting the encrypted data from the header block in response to a delete command of the flash file having encrypted data. 청구항 1에 있어서, 상기 삭제 명령에 응답하여 상기 메모리 컨트롤러는, 상기 복호화 키를 포함하는 객체 헤더가 저장되어 있는 헤더 블록을 임시 저장 장치에 복사하고, 상기 헤더 블록을 상기 플래시 메모리에서 삭제하며, 상기 복사된 헤더 블록에서 상기 복호화 키를 포함하는 객체 헤더를 무효로 설정하고, 상기 삭제된 헤더 블록을 상기 플래시 메모리에 재할당하며, 상기 복사된 헤더 블록의 객체 헤더들 중에서 유효한 객체 헤더를 상기 재할당된 헤더 블록에 저장하는, 플래시 메모리 장치.The memory controller of claim 1, wherein the memory controller copies the header block, in which the object header including the decryption key, is stored, to the temporary storage device, and deletes the header block from the flash memory. In the copied header block, set the object header including the decryption key to be invalid, reassign the deleted header block to the flash memory, and reassign the valid object header among the object headers of the copied header block. Memory device to store in the header block. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 동일한 파일 ID를 갖는 플래시 파일의 객체 헤더들을 동일한 헤더 블록에 저장하는, 플래시 메모리 장치.The flash memory device of claim 1, wherein the memory controller stores object headers of a flash file having a same file ID in a same header block. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하고, The memory controller of claim 1, wherein the node of depth n has a binary value representing n LSBs of a file ID of a flash file, and the binary value of an end node constitutes a binary tree indicating a position of a header block in the flash memory. and, 또한, 상기 메모리 컨트롤러는, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하고, 상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는, 플래시 메모리 장치.Further, the memory controller stores the object header of the flash file having the binary value of the terminal node as the LSB of the file ID in a header block indicated by the terminal node, and searches the binary tree in the depth direction to delete the object. A flash memory device that locates a header block containing an object header. 청구항 4에 있어서, 상기 메모리 컨트롤러는, 2개의 자식 노드들이 그 부모 노드의 이진값의 왼쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 메모리 장치.The flash memory device of claim 4, wherein the memory controller configures the binary tree such that two child nodes have a binary value appended with 0 and 1 to the left of the binary value of the parent node, respectively. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 MSB를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하고, The memory controller of claim 1, wherein the node of depth n has a binary value representing n MSBs of a file ID of a flash file, and the binary value of an end node constitutes a binary tree indicating a position of a header block in the flash memory. and, 또한, 상기 메모리 컨트롤러는, 상기 말단 노드의 이진값을 상기 파일 ID의 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하고, 상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는, 플래시 메모리 장치.Further, the memory controller stores the object header of the flash file having the binary value of the terminal node as the MSB of the file ID in a header block indicated by the terminal node, and searches the binary tree in the depth direction to delete the object. A flash memory device that locates a header block containing an object header. 청구항 6에 있어서, 상기 메모리 컨트롤러는, 2개의 자식 노드들이 그 부모 노드의 이진값의 오른쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 메모리 장치.7. The flash memory device of claim 6, wherein the memory controller configures the binary tree such that two child nodes have a binary value appended with 0 and 1 to the right of the binary value of the parent node, respectively. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 상기 헤더 블록의 빈 공간에 상기 새롭게 생성된 플래시 파일의 객체 헤더를 저장하는, 플래시 메모리 장치. The flash memory device of claim 1, wherein the memory controller stores an object header of the newly generated flash file in an empty space of the header block in response to a storage command of the newly generated flash file. 청구항 8에 있어서, 상기 헤더 블록에 빈 공간이 없는 경우에 상기 메모리 컨트롤러는, 해당 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 2개의 새로운 헤더 블록에 나누어 저장하고, 상기 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 플래시 메모리에 새롭게 할당된 하나의 헤더 블록에 저장하는, 플래시 메모리 장치.The method of claim 8, wherein when there is no empty space in the header block, the memory controller determines that the valid object header and the object header of the newly generated flash file are 2 if the number of valid object headers in the header block is greater than or equal to a predetermined number. Storing the valid object header and the object header of the newly generated flash file in one header block newly allocated to the flash memory when the number of valid object headers is less than the predetermined number. , Flash memory device. 청구항 1에 있어서, 상기 메모리 컨트롤러는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB 또는 MSB를 나타내는 이진값을 가지며 말단 노드의 이진값 은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하고, The binary controller of claim 1, wherein the node of depth n has a binary value indicating n LSBs or MSBs of a file ID of a flash file, and the binary value of an end node indicates a binary tree indicating a position of a header block in the flash memory. Configure 새롭게 생성된 플래시 파일의 저장 명령에 응답하여 상기 메모리 컨트롤러는, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB 또는 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하고,In response to a newly generated flash file save command, the memory controller stores an object header of a flash file having the binary value of the end node as the LSB or MSB of the file ID, in a header block indicated by the end node, 또한, 상기 헤더 블록에 빈 공간이 없는 경우에 상기 메모리 컨트롤러는, 해당 헤더 블록을 임시 저장 장치에 복사한 후 상기 플래시 메모리에서 삭제하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면, 상기 말단 노드의 2개의 자식 노드를 생성하고, 생성된 2개의 자식 노드가 각각 가리키는 2개의 헤더 블록을 상기 플래시 메모리 내에 할당하며, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 2개의 헤더 블록에 나누어 저장하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면, 상기 삭제된 헤더 블록을 상기 플래시 메모리 내에 재할당하고, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 재할당된 헤더 블록에 저장하는, 플래시 메모리 장치.In addition, when there is no empty space in the header block, the memory controller copies the header block to the temporary storage device and then deletes the header block from the flash memory. In this case, two child nodes of the end node are generated, two header blocks respectively indicated by the two generated child nodes are allocated in the flash memory, and the valid object header and the object header of the newly generated flash file are assigned. And storing the divided header blocks in the flash memory if the number of valid object headers in the copied header blocks is less than the predetermined number, and re-allocating the deleted header blocks in the flash memory. To store the object header of the allocated flash file in the reallocated header block, Flash memory device. 플래시 메모리의 데이터 블록에는 플래시 파일의 암호화된 데이터를 저장하고, 상기 플래시 메모리의 헤더 블록에는 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 저장하는 단계와,Storing encrypted data of a flash file in a data block of a flash memory, and storing an object header including a decryption key for decrypting the encrypted data in a header block of the flash memory; 암호화된 데이터를 갖는 플래시 파일의 삭제 명령에 응답하여, 상기 암호화된 데이터를 복호화하기 위한 복호화 키를 포함하는 객체 헤더를 헤더 블록에서 삭 제하는 단계를 포함하는, 플래시 파일 안전 삭제 방법.In response to a delete command of the flash file having encrypted data, deleting from the header block an object header containing a decryption key for decrypting the encrypted data. 청구항 11에 있어서, 상기 삭제 단계는, The method of claim 11, wherein the deleting step, 상기 복호화 키를 포함하는 객체 헤더가 저장되어 있는 헤더 블록을 임시 저장 장치에 복사하는 단계와,Copying a header block in which an object header including the decryption key is stored, to a temporary storage device; 상기 헤더 블록을 상기 플래시 메모리에서 삭제하는 단계와, Deleting the header block from the flash memory; 상기 복사된 헤더 블록에서 상기 복호화 키를 포함하는 객체 헤더를 무효로 설정하는 단계와, Invalidating an object header including the decryption key in the copied header block; 상기 삭제된 헤더 블록을 상기 플래시 메모리에 재할당하는 단계와, Reallocating the deleted header block to the flash memory; 상기 복사된 헤더 블록의 객체 헤더들 중에서 유효한 객체 헤더를 상기 재할당된 헤더 블록에 저장하는 단계를 포함하는, 플래시 파일 안전 삭제 방법.And storing a valid object header among the object headers of the copied header block in the reallocated header block. 청구항 11에 있어서, 상기 저장 단계는, 동일한 파일 ID를 갖는 플래시 파일의 객체 헤더들을 동일한 헤더 블록에 저장하는, 플래시 파일 안전 삭제 방법.The method of claim 11, wherein the storing step stores object headers of a flash file having the same file ID in the same header block. 청구항 11에 있어서, 상기 저장 단계는, The method of claim 11, wherein the storing step, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내도록 구성된 이진 트리를 구성하는 단계와, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블 록에 저장하는 단계를 포함하며,Constructing a binary tree where a node of depth n has a binary value representing n LSBs of a file ID of a flash file and a binary value of an end node represents a location of a header block in the flash memory; Storing an object header of a flash file having a binary value as the LSB of the file ID, in a header block pointed to by the end node; 상기 삭제 단계는, The deleting step, 상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는 단계를 포함하는, 플래시 파일 안전 삭제 방법.Finding a header block containing an object header to be deleted by searching the binary tree in a depth direction. 청구항 14에 있어서, 상기 이진 트리를 구성하는 단계에서, 2개의 자식 노드들이 그 부모 노드의 이진값의 왼쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 파일 안전 삭제 방법.15. The method of claim 14, wherein in the constructing the binary tree, the binary tree is configured such that two child nodes have binary values appended with 0 and 1 to the left of the binary value of the parent node, respectively. . 청구항 11에 있어서, 상기 저장 단계는, The method of claim 11, wherein the storing step, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 MSB를 나타내는 이진값을 가지고 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내도록 구성된 이진 트리를 구성하는 단계와, 상기 말단 노드의 이진값을 상기 파일 ID의 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하는 단계를 포함하며,Constructing a binary tree configured to have a node of depth n having a binary value representing n MSBs of a file ID of a flash file and the binary value of an end node representing a location of a header block in the flash memory; Storing an object header of a flash file having a binary value as the MSB of the file ID in a header block pointed to by the end node, 상기 삭제 단계는, The deleting step, 상기 이진 트리를 깊이 방향으로 탐색함으로써 삭제 대상의 객체 헤더를 포함하는 헤더 블록을 찾아내는 단계를 포함하는, 플래시 파일 안전 삭제 방법.Finding a header block containing an object header to be deleted by searching the binary tree in a depth direction. 청구항 16에 있어서, 상기 이진 트리를 구성하는 단계에서, 2개의 자식 노드 들이 그 부모 노드의 이진값의 오른쪽에 0과 1을 각각 붙인 이진값을 갖도록 상기 이진 트리를 구성하는, 플래시 파일 안전 삭제 방법.17. The method of claim 16, wherein in the constructing the binary tree, constructing the binary tree such that two child nodes have a binary value appended with 0 and 1 to the right of the binary value of the parent node, respectively. . 청구항 11에 있어서, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 상기 헤더 블록의 빈 공간에 상기 새롭게 생성된 플래시 파일의 객체 헤더를 저장하는 단계를 더 포함하는, 플래시 파일 안전 삭제 방법.12. The method of claim 11, further comprising storing an object header of the newly created flash file in an empty space of the header block in response to a storage command of the newly created flash file. 청구항 18에 있어서, 상기 새롭게 생성된 플래시 파일의 객체 헤더를 저장하는 상기 단계에서, 상기 헤더 블록에 빈 공간이 없는 경우에, 해당 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 2개의 새로운 헤더 블록에 나누어 저장하고, 상기 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 플래시 메모리에 새롭게 할당된 하나의 헤더 블록에 저장하는, 플래시 파일 안전 삭제 방법.19. The method of claim 18, wherein in the step of storing the object header of the newly generated flash file, if there is no empty space in the header block, the valid object header if the number of valid object headers in the header block is greater than or equal to a predetermined number. And storing the object header of the newly generated flash file in two new header blocks, and if the number of valid object headers is less than the predetermined number, flashing the valid object header and the object header of the newly generated flash file. A method for securely deleting a flash file, which is stored in one header block newly allocated to memory. 청구항 11에 있어서, 상기 저장 단계는, 깊이 n의 노드가 플래시 파일의 파일 ID의 n개의 LSB 또는 MSB를 나타내는 이진값을 가지며 말단 노드의 이진값은 상기 플래시 메모리 내의 헤더 블록의 위치를 나타내는 이진 트리를 구성하는 단계와, 새롭게 생성된 플래시 파일의 저장 명령에 응답하여, 상기 말단 노드의 이진값을 상기 파일 ID의 LSB 또는 MSB로서 갖는 플래시 파일의 객체 헤더를 상기 말단 노드가 가리키는 헤더 블록에 저장하는 단계를 포함하고,12. The method of claim 11, wherein the storing step comprises: a node of depth n having a binary value representing n LSBs or MSBs of a file ID of a flash file and a binary value of an end node indicating a position of a header block in the flash memory. And storing an object header of a flash file having the binary value of the end node as the LSB or the MSB of the file ID in a header block indicated by the end node in response to a command for storing the newly generated flash file. Including steps 상기 헤더 블록에 빈 공간이 없는 경우에는, 해당 헤더 블록을 임시 저장 장치에 복사한 후 상기 플래시 메모리에서 삭제하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 소정의 개수 이상이면, 상기 말단 노드의 2개의 자식 노드를 생성하고, 생성된 2개의 자식 노드가 각각 가리키는 2개의 헤더 블록을 상기 플래시 메모리 내에 할당하며, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 2개의 헤더 블록에 나누어 저장하고, 상기 복사된 헤더 블록 내의 유효한 객체 헤더의 수가 상기 소정의 개수 미만이면, 상기 삭제된 헤더 블록을 상기 플래시 메모리 내에 재할당하고, 상기 유효한 객체 헤더 및 상기 새롭게 생성된 플래시 파일의 객체 헤더를 상기 재할당된 헤더 블록에 저장하는, 플래시 파일 안전 삭제 방법.If there is no empty space in the header block, the header block is copied to the temporary storage device and then deleted from the flash memory, and if the number of valid object headers in the copied header block is greater than or equal to a predetermined number, Create two child nodes, allocate two header blocks each pointed to by the two generated child nodes in the flash memory, and assign the valid object header and the object header of the newly generated flash file to the two header blocks. Divide and store, and if the number of valid object headers in the copied header block is less than the predetermined number, reallocate the deleted header block in the flash memory, and the valid object header and the object header of the newly generated flash file. Storing in the reallocated header block.
KR1020080091545A 2007-12-27 2008-09-18 Flash memory device having secure file deletion function and method for securely deleting flash file KR100941368B1 (en)

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
KR1020070138650 2007-12-27
KR20070138650 2007-12-27

Publications (2)

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

Family

ID=41322776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080091545A KR100941368B1 (en) 2007-12-27 2008-09-18 Flash memory device having secure file deletion function and method for securely deleting flash file

Country Status (1)

Country Link
KR (1) KR100941368B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012144717A1 (en) * 2011-04-18 2012-10-26 고려대학교 산학협력단 Apparatus and method for controlling a flash memory for safe deletion
US20200387633A1 (en) * 2019-06-07 2020-12-10 Lenovo (Singapore) Pte. Ltd. Apparatus, method, and program product for securing personal information in a file

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140056657A (en) 2012-10-30 2014-05-12 삼성전자주식회사 Computer system having main memory and control method thereof
KR101284465B1 (en) * 2013-03-26 2013-07-09 서울과학기술대학교 산학협력단 Page mapping scheme that supports secure file deletion for nand-based block device, and thereof recording medium
KR20240020846A (en) * 2022-08-09 2024-02-16 박종성 Terminal Apparatus and Method for Deleting Data Unrecoverably Using the Same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100251636B1 (en) 1997-04-10 2000-05-01 윤종용 Memory device for connecting in a accordance with scsi
US5832493A (en) 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
KR100703680B1 (en) 1999-10-14 2007-04-05 삼성전자주식회사 Flash file system
KR20040044023A (en) * 2002-11-20 2004-05-27 엘지엔시스(주) Apparatus and method for managing data recorded on memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012144717A1 (en) * 2011-04-18 2012-10-26 고려대학교 산학협력단 Apparatus and method for controlling a flash memory for safe deletion
US20200387633A1 (en) * 2019-06-07 2020-12-10 Lenovo (Singapore) Pte. Ltd. Apparatus, method, and program product for securing personal information in a file

Also Published As

Publication number Publication date
KR100941368B1 (en) 2010-02-11

Similar Documents

Publication Publication Date Title
US8117377B2 (en) Flash memory device having secure file deletion function and method for securely deleting flash file
US8250380B2 (en) Implementing secure erase for solid state drives
US9043614B2 (en) Discarding sensitive data from persistent point-in-time image
US20230195654A1 (en) Namespace encryption in non-volatile memory devices
US7856451B2 (en) Selective file erasure using metadata modifications
US8762431B2 (en) System and method for secure erase in copy-on-write file systems
US20080201544A1 (en) Storage system
JP2001188701A (en) Accessing device for semiconductor memory card and computer readable recording medium and initializing method and semiconductor memory card
US9558128B2 (en) Selective management of security data
KR20080085574A (en) Apparatus and method for garbage collection of non-volatile memory
KR100941368B1 (en) Flash memory device having secure file deletion function and method for securely deleting flash file
CN106886370B (en) data safe deletion method and system based on SSD (solid State disk) deduplication technology
CN104794024A (en) Data recovery method
JP2015172959A (en) Access method for flash memory
CN104751076A (en) Method for recovering disk data
KR101467227B1 (en) Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same
Li et al. TASecure: Temperature-aware secure deletion scheme for solid state drives
US9671964B2 (en) Method of securely erasing a non-volatile semiconductor mass memory, computer system, and computer program product
KR101648262B1 (en) Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same
TWI775284B (en) Memory system, its control method and information processing system
Tiwari et al. Secure Wipe Out in BYOD Environment
US20180088846A1 (en) Multi-user dynamic storage allocation and encryption
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
CN104794062A (en) Method for reading magnetic disk

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