KR101467227B1 - Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템 - Google Patents

Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템 Download PDF

Info

Publication number
KR101467227B1
KR101467227B1 KR20130162450A KR20130162450A KR101467227B1 KR 101467227 B1 KR101467227 B1 KR 101467227B1 KR 20130162450 A KR20130162450 A KR 20130162450A KR 20130162450 A KR20130162450 A KR 20130162450A KR 101467227 B1 KR101467227 B1 KR 101467227B1
Authority
KR
South Korea
Prior art keywords
file
encryption key
file name
data
file data
Prior art date
Application number
KR20130162450A
Other languages
English (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 KR20130162450A priority Critical patent/KR101467227B1/ko
Application granted granted Critical
Publication of KR101467227B1 publication Critical patent/KR101467227B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 실시예들에 따른 암호화 파일 관리 시스템은 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부, 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부 및 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부를 포함할 수 있다.

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}
본 발명은 파일 암호화 기술에 관한 것으로, 더욱 상세하게는, 패스워드 기반의 파일 암호화 기술에 관한 것이다.
플래시 메모리(Flash memory)를 비롯한 비휘발성 소자 기술의 발달로 인해 비휘발성 저장 장치가 급격히 저렴해지고 대용량화되면서, 솔리드 스테이트 드라이브(SSD, solid state drive)와 같은 비휘발성 저장 장치가 전통적인 하드 디스크 드라이브(HDD, Hard disk drive)를 대체할 수 있게 되었다.
이러한 SSD를 비롯한 비휘발성 저장 장치들에 있어서, 최종 사용자들은 사용 시에 HDD와 별다른 차이를 느끼지 못하지만, 실제로 쓰기, 읽기 및 삭제(delete) 명령 시에 일어나는 동작들은 HDD에서 일어나는 동작들과는 본질적인 차이를 가진다.
SSD와 HDD의 동작 상에 가장 큰 차이는 삭제나 덮어쓰기를 하기 위한 일련의 동작과, 가비지 컬렉션(Garbage collection) 동작, 웨어 레벨링, 트림(trim) 동작 등이다.
HDD는 디스크 상의 임의의 위치에서 적게는 비트 단위로 곧바로 새로운 데이터를 덮어쓰기할 수 있다. 이에 반해, SSD는 어떤 데이터를 완전히 삭제하여 빈 블록을 만들거나 다른 데이터로 덮어쓰기하고자 한다면, 먼저 지우고자 하는 페이지를 가진 블록의 모든 페이지들을 다른 빈 블록으로 복사한 후에 해당 블록 전체가 소거(erase)되어야 한다. 그 이후에, 소거되어 비워진 블록에 새로 워드, 페이지 등 더 작은 단위의 데이터가 프로그램(program)됨으로써 비로소 덮어쓰기가 완료될 수 있다. 평소에 SSD 내에 빈 블록들이 충분히 준비되어야 있어야 원활하게 쓰기할 수 있으므로 SSD는 지속적으로 파일 조각들을 모아 단편화를 막아야 한다. 이를 가비지 컬렉션이라고 한다.
또한 SSD는 각 셀의 수명이 쓰기와 소거 횟수에 의해 좌우되므로, 저장 장치의 수명을 늘리기 위해서는 블록들에 대한 쓰기와 소거 횟수를 평준화해야 하는데 이를 웨어 레벨링(wear-leveling)이라고 한다.
트림 동작은, 가비지 컬렉션 동작이 SSD의 내부 컨트롤러가 자체적으로 빈 블록들을 만드는 동작이라 한다면, 운영체제가 SSD에 대해 좀더 적극적으로 빈 블록 만들기를 수행하는 동작이다. 예를 들어, 운영체제가 파일을 삭제할 경우에, HDD라면 단지 파일 시스템의 파일 엔트리를 조작하는 동작만으로 파일 삭제가 가능하고 데이터가 삭제되었다고 표시된 블록 위에 빈 블록으로서 언제라도 새 데이터를 덮어쓰기할 수 있지만, SSD라면 파일 엔트리만 조작하여서는 해당 블록 위에 새 데이터를 덮어쓸 수 없다. 이때, 운영체제가 파일 삭제 시에 SSD에 트림 명령을 보내면, SSD는 파일의 파일 시스템 상의 논리적 삭제뿐 아니라, 해당 파일이 기록되어있던 블록들을 적시에 소거하여 빈 블록들로 만들고, 남은 조각이 있다면 가비지 컬렉션하여 빈 블록을 확보한다.
이러한 SSD 만의 특징에 따라, 종래에 HDD에 기반하여 개발된 보안 삭제 방법은 사용자가 그러한 보안 삭제 방법들로써 데이터를 삭제시켰다 하더라도 SSD의 컨트롤러가 실제로 가비지 컬렉션을 수행하여 빈 블록으로 만들기 전에는 데이터가 그대로 남아 있어서 얼마든지 복구될 수 있다는 문제를 가진다.
또한 만약 보안 삭제 어플리케이션이 운영체제와 독립적으로 삭제 동작을 수행하여 파일이 점유하던 블록을 사실상의 빈 블록으로 만든다면, 운영체제는 그러한 삭제 동작이 운영체제를 통하지 않았기 때문에 그 블록이 계속 그 파일에 의해 점유된 것으로 인식한다거나, 또는 추후에 운영체제가 이미 전부 "1"로 채워진 블록을 중복적으로 다시 소거 시도한다거나 하는 오동작 또는 불필요한 동작으로 인한 성능 저하를 일으킬 수 있다.
한편, 파일 암호화 기술은 하드웨어 기반 방식과 소프트웨어 기반 방식으로 구분될 수 있다. 하드웨어 기반 방식은 저장 장치가 하드웨어 암호화 칩을 내장하는 방식으로서, 저장 장치가 자체적으로 암호화와 복호화를 실시간으로 수행한다. 그러나 흔히 사용하는 USB(universal serial bus) 방식의 외장형 드라이브 또는 SATA(Serial Advanced Technology Attachment) 드라이브는, 원래 호스트로부터 전원 라인이 계속 연결되어 있는 한, 데이터 버스가 다른 호스트에 연결되어도(replugging) 이를 인식하지 못하기 때문에, 인증된 호스트에 의해 언락(unlock)된 이후 비인증된 호스트의 데이터 버스에 연결되어도 계속 언락 상태를 유지한다. 따라서 비인증 호스트가 암호화된 SSD에 접근할 수 있다. 이렇게 하드웨어 기반의 파일 암호화 기술은 이러한 핫 플러그(hot plug) 공격에 취약하다.
소프트웨어 기반 방식의 경우에, 사용자는 원하는 파일만 암호화하거나 드라이브 전체를 암호화할 수 있다. 드라이브 전체를 암호화하는 것은 비효율적이므로 파일 별로 또는 디렉토리/폴더 별로 암호화하는 것이 보통이다. 하지만, 통상적으로 사용되는 대칭키 암호화 방식에서 암호 자체 또는 암호화키는 파일에 첨부되든 운영체제 또는 어플리케이션이 제공하는 특정 위치에 저장되든 어딘가에 어느 형태로든 저장되어야 하기 때문에, 저장된 암호 또는 암호화키로부터 암호가 노출될 가능성이 있다. 또한 파일에 관하여 중요한 정보를 가질 수 있는 파일 이름은 암호화되지 않는 문제도 있다.
마찬가지로 종래의 HDD 기반으로 개발된 암호화 방법을 SSD에 그대로 적용할 경우에는, 암호화키가 SSD 내의 어딘가에 저장되는데 암호화된 파일을 운영체제 상에서 삭제하더라도 즉각적으로 파일과 함께 암호화키가 모두 실제로 소거된다는 보장이 없다.
무엇보다, SSD에서 곧바로 덮어쓰기가 안 되기 때문에, 사용자가 기존 암호화되지 않은 원본 파일을 암호화하여 암호화된 파일을 새로 생성할 때에, 암호화하기 전의 원본 데이터는 SSD 상에서 논리적으로 삭제될 뿐 실제로 소거되기 전까지는 실질적으로 그대로 남아 있어서, 암호화되지 않은 데이터가 온전히 복구될 수 있다.
이에 따라, 이러한 종래의 문제점들을 극복하고 SSD에 적합한 파일 암호화 기술과, 암호화된 파일의 보안 삭제 기술이 요구된다.
본 발명이 해결하고자 하는 과제는 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 SSD 기반의 저장 매체에서 핫 플러그 공격을 방어할 수 있고 필요한 파일 또는 폴더만 선택적으로 암호화할 수 있고, 파일명까지 암호화할 수 있는 패스워드 기반의 암호화 파일 관리 방법 및 이를 이용한 암호화 파일 관리 시스템을 제공하는 데에 있다.
본 발명이 해결하고자 하는 과제는 SSD 기반의 저장 매체에서 암호화된 파일에 관련되어 운영체제와 충돌하지 않고 데이터를 보안 삭제할 수 있는 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템을 제공하는 데에 있다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확히 이해될 수 있을 것이다.
본 발명의 일 측면에 따른 암호화 파일 관리 시스템은,
사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부;
상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부; 및
상기 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부를 포함할 수 있다.
일 실시예에 따라, 상기 암호화키 생성부는 상기 파일 데이터 암호화키를 위한 솔트로서 상기 파일명, 상기 파일명 암호화키, 또는 상기 파일명 암호화키로부터 새로 도출된 다이제스트 중 어느 하나를 이용하도록 동작할 수 있다.
일 실시예에 따라, 상기 암호화키 생성부는 상기 파일명 암호화키를 생성하기 위한 솔트로서 암호화된 파일이 저장될 저장 장치의 식별자를 이용하도록 동작할 수 있다.
일 실시예에 따라, 상기 암호화키 생성부는 상기 파일명 암호화키 또는 상기 파일 데이터 암호화키 중 적어도 어느 하나를 생성하기 위한 암호화키 도출 알고리즘으로서 PBKDF2(password-based key derivation function 2) 알고리즘에 기반하여 동작할 수 있다.
일 실시예에 따라, 상기 암호화 파일 관리 시스템은,
암호화된 파일에 대한 읽기 액세스 시에, 사용자로부터 사용자 패스워드를 입력받고, 입력된 사용자 패스워드로부터 생성한 파일명 암호화키를 이용하여 암호화된 파일명으로부터 복호화된 파일명을 복원하며, 복호화된 파일명 및 사용자 패스워드로부터 생성한 파일 데이터 암호화키를 이용하여 암호화된 파일 데이터로부터 복호화된 파일 데이터를 생성하는 파일 복호화부를 더 포함할 수 있다.
일 실시예에 따라, 상기 파일 복호화부는,
사용자로부터 사용자 패스워드를 입력받고,
운영체제의 파일 입출력 시스템을 통해 암호화된 파일명을 획득하며,
상기 암호화키 생성부에서 파일명 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들 및 사용자 패스워드에 따라 파일명 암호화키를 생성하고,
암호화된 파일명으로부터 상기 파일명 암호화키를 이용하여 상기 파일명 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 파일명을 복원하며,
상기 암호화키 생성부에서 파일 데이터 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들, 복원된 파일명에서 도출된 솔트 및 사용자 패스워드에 따라 파일 데이터 암호화키를 생성하고,
운영체제의 파일 입출력 시스템을 통해 암호화된 파일 데이터를 획득하며,
암호화된 파일 데이터로부터 상기 파일 데이터 암호화키를 이용하여 상기 파일 데이터 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 복호화된 파일 데이터를 생성하도록 동작할 수 있다.
일 실시예에 따라, 암호화 대상 파일 또는 암호화된 파일은 비휘발성 저장 장치에 저장될 수 있다.
일 실시예에 따라, 상기 암호화 파일 관리 시스템은,
암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하는 파일 보안 삭제부를 더 포함할 수 있다.
일 실시예에 따라, 상기 파일 보안 삭제부는,
상기 비휘발성 저장 장치의 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 비휘발성 저장 장치의 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하고,
상기 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하며,
트림 기능을 수행하여 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 소거하고,
트림 기능이 종료되면, 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하도록 동작할 수 있다.
본 발명의 다른 측면에 따른 암호화 파일 관리 방법은,
컴퓨터의 운영체제 상에서 동작하는 암호화 파일 관리 시스템이,
사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하는 단계;
파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 단계;
상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 단계; 및
상기 파일명 암호화키를 이용하여 파일명을 암호화하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 파일 데이터 암호화키는,
상기 파일 데이터 암호화키를 위한 솔트로서 상기 파일명, 상기 파일명 암호화키, 또는 상기 파일명 암호화키로부터 새로 도출된 다이제스트 중 어느 하나를 이용하여 생성될 수 있다.
일 실시예에 따라, 상기 파일명 암호화키는,
상기 파일명 암호화키를 생성하기 위한 솔트로서 암호화된 파일이 저장될 저장 장치의 식별자를 이용하여 생성될 수 있다.
일 실시예에 따라, 상기 파일명 암호화키를 생성하기 위한 암호화키 도출 알고리즘 또는 상기 파일 데이터 암호화키를 생성하기 위한 암호화키 도출 알고리즘 중 적어도 어느 하나는 PBKDF2 알고리즘에 기반할 수 있다.
일 실시예에 따라, 상기 암호화 파일 관리 방법은,
암호화된 파일에 대한 읽기 액세스 시에, 사용자로부터 사용자 패스워드를 입력받고, 입력된 사용자 패스워드로부터 생성한 파일명 암호화키를 이용하여 암호화된 파일명으로부터 복호화된 파일명을 복원하며, 복호화된 파일명 및 사용자 패스워드로부터 생성한 파일 데이터 암호화키를 이용하여 암호화된 파일 데이터로부터 복호화된 파일 데이터를 생성하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 복호화된 파일 데이터를 생성하는 단계는,
사용자로부터 사용자 패스워드를 입력받는 단계;
운영체제의 파일 입출력 시스템을 통해 암호화된 파일명을 획득하는 단계;
상기 암호화키 생성부에서 파일명 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들 및 사용자 패스워드에 따라 파일명 암호화키를 생성하는 단계;
암호화된 파일명으로부터 상기 파일명 암호화키를 이용하여 상기 파일명 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 파일명을 복원하는 단계;
상기 암호화키 생성부에서 파일 데이터 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들, 복원된 파일명에서 도출된 솔트 및 사용자 패스워드에 따라 파일 데이터 암호화키를 생성하는 단계;
운영체제의 파일 입출력 시스템을 통해 암호화된 파일 데이터를 획득하는 단계; 및
암호화된 파일 데이터로부터 상기 파일 데이터 암호화키를 이용하여 상기 파일 데이터 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 복호화된 파일 데이터를 생성하는 단계를 포함할 수 있다.
일 실시예에 따라, 암호화 대상 파일 또는 암호화된 파일은 비휘발성 저장 장치에 저장될 수 있다.
일 실시예에 따라, 상기 암호화 파일 관리 방법은,
암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하여 보안 삭제하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 보안 삭제하는 단계는,
상기 비휘발성 저장 장치의 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 비휘발성 저장 장치의 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하는 단계;
상기 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하는 단계;
트림 기능을 수행하여 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 소거하는 단계; 및
트림 기능이 종료되면, 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하는 단계를 포함할 수 있다.
본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 소프트웨어 기반의 암호화 기법이므로 핫 플러그 공격에 강인하며, 필요한 파일 또는 폴더를 선택적으로 암호화할 수 있다.
본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 파일명까지 암호화할 수 있다.
본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 파일명을 암호화하는 암호화키와 파일 데이터를 암호화하는 암호화키가 달라 암호화된 파일을 탈취당하더라도 데이터 해독이 훨씬 까다롭다.
본 발명의 SSD에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템에 따르면, 암호화 후에 남은 원본 데이터 또는 사용자가 삭제시킨 암호화된 데이터를 운영체제와 충돌하지 않으면서 확실하고 안전하게 소거할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템 및 방법을 예시한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 파일명 암호화키 및 파일 암호화키의 생성 과정을 예시한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 저장 과정을 예시한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일명의 저장 과정을 예시한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 독출 과정을 예시한 개념도이다.
도 6은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 보안 삭제 과정을 예시한 개념도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 명세서 전반에 걸쳐 혼동을 피하기 위해, 삭제(delete)는 운영체제에 의한 파일의 논리적 제거를 의미하고, 소거(erase)는 SSD가 덮어쓰기가 가능하도록 빈 블록으로 만드는 하드웨어 레벨의 동작을 의미한다.
보안 삭제(secure deletion)은 사용자의 명령에 따라 SSD에서 데이터를 복구 불가능한 상태로 소거하고 파일의 존재 흔적까지 정리하는 일련의 동작들을 총체적으로 의미한다.
본 명세서의 전체에 걸쳐 용어들은 다음과 같이 정의된다.
FN : 파일명(filename)
FD : 파일 데이터(file data)
EFN : 암호화된 파일명(encrypted filename)
EFD : 암호화된 파일데이터(encrypted file data)
FNK : 파일명의 암호화키(encryption/decryption key for filename)
FDK : 파일 데이터의 암호화키(encryption/decryption key for file data)
UPW : 사용자 패스워드(user password 또는 passphrase)
PRF : 의사 난수 함수(pseudorandom function)
Hn( ) : n 번 반복되는 암호학 해시 함수(n times iterating cryptographic hash function)
Hn(UPW) : 사용자 패스워드를 기초로 암호화용 해시 함수를 n 번 반복함
PBKDF2 : 패스워드 기반의 키 도출 함수 2(Password-Based Key Derivation Function #2)
SFNK : FNK를 생성하기 위해 PBKDF2에 첨가하는 암호학 솔트(cryptographic salt)
SFDK : FDK를 생성하기 위해 PBKDF2에 첨가하는 솔트
kLen : 암호화키의 길이 파라미터
C : 반복 연산 횟수
한편, 달리 명시되지 않은 한 본 명세서에서 암호화 알고리즘은 대칭 키 암호화 알고리즘을 의미한다. 따라서 복호화키는 따로 언급하지 않더라도 암호화키와 동일하고, 맥락에 따라, 암호화키가 복호화키의 의미로 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템을 예시한 개념도이다.
도 1을 참조하면, 암호화 파일 관리 시스템(10)은 암호화키 생성부(11), 파일 데이터 암호화부(12), 파일명 암호화부(13), 파일 복호화부(14) 및 파일 보안 삭제부(15)를 포함할 수 있다.
암호화 파일 관리 시스템(10)은 운영체제(20)의 일부 또는 드라이버로 구현되거나, 또는 운영체제(20) 상에서 동작하는 써드파티 어플리케이션으로 구현될 수 있다.
먼저, 단계(S11)에서, 암호화키 생성부(11)는 사용자로부터 입력된 사용자 패스워드(UPW)에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키(FNK) 및 파일 데이터 암호화키(FDK)를 각각 생성한다.
구체적으로, 암호화키 생성부(11)는 사용자 패스워드(UPW)에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키(FNK)를 생성하고, 사용자 패스워드(UPW)와 파일명 암호화키(FNK)를 기반으로 파일 데이터 암호화키(FDK)를 생성한다.
이때, 암호화키 생성부(11)는 파일명 암호화키(FNK)를 생성하기 위한 암호화키 도출 알고리즘으로서 파일 데이터 암호화키(FDK)를 생성하기 위한 암호화키 도출 알고리즘과 다른 알고리즘을 이용할 수도 있고, 또는 두 암호화키 도출 알고리즘들이 동일한 종류의 알고리즘이면서 파라미터들이 일부 또는 전부 다르도록 설정될 수도 있다.
암호화키 생성부(11)는 암호화키 도출 알고리즘으로서 PBKDF2 알고리즘과 같은 적응식 키 도출 함수들(Adaptive Key Derivation Functions)을 이용할 수 있다. 통상적인 적응식 키 도출 함수들은 시드(seed)에서 단방향 해시 함수(one-way hash function)을 이용하여 다이제스트(digest)를 생성할 때에 솔팅(salting) 기법과 키 스트레칭(key stretching) 기법을 활용함으로써 다이제스트로부터 시드를 파악하지 못하게 방해할 수 있는 함수들이다.
이때, 솔팅 기법은 주어진 시드와 함께 임의의 소정 단위의 문자열인 솔트(salt)를 해시 함수에 인가함으로써 동일한 시드로부터 서로 다른 다이제스트들을 생성하는 기법이다. 설령 공격자가 솔팅되지 않은 특정 다이제스트와 특정 시드 사이의 관계를 알아 냈더라도, 솔팅된 다이제스트로부터는 정확한 시드를 알아 내기 어렵다.
키 스트레칭 기법은 주어진 시드로 다이제스트를 생성한 다음, 생성된 다이제스트를 새로운 시드로 하여 새로 다이제스트를 생성하는 연산을 반복하는 기법이다. 공격자는 매 키워드마다 수백 수천번씩 해시 함수를 구동해야 하므로 상당한 방해를 받는다.
암호화키 생성부(11)의 구현을 구체적으로 예시하기 위해 도 2를 참조하면, 도 2는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 파일명 암호화키 및 파일 암호화키의 생성 과정을 예시한 개념도이다.
도 2에서 PBKDF2 알고리즘은 의사 난수 함수(PRF), 사용자 패스워드(P), 암호학 솔트들(SFNK, SFDK), 반복 회수 파라미터(C) 및 다이제스트 길이 파라미터(kLen)를 기초로, SHA, MD5와 같은 검증된 해시 함수를 이용하여 파일명 암호화키(FNK) 및 파일 데이터 암호화키(FDK)를 각각 생성할 수 있다.
도 2의 PBKDF2 알고리즘에서, 파일명의 암호화키(FNK)를 생성하기 위해서, 의사 난수 함수(PRF)로서 HMAC(hash-based Message Authentication Code) 함수의 출력이 이용될 수 있고, 솔트(SFNK)로서 암호화된 파일이 저장될 저장 장치에 관련하여 시불변인(time-invariant) 정보, 예를 들어, 비휘발성 저장 장치(30)의 제조 일련 번호와 같은 정보가 이용될 수 있다.
다이제스트 길이 파라미터(kLen)는 추후에 이용될 암호화 알고리즘의 종류, 즉 DES, 3-DES, AES 128, AES 192, AES 256 등에서 사용되는 키 길이에 따라 정해진다.
반복 회수 파라미터(C)는 예를 들어 1000회 정도로 특정될 수 있다.
실시예에 따라, 파일명의 암호화키(FNK)를 위해 사용자 패스워드에 기초한 단순한 해시 함수가 이용될 수도 있다.
나아가, 파일 데이터 암호화키(FDK)를 생성하기 위해서, 의사 난수 함수(PRF)로서 HMAC 함수의 출력이 이용될 수 있고, 솔트(SFDK)로서 파일명(FN), 실시예에 따라서는 앞서 산출된 파일명 암호화키(FNK) 또는 파일명 암호화키(FNK)로부터 새로 도출된 다이제스트 중 어느 하나가 이용될 수 있다.
마찬가지로, 다이제스트 길이 파라미터(kLen)는 추후에 이용될 암호화 알고리즘의 종류, 즉 DES, 3-DES, AES 128, AES 192, AES 256 등의 키 길이에 따라 정해지고, 반복 회수 파라미터(C)도 예를 들어 1000회 정도로 특정될 수 있다.
도 2에서 파일 데이터 암호화키(FDK)를 생성하기 위한 솔트(SFDK)로서 파일명(FN), 파일명 암호화키(FNK) 또는 파일명 암호화키(FNK)로부터 새로 도출된 다이제스트 중 어느 하나가 이용된다는 점이 특이하다.
종래의 파일명 암호화 기법은 파일 데이터 암호화키와 동일한 암호화키로 암호화하기 때문에 효율적이지만, 사용자 패스워드를 식별당할 가능성이 더 높다.
그러나 본 발명에서 파일 암호화 기법은 파일명의 암호화키(FNK)와 파일 데이터의 암호화키(FDK)가 서로 다르기 때문에 사용자 패스워드(UPW)가 식별당할 가능성이 낮고, 서로 다른 파일 데이터마다 서로 다른 파일명이 사용되기 때문에 파일 데이터의 암호화키들(FDK)도 모두 다르므로 공격자가 암호화된 파일 데이터를 탈취하더라도 복호화할 가능성이 매우 낮다. 또한 파일 데이터 암호화키(FDK)의 솔트(SFDK)는 파일명(FN) 또는 파일명 암호화키(FNK)로부터 도출되므로, 파일 데이터 암호화키(FDK) 또는 이를 위한 솔트(SFDK)를 시스템(10) 내부에 별도로 저장할 필요가 없다.
파일이 둘 이상인 경우에는, 암호화키 생성부(11)는 하나의 파일명 암호화키(FNK)와 파일의 개수만큼의 복수의 파일 데이터 암호화키들(FDK)을 각각 생성할 수 있다.
이어서, 단계(S12)에서, 파일 데이터 암호화부(12)는 파일 데이터 암호화키(FDK)를 이용하여 파일 데이터를 암호화할 수 있다.
파일 데이터의 암호화를 예시하기 위해 도 3을 참조하면, 도 3은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 저장 과정을 예시한 개념도이다.
단계(S121)에서, 파일 데이터 암호화부(12)는 암호화키 생성부(11)로부터 암호화할 원본 파일에 상응하는 파일 데이터 암호화키(FDK)를 수신하고, 단계(S122)에서, 암호화되어 저장될 원본 파일 데이터(FD)를 암호화 알고리즘 연산부(121)에 입력하여 암호화된 파일 데이터(EFD)를 생성하며, 단계(S123)에서, 암호화된 파일 데이터(EFD)를 운영체제(20)의 파일 입출력 시스템(21)에 전달한다.
이어서, 운영체제(20)의 파일 입출력 시스템(21)은 암호화된 파일 데이터를 비휘발성 저장 장치(30)의 소정의 데이터 저장 영역(32)에 저장한다.
이때, 만약 암호화될 원본 파일이 메인 메모리(RAM)에서 새로 생성되어 처음으로 비휘발성 저장 장치(30)에 저장되는 파일이라면, 암호화 파일 관리 시스템(10)은 암호화된 파일 데이터(EFD)를 저장한 후에 추가적으로 비휘발성 저장 장치(30)에 대해 파일 삭제 등의 조치를 하지 않는다.
반면에, 만약, 암호화될 원본 파일이 암호화 지시 이전부터 비휘발성 저장 장치(30)에 암호화되지 않은 상태로 저장되어 있던 파일(FD)이라면, 암호화 파일 관리 시스템(10)은, 암호화된 파일 데이터(EFD)를 비휘발성 저장 장치(30)의 데이터 저장 영역(32)에 저장하도록 운영체제(20)의 파일 입출력 시스템(21)에 전달한 후에, 추가적으로 비휘발성 저장 장치(30)의 데이터 저장 영역(32)에 저장되어 있던 원본 파일 데이터(FD)의 흔적을 찾고, 발견된 원본 파일 데이터(FD)의 흔적을 보안 삭제할 필요가 있다. 이러한 보안 삭제에 관하여는 추후에 좀더 상세하게 서술한다.
파일 데이터 암호화부(12)의 파일 데이터 암호화 동작에 이어서 또는 동시에, 단계(S13)에서, 파일명 암호화부(13)는 파일명 암호화키(FNK)를 이용하여 파일명(FN)을 암호화할 수 있다.
파일 데이터의 암호화를 예시하기 위해 도 4를 참조하면, 도 4는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일명의 저장 과정을 예시한 개념도이다.
파일명 암호화부(13)는 단계(S131)에서, 암호화키 생성부(11)로부터 암호화할 원본 파일에 대한 파일명 암호화키(FNK)를 수신하고, 단계(S132)에서, 암호화되어 저장될 원본 파일의 파일명(FN)을 암호화 알고리즘 연산부(131)에 입력하여 암호화된 파일명(EFN)을 생성하며, 단계(S133)에서, 암호화된 파일명(EFN)을 운영체제(20)의 파일 입출력 시스템(21)에 전달한다.
이어서, 운영체제(20)의 파일 입출력 시스템(21)은 암호화된 파일 데이터(EFD)가 저장된 비휘발성 저장 장치(30)의 소정의 데이터 저장 영역(32)의 주소와 암호화된 파일명(EFN)을 소정의 파일 관리 영역(31)에 저장한다.
예를 들어 NTFS(NT file system)에서 파일 관리 영역(31)은 마스터 파일 테이블(MFT, master file table)이고, 파일 입출력 시스템(21)은 암호화되지 않은 파일명 대신에 암호화된 파일명(EFN)과 암호화된 파일 데이터(EFD)의 저장 주소를 마스터 파일 테이블에 입력할 수 있다.
이때, 만약 암호화될 원본 파일이 메인 메모리에서 새로 생성되어 처음으로 비휘발성 저장 장치(30)에 저장되는 파일이라면, 암호화 파일 관리 시스템(10)은 암호화된 파일명(EFN)을 저장한 후에 추가적으로 비휘발성 저장 장치(30)에 대해 파일명 정리 등의 조치를 하지 않는다.
반면에, 만약, 암호화될 원본 파일이 암호화 지시 이전부터 비휘발성 저장 장치(30)에 암호화되지 않은 상태로 저장되어 있던 파일이라면, 암호화 파일 관리 시스템(10)은, 암호화된 파일명(EFN)을 운영체제(20)의 파일 입출력 시스템(21)에 전달한 후에, 추가적으로 비휘발성 저장 장치(30)의 파일 관리 영역(31)에 기록되어 있던 원본 파일에 관련되어 발견되는 엔트리 또는 그 흔적을, 데이터 저장 영역(32) 내의 원본 파일 데이터(FD)의 흔적과 함께, 보안 삭제할 필요가 있다. 이러한 보안 삭제에 관하여는 추후에 좀더 상세하게 서술한다.
이렇게 파일명과 파일 데이터가 각각 암호화되어 저장된 암호화된 파일에 대해 읽기 액세스가 있을 경우에, 단계(S14)에서, 파일 복호화부(14)는 사용자로부터 사용자 패스워드(UPW)를 입력받고, 입력된 사용자 패스워드(UPW)로부터 생성한 파일명 암호화키(FNK)를 이용하여 암호화된 파일명(EFN)으로부터 복호화된 파일명(FN)을 복원하며, 복호화된 파일명(FN) 및 사용자 패스워드(UPW)로부터 생성한 파일 데이터 암호화키(FDK)를 이용하여 암호화된 파일 데이터(EFD)로부터 복호화된 파일 데이터를 생성한다.
복호화된 파일명(FN) 및 복호화된 파일 데이터(FD)는 당해 파일을 호출한 운영체제의 프로세스 또는 사용자 어플리케이션에 제공될 수 있다.
복호화 독출 과정을 예시하기 위해 도 5를 참조하면, 도 5는 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 복호화 독출 과정을 예시한 개념도이다.
도 5에서, 파일 복호화부(14)는, 단계(S141)에서, 사용자로부터 사용자 패스워드(UPW)를 입력받고, 단계(S142)에서, 암호화키 생성부(11)에서 파일명 암호화키(FNK) 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘(PBKDF2), 파라미터들(PRF, SFNK, C, kLen) 및 사용자 패스워드(UPW)에 따라 파일명 암호화키(FNK)를 생성하고, 단계(S143)에서, 운영체제(20)의 파일 입출력 시스템(21)을 통해 암호화된 파일명(EFN)을 획득하며, 단계(S144)에서, 파일명 암호화키(FNK)를 이용하여 파일명 암호화부(13)에서 사용되는 것과 동일한 암호화 알고리즘(AES 등)에 따라 복호화된 파일명(FN)을 복원한다.
이어서, 파일 복호화부(14)는 단계(S145)에서, 암호화키 생성부(11)에서 파일 데이터 암호화키(FDK) 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘(PBKDF2), 파라미터들(PRF, C, kLen), 솔트(SFDK)인 복원된 파일명(FN) 또는 파일명 암호화키(FNK) 및 사용자 패스워드(UPW)에 따라 파일 데이터 암호화키(FDK)를 생성하고, 단계(S146)에서, 운영체제(20)의 파일 입출력 시스템(21)을 통해 암호화된 파일 데이터(EFD)를 획득하며, 단계(S147)에서, 암호화된 파일 데이터(EFD)로부터 파일 데이터 암호화키(FDK)를 이용하여 파일 데이터 암호화부(12)에서 사용되는 것과 동일한 암호화 알고리즘(AES 등)에 따라 복호화된 파일 데이터(FD)를 생성한다.
이후에, 파일 복호화부(14)는 복호화된 파일명(FN) 및 복호화된 파일 데이터(FD)를 당해 파일을 호출한 운영체제의 프로세스 또는 사용자 어플리케이션에 제공할 수 있다.
이렇듯, 본 발명의 암호화 파일 관리 시스템(10)은 파일명(FN)과 파일 데이터(FD)의 암호화 및 복호화를 위해, 사용자 패스워드(UPW), 솔트들(SFNK, SFDK), 파라미터들(PRF, C, kLen), 파일명 암호화키(FNK), 파일 데이터 암호화키(FDK)가 필요하지만, 이들 정보 중에 파일명 암호화를 위한 솔트(SFNK)와 일부 파라미터들(PRF, C, kLen)을 제외하고는, 암호화/복호화에 필요한 중요 정보를 암호화 파일 관리 시스템(10) 또는 운영체제(20) 내지 비휘발성 저장 장치(30) 중 어디에도 별도로 저장할 필요가 없다.
암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 단계(S15)에서, 파일 보안 삭제부(15)가 운영체제(20)의 파일 입출력 시스템(21)을 통해 비휘발성 저장 장치(30)의 파일 관리 영역(31)에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록한다.
여기서, 플래시 메모리와 같은 비휘발성 메모리는 통상적으로 소거된 상태를 "1"로 보고, 프로그램된 상태를 "0"으로 표현하며, "1"→"0"은 셀 단위로도 가능하지만, "0"→"1"은 전체 블록을 소거할 때만 가능하다.
따라서, 위에서 특정 페이지들을 모두 0x00으로 기록하는 동작은 이미 "0"인 셀은 그대로 두고, "1"인 셀은 "0"으로 프로그램함으로써 쉽게 수행될 수 있다.
이러한 보안 삭제 절차를 좀더 구체적으로 예시하기 위해 도 6을 참조하면, 도 6은 본 발명의 일 실시예에 따른 암호화 파일 관리 시스템의 암호화된 파일의 보안 삭제 과정을 예시한 개념도이다.
도 6에서, 파일 보안 삭제부(15)는 단계(S151)에서, 운영체제(20)의 파일 입출력 시스템(21)을 통해 비휘발성 저장 장치(30)의 파일 관리 영역(31)에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하고, 단계(S152)에서, 파일 관리 영역(31)에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하며, 단계(S153)에서, 트림(trim) 기능을 수행하여 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 소거하며, 단계(S154)에서, 트림 기능이 종료되면, 파일 관리 영역(31)에 삭제 대상 파일명 및 어드레스의 엔트리와 데이터 저장 영역(32)에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록한다.
본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.
또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
10 암호화 파일 관리 시스템
11 암호화키 생성부
12 파일 데이터 암호화부
13 파일명 암호화부
14 파일 복호화부
15 파일 보안 삭제부
20 운영체제
21 파일 입출력 시스템
30 비휘발성 저장 장치
31 파일 관리 영역
32 데이터 저장 영역

Claims (20)

  1. 삭제
  2. 삭제
  3. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부; 및
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부를 포함하고,
    상기 암호화키 생성부는 상기 파일명 암호화키를 생성하기 위한 솔트로서 암호화된 파일이 저장될 저장 장치의 식별자를 이용하도록 동작하는 것을 특징으로 하는 암호화 파일 관리 시스템.
  4. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부; 및
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부를 포함하고,
    상기 암호화키 생성부는 상기 파일명 암호화키 또는 상기 파일 데이터 암호화키 중 적어도 어느 하나를 생성하기 위한 암호화키 도출 알고리즘으로서 PBKDF2(password-based key derivation function 2) 알고리즘에 기반하여 동작하는 것을 특징으로 하는 암호화 파일 관리 시스템.
  5. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부;
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부; 및
    암호화된 파일에 대한 읽기 액세스 시에, 사용자로부터 사용자 패스워드를 입력받고, 입력된 사용자 패스워드로부터 생성한 파일명 암호화키를 이용하여 암호화된 파일명으로부터 복호화된 파일명을 복원하며, 복호화된 파일명 및 사용자 패스워드로부터 생성한 파일 데이터 암호화키를 이용하여 암호화된 파일 데이터로부터 복호화된 파일 데이터를 생성하는 파일 복호화부를 포함하는 것을 특징으로 하는 암호화 파일 관리 시스템.
  6. 청구항 5에 있어서, 상기 파일 복호화부는,
    사용자로부터 사용자 패스워드를 입력받고,
    운영체제의 파일 입출력 시스템을 통해 암호화된 파일명을 획득하며,
    상기 암호화키 생성부에서 파일명 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들 및 사용자 패스워드에 따라 파일명 암호화키를 생성하고,
    암호화된 파일명으로부터 상기 파일명 암호화키를 이용하여 상기 파일명 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 파일명을 복원하며,
    상기 암호화키 생성부에서 파일 데이터 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들, 복원된 파일명에서 도출된 솔트 및 사용자 패스워드에 따라 파일 데이터 암호화키를 생성하고,
    운영체제의 파일 입출력 시스템을 통해 암호화된 파일 데이터를 획득하며,
    암호화된 파일 데이터로부터 상기 파일 데이터 암호화키를 이용하여 상기 파일 데이터 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 복호화된 파일 데이터를 생성하도록 동작하는 것을 특징으로 하는 암호화 파일 관리 시스템.
  7. 삭제
  8. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하고, 파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 암호화키 생성부;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 파일 데이터 암호화부;
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 파일명 암호화부; 및
    암호화 대상 원본 파일 또는 암호화된 파일이 비휘발성 저장 장치에 저장될 경우에, 암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하는 파일 보안 삭제부를 포함하는 것을 특징으로 하는 암호화 파일 관리 시스템.
  9. 청구항 8에 있어서, 상기 파일 보안 삭제부는,
    상기 비휘발성 저장 장치의 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 비휘발성 저장 장치의 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하고,
    상기 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하며,
    트림 기능을 수행하여 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 소거하고,
    트림 기능이 종료되면, 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하도록 동작하는 것을 특징으로 하는 암호화 파일 관리 시스템.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하는 단계;
    파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 단계;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 단계; 및
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 단계를 포함하고,
    상기 파일명 암호화키는,
    상기 파일명 암호화키를 생성하기 위한 솔트로서 암호화된 파일이 저장될 저장 장치의 식별자를 이용하여 생성되는 것을 특징으로 하는 암호화 파일 관리 방법.
  14. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하는 단계;
    파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 단계;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 단계; 및
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 단계를 포함하고,
    상기 파일명 암호화키를 생성하기 위한 암호화키 도출 알고리즘 또는 상기 파일 데이터 암호화키를 생성하기 위한 암호화키 도출 알고리즘 중 적어도 어느 하나는 PBKDF2 알고리즘에 기반하는 것을 특징으로 하는 암호화 파일 관리 방법.
  15. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하는 단계;
    파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 단계;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 단계;
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 단계; 및
    암호화된 파일에 대한 읽기 액세스 시에, 사용자로부터 사용자 패스워드를 입력받고, 입력된 사용자 패스워드로부터 생성한 파일명 암호화키를 이용하여 암호화된 파일명으로부터 복호화된 파일명을 복원하며, 복호화된 파일명 및 사용자 패스워드로부터 생성한 파일 데이터 암호화키를 이용하여 암호화된 파일 데이터로부터 복호화된 파일 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 암호화 파일 관리 방법.
  16. 청구항 15에 있어서, 상기 복호화된 파일 데이터를 생성하는 단계는,
    사용자로부터 사용자 패스워드를 입력받는 단계;
    운영체제의 파일 입출력 시스템을 통해 암호화된 파일명을 획득하는 단계;
    상기 암호화키 생성부에서 파일명 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들 및 사용자 패스워드에 따라 파일명 암호화키를 생성하는 단계;
    암호화된 파일명으로부터 상기 파일명 암호화키를 이용하여 상기 파일명 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 파일명을 복원하는 단계;
    상기 암호화키 생성부에서 파일 데이터 암호화키 생성 시에 사용되는 것과 동일한 암호화키 도출 알고리즘, 파라미터들, 복원된 파일명에서 도출된 솔트 및 사용자 패스워드에 따라 파일 데이터 암호화키를 생성하는 단계;
    운영체제의 파일 입출력 시스템을 통해 암호화된 파일 데이터를 획득하는 단계; 및
    암호화된 파일 데이터로부터 상기 파일 데이터 암호화키를 이용하여 상기 파일 데이터 암호화부에서 사용되는 것과 동일한 암호화 알고리즘에 따라 복호화된 파일 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 암호화 파일 관리 방법.
  17. 삭제
  18. 사용자로부터 입력된 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일명 암호화키를 생성하는 단계;
    파일명에서 도출된 솔트 및 상기 사용자 패스워드에 기반하는 소정의 암호화키 도출 알고리즘에 의해 파일 데이터 암호화키를 생성하는 단계;
    상기 파일 데이터 암호화키를 이용하여 파일 데이터를 암호화하는 단계; 및
    상기 파일명 암호화키를 이용하여 파일명을 암호화하는 단계를 포함하고,
    암호화 대상인 원본 파일 또는 암호화된 파일이 비휘발성 저장 장치에 저장될 경우에, 암호화된 후에 남은 원본 파일의 흔적을 보안 삭제하거나, 또는 사용자가 암호화된 파일 자체를 보안 삭제할 경우에, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록 및 검사하고, 트림(trim) 기능을 수행하여 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 소거하며, 트림 기능이 종료되면, 삭제 대상 파일명 및 어드레스의 엔트리와 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하여 보안 삭제하는 단계를 더 포함하는 것을 특징으로 하는 암호화 파일 관리 방법.
  19. 청구항 18에 있어서, 상기 보안 삭제하는 단계는,
    상기 비휘발성 저장 장치의 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 비휘발성 저장 장치의 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들을 모두 0x00으로 기록하는 단계;
    상기 파일 관리 영역에 기록된 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 저장된 삭제 대상 파일 데이터의 페이지들이 모두 0x00으로 기록되었는지 검사하는 단계;
    트림 기능을 수행하여 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 소거하는 단계; 및
    트림 기능이 종료되면, 상기 파일 관리 영역에 삭제 대상 파일명 및 어드레스의 엔트리와 상기 데이터 저장 영역에 삭제 대상 파일 데이터의 페이지들을 모두 0xFF로 기록하는 단계를 포함하는 것을 특징으로 하는 암호화 파일 관리 방법.
  20. 컴퓨터에서 청구항 13, 14, 15, 16, 18, 또는 19 중 어느 한 청구항에 따른 암호화 파일 관리 방법을 구현시킬 수 있는 컴퓨터 프로그램이 수록된 컴퓨터로 독출될 수 있는 기록 매체.
KR20130162450A 2013-12-24 2013-12-24 Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템 KR101467227B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130162450A KR101467227B1 (ko) 2013-12-24 2013-12-24 Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130162450A KR101467227B1 (ko) 2013-12-24 2013-12-24 Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020140110934A Division KR101648262B1 (ko) 2014-08-25 2014-08-25 Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템

Publications (1)

Publication Number Publication Date
KR101467227B1 true KR101467227B1 (ko) 2014-12-01

Family

ID=52677031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130162450A KR101467227B1 (ko) 2013-12-24 2013-12-24 Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템

Country Status (1)

Country Link
KR (1) KR101467227B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170011754A (ko) * 2015-07-24 2017-02-02 주식회사 악어스캔 전자 문서 관리 시스템
KR101701302B1 (ko) 2015-08-28 2017-02-02 고려대학교 산학협력단 실행코드 암호화 장치 및 방법
CN114531676A (zh) * 2020-10-30 2022-05-24 华为技术有限公司 一种密钥处理方法、装置和终端设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001060944A (ja) * 1999-08-24 2001-03-06 Hitachi Ltd 暗号通信システム
JP2001516913A (ja) 1997-09-16 2001-10-02 マイクロソフト コーポレイション 暗号化ファイルシステム及び方法
KR20020083551A (ko) * 2001-04-27 2002-11-04 김성열 멀티에이전트 기반 다단계 사용자 인증 시스템 개발과운용 방법
JP2012018501A (ja) * 2010-07-07 2012-01-26 Canon Inc 情報処理装置、情報処理装置の制御方法、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001516913A (ja) 1997-09-16 2001-10-02 マイクロソフト コーポレイション 暗号化ファイルシステム及び方法
JP2001060944A (ja) * 1999-08-24 2001-03-06 Hitachi Ltd 暗号通信システム
KR20020083551A (ko) * 2001-04-27 2002-11-04 김성열 멀티에이전트 기반 다단계 사용자 인증 시스템 개발과운용 방법
JP2012018501A (ja) * 2010-07-07 2012-01-26 Canon Inc 情報処理装置、情報処理装置の制御方法、プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170011754A (ko) * 2015-07-24 2017-02-02 주식회사 악어스캔 전자 문서 관리 시스템
KR102400798B1 (ko) * 2015-07-24 2022-05-24 주식회사 악어디지털 전자 문서 관리 시스템
KR20220071161A (ko) * 2015-07-24 2022-05-31 주식회사 악어디지털 전자 문서 관리 시스템
KR102580421B1 (ko) * 2015-07-24 2023-09-20 주식회사 악어디지털 전자 문서 관리 시스템
KR101701302B1 (ko) 2015-08-28 2017-02-02 고려대학교 산학협력단 실행코드 암호화 장치 및 방법
CN114531676A (zh) * 2020-10-30 2022-05-24 华为技术有限公司 一种密钥处理方法、装置和终端设备
CN114531676B (zh) * 2020-10-30 2024-04-09 华为技术有限公司 一种密钥处理方法、装置和终端设备

Similar Documents

Publication Publication Date Title
US9043614B2 (en) Discarding sensitive data from persistent point-in-time image
CN102945355B (zh) 基于扇区映射的快速数据加密策略遵从
US8464073B2 (en) Method and system for secure data storage
US8892905B2 (en) Method and apparatus for performing selective encryption/decryption in a data storage system
US11329814B2 (en) Self-encryption drive (SED)
CN102855452B (zh) 基于加密组块的快速数据加密策略遵从
JP4463320B1 (ja) 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法
JP7096829B2 (ja) データ削除処理を検証する方法及びシステム
JP2024500732A (ja) 内部動作を介してキー・パーio対応デバイス中に記憶されたデータの暗号消去
Zhang et al. Ensuring data confidentiality via plausibly deniable encryption and secure deletion–a survey
Yang et al. SADUS: Secure data deletion in user space for mobile devices
KR101467227B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
KR101231592B1 (ko) 안전한 삭제를 위한 플래시 메모리 제어 장치 및 방법
KR101648262B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
KR100941368B1 (ko) 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법
KR100874872B1 (ko) 안전한 갱신을 지원하는 플래시 메모리 기반 보안 2차 저장장치
TWI775284B (zh) 記憶系統、其控制方法及資訊處理系統
Tiwari et al. Secure Wipe Out in BYOD Environment
US12058259B2 (en) Data storage device encryption
Choi et al. Password-based single-file encryption and secure data deletion for solid-state drive
JP6999679B2 (ja) データ消去方法および装置
Ahn et al. IoT security: On-chip secure deletion scheme using ECC modulation in IoT appliances
Jin et al. An encryption approach to secure modification and deletion for flash-based storage
KR102386219B1 (ko) Sgx-ssd를 이용한 정책 기반 버전관리 방법 및 그 시스템
Peters DEFY: A Deniable File System for Flash Memory

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 5