KR101648262B1 - 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 - Google Patents

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 Download PDF

Info

Publication number
KR101648262B1
KR101648262B1 KR1020140110934A KR20140110934A KR101648262B1 KR 101648262 B1 KR101648262 B1 KR 101648262B1 KR 1020140110934 A KR1020140110934 A KR 1020140110934A KR 20140110934 A KR20140110934 A KR 20140110934A KR 101648262 B1 KR101648262 B1 KR 101648262B1
Authority
KR
South Korea
Prior art keywords
file
encryption key
file name
encrypted
data
Prior art date
Application number
KR1020140110934A
Other languages
Korean (ko)
Other versions
KR20150075350A (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 KR1020140110934A priority Critical patent/KR101648262B1/en
Publication of KR20150075350A publication Critical patent/KR20150075350A/en
Application granted granted Critical
Publication of KR101648262B1 publication Critical patent/KR101648262B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords

Abstract

본 발명의 실시예들에 따른 암호화 파일 관리 시스템은 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부, 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부 및 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부를 포함할 수 있다.The encryption file management system according to the embodiments of the present invention generates a file name encryption key by a predetermined encryption key derivation algorithm based on a user password input from a user and generates a file name encryption key based on a salt An encryption key generation unit for generating a file data encryption key by an encryption key derivation algorithm, a file data encryption unit for encrypting the file data using the file data encryption key, and a file name encryption unit for encrypting the file name using the file name encryption key .

Description

SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템{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}TECHNICAL FIELD The present invention relates to a password-based encryption file management method having a secure deletion function suitable for an SSD, and an encryption file management system using the password-

본 발명은 파일 암호화 기술에 관한 것으로, 더욱 상세하게는, 패스워드 기반의 파일 암호화 기술에 관한 것이다.The present invention relates to a file encryption technique, and more particularly, to a password-based file encryption technique.

플래시 메모리(Flash memory)를 비롯한 비휘발성 소자 기술의 발달로 인해 비휘발성 저장 장치가 급격히 저렴해지고 대용량화되면서, 솔리드 스테이트 드라이브(SSD, solid state drive)와 같은 비휘발성 저장 장치가 전통적인 하드 디스크 드라이브(HDD, Hard disk drive)를 대체할 수 있게 되었다.Nonvolatile storage devices such as solid state drives (SSDs) have become more popular than conventional hard disk drives (HDDs) as the nonvolatile storage devices become rapidly less expensive and larger in capacity due to the development of nonvolatile device technology including flash memory. , Hard disk drive) can be replaced.

이러한 SSD를 비롯한 비휘발성 저장 장치들에 있어서, 최종 사용자들은 사용 시에 HDD와 별다른 차이를 느끼지 못하지만, 실제로 쓰기, 읽기 및 삭제(delete) 명령 시에 일어나는 동작들은 HDD에서 일어나는 동작들과는 본질적인 차이를 가진다.In non-volatile storage devices such as SSDs, end users do not feel much different from HDDs in use, but operations that occur at the time of actual write, read, and delete commands are inherently different from those that occur at the HDD .

SSD와 HDD의 동작 상에 가장 큰 차이는 삭제나 덮어쓰기를 하기 위한 일련의 동작과, 가비지 컬렉션(Garbage collection) 동작, 웨어 레벨링, 트림(trim) 동작 등이다.The biggest difference between SSD and HDD operation is a series of operations for erasing or overwriting, garbage collection operation, wear leveling, and trim operation.

HDD는 디스크 상의 임의의 위치에서 적게는 비트 단위로 곧바로 새로운 데이터를 덮어쓰기할 수 있다. 이에 반해, SSD는 어떤 데이터를 완전히 삭제하여 빈 블록을 만들거나 다른 데이터로 덮어쓰기하고자 한다면, 먼저 지우고자 하는 페이지를 가진 블록의 모든 페이지들을 다른 빈 블록으로 복사한 후에 해당 블록 전체가 소거(erase)되어야 한다. 그 이후에, 소거되어 비워진 블록에 새로 워드, 페이지 등 더 작은 단위의 데이터가 프로그램(program)됨으로써 비로소 덮어쓰기가 완료될 수 있다. 평소에 SSD 내에 빈 블록들이 충분히 준비되어야 있어야 원활하게 쓰기할 수 있으므로 SSD는 지속적으로 파일 조각들을 모아 단편화를 막아야 한다. 이를 가비지 컬렉션이라고 한다.The HDD can overwrite new data at any position on the disk, in as little as a bit. On the other hand, if the SSD wants to completely delete some data and create an empty block or overwrite it with other data, first copy all the pages of the block having the page to be erased to another empty block, ). Thereafter, overwriting can be completed only by programming data of a smaller unit such as a new word, page, etc. in the erased and vacated block. Normally, empty blocks must be fully prepared in the SSD so that it can be written smoothly, so the SSD must consistently gather pieces of the file to prevent fragmentation. This is called garbage collection.

또한 SSD는 각 셀의 수명이 쓰기와 소거 횟수에 의해 좌우되므로, 저장 장치의 수명을 늘리기 위해서는 블록들에 대한 쓰기와 소거 횟수를 평준화해야 하는데 이를 웨어 레벨링(wear-leveling)이라고 한다.Also, since the lifetime of each cell depends on the number of write and erase cycles, the number of write and erase cycles for the blocks must be leveled to increase the life of the storage device. This is called wear-leveling.

트림 동작은, 가비지 컬렉션 동작이 SSD의 내부 컨트롤러가 자체적으로 빈 블록들을 만드는 동작이라 한다면, 운영체제가 SSD에 대해 좀더 적극적으로 빈 블록 만들기를 수행하는 동작이다. 예를 들어, 운영체제가 파일을 삭제할 경우에, HDD라면 단지 파일 시스템의 파일 엔트리를 조작하는 동작만으로 파일 삭제가 가능하고 데이터가 삭제되었다고 표시된 블록 위에 빈 블록으로서 언제라도 새 데이터를 덮어쓰기할 수 있지만, SSD라면 파일 엔트리만 조작하여서는 해당 블록 위에 새 데이터를 덮어쓸 수 없다. 이때, 운영체제가 파일 삭제 시에 SSD에 트림 명령을 보내면, SSD는 파일의 파일 시스템 상의 논리적 삭제뿐 아니라, 해당 파일이 기록되어있던 블록들을 적시에 소거하여 빈 블록들로 만들고, 남은 조각이 있다면 가비지 컬렉션하여 빈 블록을 확보한다.The trim operation is an operation in which the operating system performs more active empty block creation for the SSD if the garbage collection operation is an operation in which the internal controller of the SSD creates its own empty blocks. For example, if the operating system deletes a file, then if it is a HDD, the file can be deleted only by manipulating the file entry of the file system, and new data can be overwritten at any time as an empty block on the block marked as deleted , SSD, you can not overwrite new data on the block by manipulating only the file entry. In this case, when the operating system sends a Trim command to the SSD at the time of file deletion, the SSD not only deletes the logical files in the file system of the file but also erases the blocks in which the file is recorded in a timely manner to make empty blocks. Collection to free an empty block.

이러한 SSD 만의 특징에 따라, 종래에 HDD에 기반하여 개발된 보안 삭제 방법은 사용자가 그러한 보안 삭제 방법들로써 데이터를 삭제시켰다 하더라도 SSD의 컨트롤러가 실제로 가비지 컬렉션을 수행하여 빈 블록으로 만들기 전에는 데이터가 그대로 남아 있어서 얼마든지 복구될 수 있다는 문제를 가진다.According to the characteristic of the SSD alone, the security deletion method developed on the basis of the HDD conventionally allows the data to remain as it is before the controller of the SSD actually performs the garbage collection to make an empty block even if the user deletes the data with such security deletion methods. There is a problem in that it can be recovered at any time.

또한 만약 보안 삭제 어플리케이션이 운영체제와 독립적으로 삭제 동작을 수행하여 파일이 점유하던 블록을 사실상의 빈 블록으로 만든다면, 운영체제는 그러한 삭제 동작이 운영체제를 통하지 않았기 때문에 그 블록이 계속 그 파일에 의해 점유된 것으로 인식한다거나, 또는 추후에 운영체제가 이미 전부 "1"로 채워진 블록을 중복적으로 다시 소거 시도한다거나 하는 오동작 또는 불필요한 동작으로 인한 성능 저하를 일으킬 수 있다.In addition, if the secure delete application performs the delete operation independently of the operating system to make the block occupied by the file a de facto empty block, the operating system can not prevent the block from being occupied by the file because the delete operation did not go through the operating system Or it may cause performance degradation due to erroneous operation or unnecessary operation, in which the operating system repeatedly tries to repeatedly erase a block already filled with "1 ".

한편, 파일 암호화 기술은 하드웨어 기반 방식과 소프트웨어 기반 방식으로 구분될 수 있다. 하드웨어 기반 방식은 저장 장치가 하드웨어 암호화 칩을 내장하는 방식으로서, 저장 장치가 자체적으로 암호화와 복호화를 실시간으로 수행한다. 그러나 흔히 사용하는 USB(universal serial bus) 방식의 외장형 드라이브 또는 SATA(Serial Advanced Technology Attachment) 드라이브는, 원래 호스트로부터 전원 라인이 계속 연결되어 있는 한, 데이터 버스가 다른 호스트에 연결되어도(replugging) 이를 인식하지 못하기 때문에, 인증된 호스트에 의해 언락(unlock)된 이후 비인증된 호스트의 데이터 버스에 연결되어도 계속 언락 상태를 유지한다. 따라서 비인증 호스트가 암호화된 SSD에 접근할 수 있다. 이렇게 하드웨어 기반의 파일 암호화 기술은 이러한 핫 플러그(hot plug) 공격에 취약하다.On the other hand, the file encryption technology can be classified into a hardware-based method and a software-based method. The hardware-based method is a method in which a storage device incorporates a hardware encryption chip, and the storage device itself performs encryption and decryption in real time. However, a commonly used USB (universal serial bus) external drive or a Serial Advanced Technology Attachment (SATA) drive can not recognize (replugging) the data bus as long as the power line is still connected from the original host , It remains unlocked even if it is connected to the data bus of the unauthorized host since it is unlocked by the authorized host. Thus, an unauthorized host can access the encrypted SSD. This hardware-based file encryption technology is vulnerable to such hot-plug attacks.

소프트웨어 기반 방식의 경우에, 사용자는 원하는 파일만 암호화하거나 드라이브 전체를 암호화할 수 있다. 드라이브 전체를 암호화하는 것은 비효율적이므로 파일 별로 또는 디렉토리/폴더 별로 암호화하는 것이 보통이다. 하지만, 통상적으로 사용되는 대칭키 암호화 방식에서 암호 자체 또는 암호화키는 파일에 첨부되든 운영체제 또는 어플리케이션이 제공하는 특정 위치에 저장되든 어딘가에 어느 형태로든 저장되어야 하기 때문에, 저장된 암호 또는 암호화키로부터 암호가 노출될 가능성이 있다. 또한 파일에 관하여 중요한 정보를 가질 수 있는 파일 이름은 암호화되지 않는 문제도 있다.In the case of a software based approach, the user can only encrypt the desired files or encrypt the entire drive. Encrypting the entire drive is inefficient, so it is common to encrypt files by file or by directory / folder. However, in a commonly used symmetric key encryption scheme, a password itself or an encryption key must be stored in some form somewhere, whether attached to a file or stored in a specific location provided by the operating system or application, There is a possibility. There is also the problem that filenames that can have important information about the file are not encrypted.

마찬가지로 종래의 HDD 기반으로 개발된 암호화 방법을 SSD에 그대로 적용할 경우에는, 암호화키가 SSD 내의 어딘가에 저장되는데 암호화된 파일을 운영체제 상에서 삭제하더라도 즉각적으로 파일과 함께 암호화키가 모두 실제로 소거된다는 보장이 없다.Likewise, when the conventional encryption method developed on the basis of the HDD is applied to the SSD as it is, there is no guarantee that the encryption key is stored somewhere in the SSD, and even if the encrypted file is deleted on the operating system, all the encryption keys are actually deleted together with the file .

무엇보다, SSD에서 곧바로 덮어쓰기가 안 되기 때문에, 사용자가 기존 암호화되지 않은 원본 파일을 암호화하여 암호화된 파일을 새로 생성할 때에, 암호화하기 전의 원본 데이터는 SSD 상에서 논리적으로 삭제될 뿐 실제로 소거되기 전까지는 실질적으로 그대로 남아 있어서, 암호화되지 않은 데이터가 온전히 복구될 수 있다.First of all, since the SSD can not be overwritten immediately, when the user encrypts the original unencrypted original file to create a new encrypted file, the original data before encryption is logically deleted on the SSD, Remains substantially unchanged, so that unencrypted data can be recovered completely.

이에 따라, 이러한 종래의 문제점들을 극복하고 SSD에 적합한 파일 암호화 기술과, 암호화된 파일의 보안 삭제 기술이 요구된다.Accordingly, there is a need for a file encryption technique suitable for an SSD and a technique for securely deleting an encrypted file, overcoming these conventional problems.

본 발명이 해결하고자 하는 과제는 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템을 제공하는 데에 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a password-based encryption file management method having a security deletion function suitable for an SSD and an encryption file management system using the password-based encryption file management method.

본 발명이 해결하고자 하는 과제는 SSD 기반의 저장 매체에서 핫 플러그 공격을 방어할 수 있고 필요한 파일 또는 폴더만 선택적으로 암호화할 수 있고, 파일명까지 암호화할 수 있는 패스워드 기반의 암호화 파일 관리 방법 및 이를 이용한 암호화 파일 관리 시스템을 제공하는 데에 있다.The present invention is directed to a password-based encryption file management method capable of protecting a hot plug attack in an SSD-based storage medium and selectively encrypting only necessary files or folders, And an encryption file management system.

본 발명이 해결하고자 하는 과제는 SSD 기반의 저장 매체에서 암호화된 파일에 관련되어 운영체제와 충돌하지 않고 데이터를 보안 삭제할 수 있는 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템을 제공하는 데에 있다. The present invention provides a password-based encryption file management method capable of securely deleting data without conflict with an operating system related to an encrypted file in an SSD-based storage medium, and an encryption file management system using the method have.

본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확히 이해될 수 있을 것이다.The solution to the problem of the present invention is not limited to those mentioned above, and other solutions not mentioned can be clearly understood by those skilled in the art from the following description.

본 발명의 일 측면에 따른 암호화 파일 관리 시스템은,According to an aspect of the present invention,

사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부;Generates a file name encryption key by a predetermined encryption key derivation algorithm based on a user password inputted from the user, generates a file data encryption key by a salt derived from the file name and a predetermined encryption key derivation algorithm based on the user password An encryption key generation unit for generating an encryption key;

상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부; 및A file data encryption unit for encrypting file data using the file data encryption key; And

상기 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부를 포함할 수 있다.And a file name encryption unit for encrypting the file name using the file name encryption key.

일 실시예에 따라, 상기 암호화키 생성부는 상기 파일 데이터 암호화키를 위한 솔트로서 상기 파일명, 상기 파일명 암호화키, 또는 상기 파일명 암호화키로부터 새로 도출된 다이제스트 중 어느 하나를 이용하도록 동작할 수 있다.According to one embodiment, the encryption key generator may be operable to use either the file name, the file name encryption key, or a newly derived digest from the file name encryption key as the salt for the file data encryption key.

일 실시예에 따라, 상기 암호화키 생성부는 상기 파일명 암호화키를 생성하기 위한 솔트로서 암호화된 파일이 저장될 저장 장치의 식별자를 이용하도록 동작할 수 있다.According to one embodiment, the encryption key generator may be operable to use an identifier of a storage device in which an encrypted file is to be stored as a salt for generating the file name encryption key.

일 실시예에 따라, 상기 암호화키 생성부는 상기 파일명 암호화키 또는 상기 파일 데이터 암호화키 중 적어도 어느 하나를 생성하기 위한 암호화키 도출 알고리즘으로서 PBKDF2(password-based key derivation function 2) 알고리즘에 기반하여 동작할 수 있다.According to one embodiment, the encryption key generation unit operates based on a password-based key derivation function 2 (PBKDF2) algorithm as an encryption key derivation algorithm for generating at least one of the file name encryption key and the file data encryption key .

일 실시예에 따라, 상기 암호화 파일 관리 시스템은,According to one embodiment, the encrypted file management system comprises:

암호화된 파일에 대한 읽기 액세스 시에, 사용자로부터 사용자 패스워드를 입력받고, 입력된 사용자 패스워드로부터 생성한 파일명 암호화키를 이용하여 암호화된 파일명으로부터 복호화된 파일명을 복원하며, 복호화된 파일명 및 사용자 패스워드로부터 생성한 파일 데이터 암호화키를 이용하여 암호화된 파일 데이터로부터 복호화된 파일 데이터를 생성하는 파일 복호화부를 더 포함할 수 있다.Upon reading access to the encrypted file, the user password is input from the user, the decrypted file name is recovered from the encrypted file name using the file name encryption key generated from the input user password, and the decrypted file name and the user password are generated And a file decryption unit for generating decrypted file data from the encrypted file data by using a file data encryption key.

일 실시예에 따라, 상기 파일 복호화부는,According to an embodiment, the file decoding unit may include:

사용자로부터 사용자 패스워드를 입력받고, Receives a user password from a user,

운영체제의 파일 입출력 시스템을 통해 암호화된 파일명을 획득하며, Obtain the encrypted file name through the file input / output system of the operating system,

상기 암호화키 생성부에서 파일명 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들 및 사용자 패스워드에 따라 파일명 암호화키를 생성하고, Generating a file name encryption key according to the same encryption key derivation algorithm, parameters, and user password used when the file name encryption key is generated in the encryption key generator,

암호화된 파일명으로부터 상기 파일명 암호화키를 이용하여 상기 파일명 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 파일명을 복원하며,Restores the file name according to the same encryption algorithm used in the file name encryption unit by using the file name encryption key from the encrypted file name,

상기 암호화키 생성부에서 파일 데이터 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들, 복원된 파일명에서 도출된 솔트 및 사용자 패스워드에 따라 파일 데이터 암호화키를 생성하고, The encryption key generating unit generates a file data encryption key according to the same encryption key derivation algorithm, parameters, salt and user password derived from the restored file name, which are the same as those used when the file data encryption key is generated,

운영체제의 파일 입출력 시스템을 통해 암호화된 파일 데이터를 획득하며,Obtains encrypted file data through a file input / output system of the operating system,

암호화된 파일 데이터로부터 상기 파일 데이터 암호화키를 이용하여 상기 파일 데이터 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 복호화된 파일 데이터를 생성하도록 동작할 수 있다.From the encrypted file data, the file data encryption key to generate decrypted file data according to the same encryption algorithm used in the file data encryption section.

일 실시예에 따라, 암호화 대상 파일 또는 암호화된 파일은 비휘발성 저장 장치에 저장될 수 있다.According to one embodiment, the file to be encrypted or the encrypted file may be stored in a non-volatile storage device.

일 실시예에 따라, 상기 암호화 파일 관리 시스템은,According to one embodiment, the encrypted file management system comprises:

암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하는 파일 보안 삭제부를 더 포함할 수 있다.Records and inspects both the entry of the file name and the address of the deletion object and the pages of the file data to be deleted with 0x00 when the user securely deletes the traces of the original file remaining after being encrypted or the user securely deletes the encrypted file itself, and deletes the entry of the file name and the address of the deletion target and the pages of the file data to be deleted. When the trimming function is terminated, both the entry of the file name and the address of the deletion target and the pages of the file data to be deleted are written with 0xFF And a file security deletion unit.

일 실시예에 따라, 상기 파일 보안 삭제부는,According to an embodiment, the file security erasure unit may include:

상기 비휘발성 저장 장치의 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 비휘발성 저장 장치의 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하고, Volatile storage apparatus records both the entry of the file name and address of the deletion target recorded in the file management area of the nonvolatile storage device and the pages of the file data to be deleted stored in the data storage area of the nonvolatile storage device as 0x00,

상기 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하며, Checks whether an entry of a file name and an address to be deleted recorded in the file management area and a page of file data to be deleted stored in the data storage area are all written 0x00,

트림 기능을 수행하여 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 소거하고,And erasing the entry of the file name and address to be deleted and the pages of file data to be deleted in the data storage area in the file management area,

트림 기능이 종료되면, 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하도록 동작할 수 있다.When the trimming function is terminated, an entry of a file name and an address to be deleted in the file management area and pages of file data to be deleted in the data storage area are all written at 0xFF.

본 발명의 다른 측면에 따른 암호화 파일 관리 방법은,According to another aspect of the present invention,

컴퓨터의 운영체제 상에서 동작하는 암호화 파일 관리 시스템이,An encryption file management system running on an operating system of a computer,

사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하는 단계;Generating a file name encryption key by a predetermined encryption key derivation algorithm based on a user password inputted from a user;

파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 단계;Generating a file data encryption key by a salt derived from a file name and a predetermined encryption key derivation algorithm based on the user password;

상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 단계; 및Encrypting the file data using the file data encryption key; And

상기 파일명 암호화키를 이용하여 파일명을 암호화하는 단계를 포함할 수 있다.And encrypting the file name using the file name encryption key.

일 실시예에 따라, 상기 파일 데이터 암호화키는, According to one embodiment, the file data encryption key comprises:

상기 파일 데이터 암호화키를 위한 솔트로서 상기 파일명, 상기 파일명 암호화키, 또는 상기 파일명 암호화키로부터 새로 도출된 다이제스트 중 어느 하나를 이용하여 생성될 수 있다.The file data encryption key may be generated using any one of the file name, the file name encryption key, or the newly derived digest from the file name encryption key as the salt for the file data encryption key.

일 실시예에 따라, 상기 파일명 암호화키는,According to one embodiment, the file name encryption key comprises:

상기 파일명 암호화키를 생성하기 위한 솔트로서 암호화된 파일이 저장될 저장 장치의 식별자를 이용하여 생성될 수 있다.May be generated using the identifier of the storage device in which the encrypted file is to be stored as a salt for generating the file name encryption key.

일 실시예에 따라, 상기 파일명 암호화키를 생성하기 위한 암호화키 도출 알고리즘 또는 상기 파일 데이터 암호화키를 생성하기 위한 암호화키 도출 알고리즘 중 적어도 어느 하나는 PBKDF2 알고리즘에 기반할 수 있다.According to one embodiment, at least one of the encryption key derivation algorithm for generating the file name encryption key or the encryption key derivation algorithm for generating the file data encryption key may be based on the PBKDF2 algorithm.

일 실시예에 따라, 상기 암호화 파일 관리 방법은,According to one embodiment, the encryption file management method comprises:

암호화된 파일에 대한 읽기 액세스 시에, 사용자로부터 사용자 패스워드를 입력받고, 입력된 사용자 패스워드로부터 생성한 파일명 암호화키를 이용하여 암호화된 파일명으로부터 복호화된 파일명을 복원하며, 복호화된 파일명 및 사용자 패스워드로부터 생성한 파일 데이터 암호화키를 이용하여 암호화된 파일 데이터로부터 복호화된 파일 데이터를 생성하는 단계를 더 포함할 수 있다.Upon reading access to the encrypted file, the user password is input from the user, the decrypted file name is recovered from the encrypted file name using the file name encryption key generated from the input user password, and the decrypted file name and the user password are generated And generating the decrypted file data from the encrypted file data using the encrypted file data encryption key.

일 실시예에 따라, 상기 복호화된 파일 데이터를 생성하는 단계는,According to one embodiment, the step of generating the decrypted file data comprises:

사용자로부터 사용자 패스워드를 입력받는 단계;Receiving a user password from a user;

운영체제의 파일 입출력 시스템을 통해 암호화된 파일명을 획득하는 단계;Obtaining an encrypted file name through a file input / output system of an operating system;

상기 암호화키 생성부에서 파일명 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들 및 사용자 패스워드에 따라 파일명 암호화키를 생성하는 단계;Generating a file name encryption key according to the same encryption key derivation algorithm, parameters, and user password used when the file name encryption key is generated in the encryption key generator;

암호화된 파일명으로부터 상기 파일명 암호화키를 이용하여 상기 파일명 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 파일명을 복원하는 단계;Restoring a file name according to the same encryption algorithm used in the file name encryption unit using the file name encryption key from the encrypted file name;

상기 암호화키 생성부에서 파일 데이터 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들, 복원된 파일명에서 도출된 솔트 및 사용자 패스워드에 따라 파일 데이터 암호화키를 생성하는 단계;Generating a file data encryption key according to the encryption key derivation algorithm, parameters, salt and user password derived from the restored file name, which are the same as those used when the file data encryption key is generated in the encryption key generation unit;

운영체제의 파일 입출력 시스템을 통해 암호화된 파일 데이터를 획득하는 단계; 및Obtaining encrypted file data through a file input / output system of an operating system; And

암호화된 파일 데이터로부터 상기 파일 데이터 암호화키를 이용하여 상기 파일 데이터 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 복호화된 파일 데이터를 생성하는 단계를 포함할 수 있다.And generating the decrypted file data from the encrypted file data using the file data encryption key according to the same encryption algorithm used in the file data encryption unit.

일 실시예에 따라, 암호화 대상 파일 또는 암호화된 파일은 비휘발성 저장 장치에 저장될 수 있다.According to one embodiment, the file to be encrypted or the encrypted file may be stored in a non-volatile storage device.

일 실시예에 따라, 상기 암호화 파일 관리 방법은,According to one embodiment, the encryption file management method comprises:

암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하여 보안 삭제하는 단계를 더 포함할 수 있다.Records and inspects both the entry of the file name and the address of the deletion object and the pages of the file data to be deleted with 0x00 when the user securely deletes the traces of the original file remaining after being encrypted or the user securely deletes the encrypted file itself, and deletes the entry of the file name and the address of the deletion target and the pages of the file data to be deleted. When the trimming function is terminated, both the entry of the file name and the address of the deletion target and the pages of the file data to be deleted are written with 0xFF And deleting the security information.

일 실시예에 따라, 상기 보안 삭제하는 단계는,According to one embodiment, the step of deleting security comprises:

상기 비휘발성 저장 장치의 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 비휘발성 저장 장치의 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하는 단계;Recording an entry of a file name and address to be deleted recorded in the file management area of the nonvolatile storage device and a page of file data to be deleted stored in the data storage area of the nonvolatile storage device as 0x00;

상기 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하는 단계; Checking whether an entry of a file name and an address to be deleted recorded in the file management area and a page of file data to be deleted stored in the data storage area are all recorded as 0x00;

트림 기능을 수행하여 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 소거하는 단계; 및Erasing the entry of the file name and address to be deleted and the pages of file data to be deleted in the data storage area in the file management area by performing a trimming function; And

트림 기능이 종료되면, 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하는 단계를 포함할 수 있다.Recording the entry of the file name and the address to be deleted in the file management area and the pages of the file data to be deleted in the data storage area as 0xFF when the trim function is terminated.

본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 소프트웨어 기반의 암호화 기법이므로 핫 플러그 공격에 강인하며, 필요한 파일 또는 폴더를 선택적으로 암호화할 수 있다.According to the password-based encryption file management method having a security deletion function suitable for the SSD of the present invention and the encryption file management system using them, since it is a software-based encryption technique, it is robust against hot-plug attacks and selectively encrypts necessary files or folders .

본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 파일명까지 암호화할 수 있다.According to the password-based encrypted file management method having the security deletion function suitable for the SSD of the present invention and the encrypted file management system using them, the file name can be encrypted.

본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 파일명을 암호화하는 암호화키와 파일 데이터를 암호화하는 암호화키가 달라 암호화된 파일을 탈취당하더라도 데이터 해독이 훨씬 까다롭다.According to the password-based encryption file management method having a security deletion function suitable for the SSD of the present invention and the encryption file management system using them, the encryption key for encrypting the file name and the encryption key for encrypting the file data are different, Even the data decryption is much more difficult.

본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 암호화 후에 남은 원본 데이터 또는 사용자가 삭제시킨 암호화된 데이터를 운영체제와 충돌하지 않으면서 확실하고 안전하게 소거할 수 있다.According to the password-based encrypted file management method and the encrypted file management system using the security-deletion function suitable for the SSD of the present invention, the original data remaining after encryption or the encrypted data deleted by the user can be sure You can safely erase it.

본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to those mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템 및 방법을 예시한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 파일명 암호화키 및 파일 암호화키의 생성 과정을 예시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 저장 과정을 예시한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일명의 저장 과정을 예시한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 독출 과정을 예시한 개념도이다.
도 6은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 보안 삭제 과정을 예시한 개념도이다.
1 is a conceptual diagram illustrating an encryption file management system and method according to an embodiment of the present invention.
2 is a conceptual diagram illustrating a process of generating a file name encryption key and a file encryption key in an encryption file management system according to an embodiment of the present invention.
3 is a conceptual diagram illustrating a process of storing an encrypted file in an encrypted file management system according to an embodiment of the present invention.
4 is a conceptual diagram illustrating a process of storing an encrypted file name in an encrypted file management system according to an embodiment of the present invention.
5 is a conceptual diagram illustrating a process of reading an encrypted file in the encrypted file management system according to an embodiment of the present invention.
6 is a conceptual diagram illustrating a process of deleting an encrypted file in an encrypted file management system according to an embodiment of the present invention.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

본 명세서 전반에 걸쳐 혼동을 피하기 위해, 삭제(delete)는 운영체제에 의한 파일의 논리적 제거를 의미하고, 소거(erase)는 SSD가 덮어쓰기가 가능하도록 빈 블록으로 만드는 하드웨어 레벨의 동작을 의미한다.To avoid confusion throughout the description, delete refers to the logical removal of a file by the operating system, and erase refers to a hardware level operation that makes the SSD an empty block so that it can be overwritten.

보안 삭제(secure deletion)은 사용자의 명령에 따라 SSD에서 데이터를 복구 불가능한 상태로 소거하고 파일의 존재 흔적까지 정리하는 일련의 동작들을 총체적으로 의미한다.Secure deletion collectively refers to a series of operations that erase data from the SSD in an unrecoverable state according to a user's command and organize the existence of the file.

본 명세서의 전체에 걸쳐 용어들은 다음과 같이 정의된다.Throughout this specification the terms are defined as follows.

FN : 파일명(filename)FN: File name (filename)

FD : 파일 데이터(file data)FD: file data

EFN : 암호화된 파일명(encrypted filename)EFN: Encrypted filename (encrypted filename)

EFD : 암호화된 파일데이터(encrypted file data)EFD: Encrypted file data

FNK : 파일명의 암호화키(encryption/decryption key for filename)FNK: encryption / decryption key for filename

FDK : 파일 데이터의 암호화키(encryption/decryption key for file data)FDK: encryption / decryption key for file data

UPW : 사용자 패스워드(user password 또는 passphrase)UPW: User password (user password or passphrase)

PRF : 의사 난수 함수(pseudorandom function)PRF: pseudorandom function

Hn( ) : n 번 반복되는 암호학 해시 함수(n times iterating cryptographic hash function)H n (): n times iterating cryptographic hash function

Hn(UPW) : 사용자 패스워드를 기초로 암호화용 해시 함수를 n 번 반복함H n (UPW): The hash function for encryption is repeated n times based on the user password

PBKDF2 : 패스워드 기반의 키 도출 함수 2(Password-Based Key Derivation Function #2)PBKDF2: Password-Based Key Derivation Function # 2

SFNK : FNK를 생성하기 위해 PBKDF2에 첨가하는 암호학 솔트(cryptographic salt)S FNK : A cryptographic salt added to PBKDF2 to generate FNK.

SFDK : FDK를 생성하기 위해 PBKDF2에 첨가하는 솔트S FDK : Salt added to PBKDF2 to generate FDK

kLen : 암호화키의 길이 파라미터kLen: length parameter of encryption key

C : 반복 연산 횟수C: Number of iterations

한편, 달리 명시되지 않은 한 본 명세서에서 암호화 알고리즘은 대칭 키 암호화 알고리즘을 의미한다. 따라서 복호화키는 따로 언급하지 않더라도 암호화키와 동일하고, 맥락에 따라, 암호화키가 복호화키의 의미로 사용될 수 있다.On the other hand, unless otherwise specified, the encryption algorithm herein refers to a symmetric key encryption algorithm. Therefore, the decryption key is the same as the encryption key even if it is not mentioned separately, and the encryption key can be used as a decryption key according to the context.

도 1은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템을 예시한 개념도이다.1 is a conceptual diagram illustrating an encrypted file management system according to an embodiment of the present invention.

도 1을 참조하면, 암호화 파일 관리 시스템(10)은 암호화키 생성부(11), 파일 데이터 암호화부(12), 파일명 암호화부(13), 파일 복호화부(14) 및 파일 보안 삭제부(15)를 포함할 수 있다.1, the encrypted file management system 10 includes an encryption key generation unit 11, a file data encryption unit 12, a file name encryption unit 13, a file decryption unit 14, and a file security deletion unit 15 ).

암호화 파일 관리 시스템(10)은 운영체제(20)의 일부 또는 드라이버로 구현되거나, 또는 운영체제(20) 상에서 동작하는 써드파티 어플리케이션으로 구현될 수 있다.The encrypted file management system 10 may be implemented as part of or the driver of the operating system 20 or as a third party application operating on the operating system 20. [

먼저, 단계(S11)에서, 암호화키 생성부(11)는 사용자로부터 입력된 사용자 패스워드(UPW)에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키(FNK) 및 파일 데이터 암호화키(FDK)를 각각 생성한다.First, in step S11, the encryption key generating unit 11 generates a file name encryption key FNK and a file data encryption key FDK by a predetermined encryption key derivation algorithm based on a user password UPW input from a user. Respectively.

구체적으로, 암호화키 생성부(11)는 사용자 패스워드(UPW)에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키(FNK)를 생성하고, 사용자 패스워드(UPW)와 파일명 암호화키(FNK)를 기반으로 파일 데이터 암호화키(FDK)를 생성한다.Specifically, the encryption key generating unit 11 generates a file name encryption key FNK by a predetermined encryption key derivation algorithm based on the user password UPW, and stores the user password UPW and the file name encryption key FNK And generates a file data encryption key (FDK).

이때, 암호화키 생성부(11)는 파일명 암호화키(FNK)를 생성하기 위한 암호화키 도출 알고리즘으로서 파일 데이터 암호화키(FDK)를 생성하기 위한 암호화키 도출 알고리즘과 다른 알고리즘을 이용할 수도 있고, 또는 두 암호화키 도출 알고리즘들이 동일한 종류의 알고리즘이면서 파라미터들이 일부 또는 전부 다르도록 설정될 수도 있다.At this time, the encryption key generating unit 11 may use an algorithm different from the encryption key derivation algorithm for generating the file data encryption key (FDK) as the encryption key derivation algorithm for generating the file name encryption key (FNK) The encryption key derivation algorithms may be set to be some or all of the same kind of algorithms and parameters.

암호화키 생성부(11)는 암호화키 도출 알고리즘으로서 PBKDF2 알고리즘과 같은 적응식 키 도출 함수들(Adaptive Key Derivation Functions)을 이용할 수 있다. 통상적인 적응식 키 도출 함수들은 시드(seed)에서 단방향 해시 함수(one-way hash function)을 이용하여 다이제스트(digest)를 생성할 때에 솔팅(salting) 기법과 키 스트레칭(key stretching) 기법을 활용함으로써 다이제스트로부터 시드를 파악하지 못하게 방해할 수 있는 함수들이다.The encryption key generation unit 11 may use adaptive key derivation functions such as the PBKDF2 algorithm as an encryption key derivation algorithm. Conventional adaptive key derivation functions utilize salting and key stretching techniques when generating a digest using a one-way hash function in the seed These are functions that can prevent the digest from identifying the seed.

이때, 솔팅 기법은 주어진 시드와 함께 임의의 소정 단위의 문자열인 솔트(salt)를 해시 함수에 인가함으로써 동일한 시드로부터 서로 다른 다이제스트들을 생성하는 기법이다. 설령 공격자가 솔팅되지 않은 특정 다이제스트와 특정 시드 사이의 관계를 알아 냈더라도, 솔팅된 다이제스트로부터는 정확한 시드를 알아 내기 어렵다.At this time, the salting technique is a technique of generating different digests from the same seed by applying a salt, which is a string of arbitrary predetermined unit, to a hash function together with a given seed. Even if an attacker finds the relationship between a particular seed and a particular seed that has not been solated, it is difficult to determine the correct seed from the solved digest.

키 스트레칭 기법은 주어진 시드로 다이제스트를 생성한 다음, 생성된 다이제스트를 새로운 시드로 하여 새로 다이제스트를 생성하는 연산을 반복하는 기법이다. 공격자는 매 키워드마다 수백 수천번씩 해시 함수를 구동해야 하므로 상당한 방해를 받는다.The key stretching technique is a technique of generating a digest with a given seed and then repeating the operation of generating a new digest with the generated digest as a new seed. The attacker would be forced to run the hash function hundreds or thousands of times for every keyword, which is a significant hindrance.

암호화키 생성부(11)의 구현을 구체적으로 예시하기 위해 도 2를 참조하면, 도 2는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 파일명 암호화키 및 파일 암호화키의 생성 과정을 예시한 개념도이다.2 is a block diagram illustrating an example of a process of generating a file name encryption key and a file encryption key of the encryption file management system according to an embodiment of the present invention. It is a conceptual diagram.

도 2에서 PBKDF2 알고리즘은 의사 난수 함수(PRF), 사용자 패스워드(P), 암호학 솔트들(SFNK, SFDK), 반복 회수 파라미터(C) 및 다이제스트 길이 파라미터(kLen)를 기초로, SHA, MD5와 같은 검증된 해시 함수를 이용하여 파일명 암호화키(FNK) 및 파일 데이터 암호화키(FDK)를 각각 생성할 수 있다.2, the PBKDF2 algorithm is based on SHA, MD5 (k), based on a pseudo-random number function PRF, a user password P, ciphertexts S FNK , S FDK , a repetition number parameter C and a digest length parameter kLen. The file name encryption key FNK and the file data encryption key FDK can be generated using a verified hash function such as the hash function.

도 2의 PBKDF2 알고리즘에서, 파일명의 암호화키(FNK)를 생성하기 위해서, 의사 난수 함수(PRF)로서 HMAC(hash-based Message Authentication Code) 함수의 출력이 이용될 수 있고, 솔트(SFNK)로서 암호화된 파일이 저장될 저장 장치에 관련하여 시불변인(time-invariant) 정보, 예를 들어, 비휘발성 저장 장치(30)의 제조 일련 번호와 같은 정보가 이용될 수 있다.In PBKDF2 algorithm of Figure 2, as, doctors and the output of the HMAC (hash-based Message Authentication Code ) function as a random number function (PRF) may be used, Salt (S FNK) to generate the encryption key (FNK) of the file name Information such as time-invariant information relating to the storage device in which the encrypted file is to be stored, for example, the manufacturing serial number of the nonvolatile storage device 30, may be used.

다이제스트 길이 파라미터(kLen)는 추후에 이용될 암호화 알고리즘의 종류, 즉 DES, 3-DES, AES 128, AES 192, AES 256 등에서 사용되는 키 길이에 따라 정해진다.The digest length parameter (kLen) is determined according to the key length used in the types of encryption algorithms to be used in the future, i.e., DES, 3-DES, AES 128, AES 192, AES 256,

반복 회수 파라미터(C)는 예를 들어 1000회 정도로 특정될 수 있다.The repetition number parameter C may be specified to be, for example, about 1000 times.

실시예에 따라, 파일명의 암호화키(FNK)를 위해 사용자 패스워드에 기초한 단순한 해시 함수가 이용될 수도 있다.Depending on the embodiment, a simple hash function based on the user's password may be used for the encryption key (FNK) of the filename.

나아가, 파일 데이터 암호화키(FDK)를 생성하기 위해서, 의사 난수 함수(PRF)로서 HMAC 함수의 출력이 이용될 수 있고, 솔트(SFDK)로서 파일명(FN), 실시예에 따라서는 앞서 산출된 파일명 암호화키(FNK) 또는 파일명 암호화키(FNK)로부터 새로 도출된 다이제스트 중 어느 하나가 이용될 수 있다.Further, in order to generate the file data encryption key FDK, the output of the HMAC function as the pseudo-random number function PRF may be used and the file name FN as salt FDK , in some embodiments, Either a newly derived digest from the file name encryption key (FNK) or the file name encryption key (FNK) can be used.

마찬가지로, 다이제스트 길이 파라미터(kLen)는 추후에 이용될 암호화 알고리즘의 종류, 즉 DES, 3-DES, AES 128, AES 192, AES 256 등의 키 길이에 따라 정해지고, 반복 회수 파라미터(C)도 예를 들어 1000회 정도로 특정될 수 있다.Similarly, the digest length parameter (kLen) is determined according to the key lengths of the types of encryption algorithms to be used later, namely, DES, 3-DES, AES 128, AES 192, AES 256, For example, about 1000 times.

도 2에서 파일 데이터 암호화키(FDK)를 생성하기 위한 솔트(SFDK)로서 파일명(FN), 파일명 암호화키(FNK) 또는 파일명 암호화키(FNK)로부터 새로 도출된 다이제스트 중 어느 하나가 이용된다는 점이 특이하다. As Salt (S FDK) for generating the file data encryption key (FDK) in FIG. 2 filename (FN), which point is that one is used in the newly derived digest from the file name encryption key (FNK) or file encryption key (FNK) Unusual.

종래의 파일명 암호화 기법은 파일 데이터 암호화키와 동일한 암호화키로 암호화하기 때문에 효율적이지만, 사용자 패스워드를 식별당할 가능성이 더 높다. The conventional file name encryption scheme is efficient because it encrypts with the same encryption key as the file data encryption key, but the user password is more likely to be identified.

그러나 본 발명에서 파일 암호화 기법은 파일명의 암호화키(FNK)와 파일 데이터의 암호화키(FDK)가 서로 다르기 때문에 사용자 패스워드(UPW)가 식별당할 가능성이 낮고, 서로 다른 파일 데이터마다 서로 다른 파일명이 사용되기 때문에 파일 데이터의 암호화키들(FDK)도 모두 다르므로 공격자가 암호화된 파일 데이터를 탈취하더라도 복호화할 가능성이 매우 낮다. 또한 파일 데이터 암호화키(FDK)의 솔트(SFDK)는 파일명(FN) 또는 파일명 암호화키(FNK)로부터 도출되므로, 파일 데이터 암호화키(FDK) 또는 이를 위한 솔트(SFDK)를 시스템(10) 내부에 별도로 저장할 필요가 없다.However, in the present invention, since the encryption key (FNK) of the file name is different from the encryption key (FDK) of the file data, the possibility of the user password UPW being identified is low and different file names are used for different file data The encryption keys FDK of the file data are all different. Therefore, even if the attacker takes the encrypted file data, it is very unlikely to decrypt it. In addition salt (S FDK) is the filename (FN) or the file name so derived from the encryption key (FNK), file data encryption key (FDK) or salt (S FDK) to system 10 for this file data encryption key (FDK) There is no need to store them separately.

파일이 둘 이상인 경우에는, 암호화키 생성부(11)는 하나의 파일명 암호화키(FNK)와 파일의 개수만큼의 복수의 파일 데이터 암호화키들(FDK)을 각각 생성할 수 있다.If there are two or more files, the encryption key generating unit 11 can generate one file name encryption key FNK and a plurality of file data encryption keys FDK as many as the number of files.

이어서, 단계(S12)에서, 파일 데이터 암호화부(12)는 파일 데이터 암호화키(FDK)를 이용하여 파일 데이터를 암호화할 수 있다.Subsequently, in step S12, the file data encryption unit 12 can encrypt the file data using the file data encryption key (FDK).

파일 데이터의 암호화를 예시하기 위해 도 3을 참조하면, 도 3은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 저장 과정을 예시한 개념도이다.3 is a conceptual diagram illustrating a process of storing an encrypted file in an encrypted file management system according to an embodiment of the present invention.

단계(S121)에서, 파일 데이터 암호화부(12)는 암호화키 생성부(11)로부터 암호화할 원본 파일에 상응하는 파일 데이터 암호화키(FDK)를 수신하고, 단계(S122)에서, 암호화되어 저장될 원본 파일 데이터(FD)를 암호화 알고리즘 연산부(121)에 입력하여 암호화된 파일 데이터(EFD)를 생성하며, 단계(S123)에서, 암호화된 파일 데이터(EFD)를 운영체제(20)의 파일 입출력 시스템(21)에 전달한다. In step S121, the file data encryption unit 12 receives the file data encryption key (FDK) corresponding to the original file to be encrypted from the encryption key generation unit 11, and in step S122, The encrypted file data EFD is input to the file input / output system (OS) 20 of the operating system 20 in step S123, and the original file data FD is input to the encryption algorithm operation unit 121 to generate encrypted file data EFD. 21).

이어서, 운영체제(20)의 파일 입출력 시스템(21)은 암호화된 파일 데이터를 비휘발성 저장 장치(30)의 소정의 데이터 저장 영역(32)에 저장한다.Subsequently, the file input / output system 21 of the operating system 20 stores the encrypted file data in the predetermined data storage area 32 of the nonvolatile storage device 30.

이때, 만약 암호화될 원본 파일이 메인 메모리(RAM)에서 새로 생성되어 처음으로 비휘발성 저장 장치(30)에 저장되는 파일이라면, 암호화 파일 관리 시스템(10)은 암호화된 파일 데이터(EFD)를 저장한 후에 추가적으로 비휘발성 저장 장치(30)에 대해 파일 삭제 등의 조치를 하지 않는다.At this time, if the original file to be encrypted is a file newly created in the main memory (RAM) and stored in the nonvolatile storage device 30 for the first time, the encrypted file management system 10 stores the encrypted file data EFD There is no further action such as file deletion to the nonvolatile storage device 30 after that.

반면에, 만약, 암호화될 원본 파일이 암호화 지시 이전부터 비휘발성 저장 장치(30)에 암호화되지 않은 상태로 저장되어 있던 파일(FD)이라면, 암호화 파일 관리 시스템(10)은, 암호화된 파일 데이터(EFD)를 비휘발성 저장 장치(30)의 데이터 저장 영역(32)에 저장하도록 운영체제(20)의 파일 입출력 시스템(21)에 전달한 후에, 추가적으로 비휘발성 저장 장치(30)의 데이터 저장 영역(32)에 저장되어 있던 원본 파일 데이터(FD)의 흔적을 찾고, 발견된 원본 파일 데이터(FD)의 흔적을 보안 삭제할 필요가 있다. 이러한 보안 삭제에 관하여는 추후에 좀더 상세하게 서술한다.On the other hand, if the original file to be encrypted is a file (FD) that has been stored in the non-volatile storage device 30 in an unencrypted state before the encryption instruction, the encrypted file management system 10 transmits the encrypted file data Volatile storage device 30 to the file input / output system 21 of the operating system 20 so as to store the EFD in the data storage area 32 of the nonvolatile storage device 30, It is necessary to find traces of the original file data FD stored in the original file data FD and securely delete the traces of the found original file data FD. This security deletion will be described later in more detail.

파일 데이터 암호화부(12)의 파일 데이터 암호화 동작에 이어서 또는 동시에, 단계(S13)에서, 파일명 암호화부(13)는 파일명 암호화키(FNK)를 이용하여 파일명(FN)을 암호화할 수 있다.The file name encryption unit 13 can encrypt the file name FN by using the file name encryption key FNK in succession to or simultaneously with the file data encryption operation of the file data encryption unit 12 in step S13.

파일 데이터의 암호화를 예시하기 위해 도 4를 참조하면, 도 4는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일명의 저장 과정을 예시한 개념도이다.4 is a conceptual diagram illustrating a process of storing an encrypted file name in an encrypted file management system according to an embodiment of the present invention.

파일명 암호화부(13)는 단계(S131)에서, 암호화키 생성부(11)로부터 암호화할 원본 파일에 대한 파일명 암호화키(FNK)를 수신하고, 단계(S132)에서, 암호화되어 저장될 원본 파일의 파일명(FN)을 암호화 알고리즘 연산부(131)에 입력하여 암호화된 파일명(EFN)을 생성하며, 단계(S133)에서, 암호화된 파일명(EFN)을 운영체제(20)의 파일 입출력 시스템(21)에 전달한다.The file name encrypting unit 13 receives the file name encryption key FNK for the original file to be encrypted from the encryption key generating unit 11 in step S131, In step S133, the encrypted file name EFN is transmitted to the file input / output system 21 of the operating system 20 by inputting the file name FN to the encryption algorithm operation unit 131 to generate an encrypted file name EFN. do.

이어서, 운영체제(20)의 파일 입출력 시스템(21)은 암호화된 파일 데이터(EFD)가 저장된 비휘발성 저장 장치(30)의 소정의 데이터 저장 영역(32)의 주소와 암호화된 파일명(EFN)을 소정의 파일 관리 영역(31)에 저장한다.The file input / output system 21 of the operating system 20 then stores the address of the predetermined data storage area 32 of the nonvolatile storage device 30 in which the encrypted file data EFD is stored and the encrypted file name EFN, In the file management area 31 of FIG.

예를 들어 NTFS(NT file system)에서 파일 관리 영역(31)은 마스터 파일 테이블(MFT, master file table)이고, 파일 입출력 시스템(21)은 암호화되지 않은 파일명 대신에 암호화된 파일명(EFN)과 암호화된 파일 데이터(EFD)의 저장 주소를 마스터 파일 테이블에 입력할 수 있다.For example, in the NT file system (NTFS), the file management area 31 is a master file table (MFT), and the file input / output system 21 has an encrypted file name (EFN) The storage address of the file data EFD can be input to the master file table.

이때, 만약 암호화될 원본 파일이 메인 메모리에서 새로 생성되어 처음으로 비휘발성 저장 장치(30)에 저장되는 파일이라면, 암호화 파일 관리 시스템(10)은 암호화된 파일명(EFN)을 저장한 후에 추가적으로 비휘발성 저장 장치(30)에 대해 파일명 정리 등의 조치를 하지 않는다.If the original file to be encrypted is newly created in the main memory and stored in the nonvolatile storage device 30 for the first time, the encrypted file management system 10 stores the encrypted file name (EFN) No action is taken on the storage device 30 such as filename resolution.

반면에, 만약, 암호화될 원본 파일이 암호화 지시 이전부터 비휘발성 저장 장치(30)에 암호화되지 않은 상태로 저장되어 있던 파일이라면, 암호화 파일 관리 시스템(10)은, 암호화된 파일명(EFN)을 운영체제(20)의 파일 입출력 시스템(21)에 전달한 후에, 추가적으로 비휘발성 저장 장치(30)의 파일 관리 영역(31)에 기록되어 있던 원본 파일에 관련되어 발견되는 엔트리 또는 그 흔적을, 데이터 저장 영역(32) 내의 원본 파일 데이터(FD)의 흔적과 함께, 보안 삭제할 필요가 있다. 이러한 보안 삭제에 관하여는 추후에 좀더 상세하게 서술한다.On the other hand, if the original file to be encrypted is a file stored in the nonvolatile storage 30 in an unencrypted state before the encryption instruction, the encrypted file management system 10 stores the encrypted file name (EFN) Volatile storage device 30 to the file input / output system 21 of the nonvolatile storage device 20, the entry or its trace found in association with the original file recorded in the file management area 31 of the nonvolatile storage device 30, 32 together with the traces of the original file data (FD). This security deletion will be described later in more detail.

이렇게 파일명과 파일 데이터가 각각 암호화되어 저장된 암호화된 파일에 대해 읽기 액세스가 있을 경우에, 단계(S14)에서, 파일 복호화부(14)는 사용자로부터 사용자 패스워드(UPW)를 입력받고, 입력된 사용자 패스워드(UPW)로부터 생성한 파일명 암호화키(FNK)를 이용하여 암호화된 파일명(EFN)으로부터 복호화된 파일명(FN)을 복원하며, 복호화된 파일명(FN) 및 사용자 패스워드(UPW)로부터 생성한 파일 데이터 암호화키(FDK)를 이용하여 암호화된 파일 데이터(EFD)로부터 복호화된 파일 데이터를 생성한다.When there is a read access to the encrypted file in which the file name and the file data are respectively encrypted and stored, in step S14, the file decryption unit 14 receives the user password UPW from the user, (FN) decrypted from the encrypted file name (EFN) by using the file name encryption key (FNK) generated from the user name UPW and encrypts the file data FN generated from the decrypted file name FN and the user password UPW And generates decrypted file data from the encrypted file data EFD using the key FDK.

복호화된 파일명(FN) 및 복호화된 파일 데이터(FD)는 당해 파일을 호출한 운영체제의 프로세스 또는 사용자 어플리케이션에 제공될 수 있다.The decrypted file name (FN) and decrypted file data (FD) may be provided to a process or user application of the operating system that called the file.

복호화 독출 과정을 예시하기 위해 도 5를 참조하면, 도 5는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 복호화 독출 과정을 예시한 개념도이다.FIG. 5 is a conceptual diagram illustrating a decryption-read process of an encrypted file in the encrypted file management system according to an embodiment of the present invention.

도 5에서, 파일 복호화부(14)는, 단계(S141)에서, 사용자로부터 사용자 패스워드(UPW)를 입력받고, 단계(S142)에서, 암호화키 생성부(11)에서 파일명 암호화키(FNK) 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘(PBKDF2), 파라미터들(PRF, SFNK, C, kLen) 및 사용자 패스워드(UPW)에 따라 파일명 암호화키(FNK)를 생성하고, 단계(S143)에서, 운영체제(20)의 파일 입출력 시스템(21)을 통해 암호화된 파일명(EFN)을 획득하며, 단계(S144)에서, 파일명 암호화키(FNK)를 이용하여 파일명 암호화부(13)에서 사용되는 것과 동일한 암호화 알고리즘(AES 등)에 따라 복호화된 파일명(FN)을 복원한다.5, the file decryption unit 14 receives the user password UPW from the user in step S141 and generates a file name encryption key FNK in the encryption key generation unit 11 in step S142 at the time of deriving the same encryption key as that used in the algorithm (PBKDF2), parameters (PRF, s FNK, C, kLen) and user password generating a file name encryption key (FNK) according to (UPW), and step (S143), The encrypted file name EFN is acquired through the file input / output system 21 of the operating system 20 and the same encryption key FNK as used in the file name encryption unit 13 is obtained by using the file name encryption key FNK in step S144. And restores the decrypted file name FN according to the algorithm (AES, etc.).

이어서, 파일 복호화부(14)는 단계(S145)에서, 암호화키 생성부(11)에서 파일 데이터 암호화키(FDK) 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘(PBKDF2), 파라미터들(PRF, C, kLen), 솔트(SFDK)인 복원된 파일명(FN) 또는 파일명 암호화키(FNK) 및 사용자 패스워드(UPW)에 따라 파일 데이터 암호화키(FDK)를 생성하고, 단계(S146)에서, 운영체제(20)의 파일 입출력 시스템(21)을 통해 암호화된 파일 데이터(EFD)를 획득하며, 단계(S147)에서, 암호화된 파일 데이터(EFD)로부터 파일 데이터 암호화키(FDK)를 이용하여 파일 데이터 암호화부(12)에서 사용되는 것과 동일한 암호화 알고리즘(AES 등)에 따라 복호화된 파일 데이터(FD)를 생성한다.Subsequently, in step S145, the file decryption unit 14 encrypts the encryption key derivation algorithm PBKDF2, the parameters PRF, The file data encryption key FDK is generated in accordance with the restored file name FN or filename encryption key FNK and user password UPW which are the passwords C and KLen and S FDK in step S146, The encrypted file data EFD is obtained through the file input / output system 21 of the file server 20 in step S147 and the encrypted file data EFD is obtained from the encrypted file data EFD in step S147 by using the file data encryption key FDK And generates decrypted file data FD in accordance with the same encryption algorithm (AES or the like) used in the section 12.

이후에, 파일 복호화부(14)는 복호화된 파일명(FN) 및 복호화된 파일 데이터(FD)를 당해 파일을 호출한 운영체제의 프로세스 또는 사용자 어플리케이션에 제공할 수 있다.Thereafter, the file decryption unit 14 may provide the decrypted file name FN and the decrypted file data FD to the process or user application of the calling operating system.

이렇듯, 본 발명의 암호화 파일 관리 시스템(10)은 파일명(FN)과 파일 데이터(FD)의 암호화 및 복호화를 위해, 사용자 패스워드(UPW), 솔트들(SFNK, SFDK), 파라미터들(PRF, C, kLen), 파일명 암호화키(FNK), 파일 데이터 암호화키(FDK)가 필요하지만, 이들 정보 중에 파일명 암호화를 위한 솔트(SFNK)와 일부 파라미터들(PRF, C, kLen)을 제외하고는, 암호화/복호화에 필요한 중요 정보를 암호화 파일 관리 시스템(10) 또는 운영체제(20) 내지 비휘발성 저장 장치(30) 중 어디에도 별도로 저장할 필요가 없다.As described above, the encryption file management system 10 of the present invention includes a user password UPW, salts SFNK , S FDK , parameters PRF, SFN , and SFN for encrypting and decrypting a file name FN and file data FD. , C, kLen, a file name encryption key FNK, and a file data encryption key FDK are required. Among these pieces of information, the salt S FNK for encrypting the file name and some parameters PRF, C, kLen are excluded It is not necessary to separately store important information necessary for encryption / decryption in either the encrypted file management system 10 or the operating system 20 or the non-volatile storage device 30. [

암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 단계(S15)에서, 파일 보안 삭제부(15)가 운영체제(20)의 파일 입출력 시스템(21)을 통해 비휘발성 저장 장치(30)의 파일 관리 영역(31)에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록한다.The file security deleting unit 15 deletes the encrypted file from the file input and output system 21 of the operating system 20 in step S15 when the user securely deletes the trace of the original file remaining after being encrypted, Writes in the file management area 31 of the nonvolatile storage device 30 an entry of the file name and address of the deletion target and the pages of the file data to be deleted stored in the data storage area 32 as 0x00 And a trim function to erase the entries of the file names and addresses to be deleted in the file management area 31 and the pages of file data to be deleted in the data storage area 32. When the trim function is completed, The entry of the deletion target file name and address and the pages of the deletion target file data in the data storage area 32 are all written as 0xFF.

여기서, 플래시 메모리와 같은 비휘발성 메모리는 통상적으로 소거된 상태를 "1"로 보고, 프로그램된 상태를 "0"으로 표현하며, "1"→"0"은 셀 단위로도 가능하지만, "0"→"1"은 전체 블록을 소거할 때만 가능하다.Here, a nonvolatile memory such as a flash memory typically refers to the erased state as "1" and the programmed state as "0", while "1" to "0" "→" 1 "is available only when the entire block is erased.

따라서, 위에서 특정 페이지들을 모두 0x00으로 기록하는 동작은 이미 "0"인 셀은 그대로 두고, "1"인 셀은 "0"으로 프로그램함으로써 쉽게 수행될 수 있다.Therefore, the operation of writing all of the specific pages at 0x00 above can be easily performed by leaving the cell that is already "0" as it is, and programming the cell which is "1" as "0".

이러한 보안 삭제 절차를 좀더 구체적으로 예시하기 위해 도 6을 참조하면, 도 6은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 보안 삭제 과정을 예시한 개념도이다.FIG. 6 is a conceptual diagram illustrating a process of deleting an encrypted file in the encrypted file management system according to an embodiment of the present invention. Referring to FIG.

도 6에서, 파일 보안 삭제부(15)는 단계(S151)에서, 운영체제(20)의 파일 입출력 시스템(21)을 통해 비휘발성 저장 장치(30)의 파일 관리 영역(31)에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하고, 단계(S152)에서, 파일 관리 영역(31)에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하며, 단계(S153)에서, 트림(trim) 기능을 수행하여 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 소거하며, 단계(S154)에서, 트림 기능이 종료되면, 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록한다.In step S151, the file security deletion unit 15 deletes the file deletion target (s) recorded in the file management area 31 of the nonvolatile storage device 30 via the file input / output system 21 of the operating system 20 Both the entry of the file name and the address and the pages of the file data to be deleted stored in the data storage area 32 are written as 0x00. In step S152, the entry of the file name and address to be deleted, It is checked whether all the pages of the file data to be deleted stored in the data storage area 32 have been written with 0x00. In step S153, a trim function is performed, The pages of the file data to be deleted are erased in the entry and data storage area 32. When the trim function is finished in step S154, And deleted in the data storage area 32, all the pages of the target file data is written to 0xFF.

본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. It will be understood that variations and specific embodiments which may occur to those skilled in the art are included within the scope of the present invention.

또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Further, the apparatus according to the present invention can be implemented as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the recording medium include ROM, RAM, optical disk, magnetic tape, floppy disk, hard disk, nonvolatile memory and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

10 암호화 파일 관리 시스템
11 암호화키 생성부
12 파일 데이터 암호화부
13 파일명 암호화부
14 파일 복호화부
15 파일 보안 삭제부
20 운영체제
21 파일 입출력 시스템
30 비휘발성 저장 장치
31 파일 관리 영역
32 데이터 저장 영역
10 Encrypting File Management System
11 encryption key generation unit
12 File data encryption unit
13 file name encryption unit
14 File Decoding Unit
15 File security deletion unit
20 Operating System
21 File I / O System
30 Nonvolatile Storage Devices
31 File management area
32 data storage area

Claims (7)

사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부;
상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부; 및
상기 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부를 포함하되,
상기 암호화키 생성부는 상기 파일 데이터 암호화키를 위한 솔트로서 상기 파일명, 상기 파일명 암호화키, 또는 상기 파일명 암호화키로부터 새로 도출된 다이제스트 중 어느 하나를 이용하도록 동작하고, 의사 난수 함수(PRF), 사용자 패스워드(P), 암호학 솔트들(SFNK, SFDK), 반복 회수 파라미터(C) 및 다이제스트 길이 파라미터(kLen)를 기반으로 해시 함수를 이용하여 상기 파일명 암호화키 및 파일 데이터 암호화키를 생성하는 것을 특징으로 하는 암호화 파일 관리 시스템.
Generates a file name encryption key by a predetermined encryption key derivation algorithm based on a user password inputted from the user, generates a file data encryption key by a salt derived from the file name and a predetermined encryption key derivation algorithm based on the user password An encryption key generation unit for generating an encryption key;
A file data encryption unit for encrypting file data using the file data encryption key; And
And a file name encryption unit for encrypting the file name using the file name encryption key,
Wherein the encryption key generator is operative to use either the file name, the file name encryption key, or the newly derived digest from the file name encryption key as the salt for the file data encryption key, and the pseudo-random number function (PRF) The file name encryption key and the file data encryption key are generated using the hash function based on the encryption key P, the encryption salts S FNK and S FDK , the repetition number parameter C and the digest length parameter kLen The encrypted file management system.
삭제delete 청구항 1에 있어서, 암호화 대상 파일 또는 암호화된 파일은 비휘발성 저장 장치에 저장되는 것을 특징으로 하는 암호화 파일 관리 시스템.The system according to claim 1, wherein the encrypted file or the encrypted file is stored in a non-volatile storage device. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하는 단계;
파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 단계;
상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 단계; 및
상기 파일명 암호화키를 이용하여 파일명을 암호화하는 단계를 포함하되,
상기 파일 데이터 암호화키를 위한 솔트로서 상기 파일명, 상기 파일명 암호화키, 또는 상기 파일명 암호화키로부터 새로 도출된 다이제스트 중 어느 하나를 이용하도록 동작하고, 의사 난수 함수(PRF), 사용자 패스워드(P), 암호학 솔트들(SFNK, SFDK), 반복 회수 파라미터(C) 및 다이제스트 길이 파라미터(kLen)를 기반으로 해시 함수를 이용하여 상기 파일명 암호화키 및 파일 데이터 암호화키를 생성하는 것을 특징으로 하는 암호화 파일 관리 방법.
Generating a file name encryption key by a predetermined encryption key derivation algorithm based on a user password inputted from a user;
Generating a file data encryption key by a salt derived from a file name and a predetermined encryption key derivation algorithm based on the user password;
Encrypting the file data using the file data encryption key; And
Encrypting the file name using the file name encryption key,
(P), a password (P), a password (P), and a password (P) as a salt for the file data encryption key, and to use any one of the file name, the file name encryption key, Wherein the file name encryption key and the file data encryption key are generated by using a hash function based on the salts (S FNK , S FDK ), the repetition number parameter (C), and the digest length parameter (kLen) Way.
삭제delete 청구항 4에 있어서, 암호화 대상 파일 또는 암호화된 파일은 비휘발성 저장 장치에 저장되는 것을 특징으로 하는 암호화 파일 관리 방법.The method according to claim 4, wherein the file to be encrypted or the encrypted file is stored in a non-volatile storage device. 컴퓨터에서 청구항 4 및 6 중 어느 한 청구항에 따른 암호화 파일 관리 방법을 구현시킬 수 있는 컴퓨터 프로그램이 수록된 컴퓨터로 독출될 수 있는 기록 매체.A computer-readable recording medium having embodied thereon a computer program for implementing a method of managing an encrypted file according to any one of claims 4 and 6.
KR1020140110934A 2014-08-25 2014-08-25 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 KR101648262B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140110934A KR101648262B1 (en) 2014-08-25 2014-08-25 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140110934A KR101648262B1 (en) 2014-08-25 2014-08-25 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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20130162450A Division KR101467227B1 (en) 2013-12-24 2013-12-24 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

Publications (2)

Publication Number Publication Date
KR20150075350A KR20150075350A (en) 2015-07-03
KR101648262B1 true KR101648262B1 (en) 2016-08-16

Family

ID=53788386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140110934A KR101648262B1 (en) 2014-08-25 2014-08-25 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

Country Status (1)

Country Link
KR (1) KR101648262B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024034997A1 (en) * 2022-08-09 2024-02-15 박종성 Terminal device and method for unrecoverably deleting data by using same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287733B (en) * 2019-06-05 2021-07-23 杭州迪普科技股份有限公司 File tamper-proofing method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001060944A (en) * 1999-08-24 2001-03-06 Hitachi Ltd Cipher communication system
JP2012018501A (en) * 2010-07-07 2012-01-26 Canon Inc Information processing apparatus, control method of information processing apparatus, and program
US20120278633A1 (en) * 2011-04-29 2012-11-01 Georgetown University Method and system for managing information on mobile devices

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020083551A (en) * 2001-04-27 2002-11-04 김성열 Development and Operation Method of Multiagent Based Multipass User Authentication Systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001060944A (en) * 1999-08-24 2001-03-06 Hitachi Ltd Cipher communication system
JP2012018501A (en) * 2010-07-07 2012-01-26 Canon Inc Information processing apparatus, control method of information processing apparatus, and program
US20120278633A1 (en) * 2011-04-29 2012-11-01 Georgetown University Method and system for managing information on mobile devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024034997A1 (en) * 2022-08-09 2024-02-15 박종성 Terminal device and method for unrecoverably deleting data by using same

Also Published As

Publication number Publication date
KR20150075350A (en) 2015-07-03

Similar Documents

Publication Publication Date Title
US9043614B2 (en) Discarding sensitive data from persistent point-in-time image
US8464073B2 (en) Method and system for secure data storage
CN102945355B (en) Fast Data Encipherment strategy based on sector map is deferred to
US11329814B2 (en) Self-encryption drive (SED)
JP4463320B1 (en) ENCRYPTION STORAGE DEVICE, INFORMATION DEVICE, AND ENCRYPTION STORAGE DEVICE SECURITY METHOD
JP7096829B2 (en) How and system to verify data deletion process
JP2015172959A (en) Access method for flash memory
JP2024500732A (en) Cryptographic erasure of data stored in key-per IO-enabled devices via internal operations
Yang et al. SADUS: Secure data deletion in user space for mobile devices
KR101231592B1 (en) A flash memory control device for secure deletion and the method thereof
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
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
KR100874872B1 (en) A secure flash-memory-based secondary storage device that supports safe overwriting
KR100941368B1 (en) Flash memory device having secure file deletion function and method for securely deleting flash file
TWI775284B (en) Memory system, its control method and information processing system
JP2012084043A (en) Encryption storage device, information apparatus and security method for encryption storage device
Tiwari et al. Secure Wipe Out in BYOD Environment
WO2022086602A1 (en) Data storage device encryption
JP6999679B2 (en) Data erasure method and equipment
Choi et al. Password-based single-file encryption and secure data deletion for solid-state drive
Ahn et al. IoT security: On-chip secure deletion scheme using ECC modulation in IoT appliances
Srinivasan et al. Deaddrop-in-a-flash: Information hiding at SSD nand flash memory physical layer
Jin et al. An encryption approach to secure modification and deletion for flash-based storage
KR102386219B1 (en) Method And System for Policy-Based Versioning based on SGX-SSD
Peters DEFY: A Deniable File System for Flash Memory

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant