KR101539811B1 - 암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템 - Google Patents

암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101539811B1
KR101539811B1 KR1020117002469A KR20117002469A KR101539811B1 KR 101539811 B1 KR101539811 B1 KR 101539811B1 KR 1020117002469 A KR1020117002469 A KR 1020117002469A KR 20117002469 A KR20117002469 A KR 20117002469A KR 101539811 B1 KR101539811 B1 KR 101539811B1
Authority
KR
South Korea
Prior art keywords
buffer
data
encrypted
file system
data set
Prior art date
Application number
KR1020117002469A
Other languages
English (en)
Other versions
KR20110050631A (ko
Inventor
구니샤 마단
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110050631A publication Critical patent/KR20110050631A/ko
Application granted granted Critical
Publication of KR101539811B1 publication Critical patent/KR101539811B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Abstract

암호화 파일 시스템(EFS)에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법이 제공된다. 이 방법에서, 소프트웨어 애플리케이션은 데이터를 제 1 버퍼에 기록하고 그런 다음 암호화 파일 시스템이 그 데이터를 비휘발성 스토리지 디바이스 상에 저장하도록 요청한다. 암호화 파일 시스템은 데이터를 암호화하고 그 암호화된 데이터를 제 2 버퍼에 저장한다. 그런 다음 제 2 버퍼로부터 암호화된 데이터를 비휘발성 스토리지 영역에 기록한다. 한편, 소프트웨어 애플리케이션은, 데이터가 아직 비휘발성 스토리지 영역에 기록되지 않은 경우라도 그 데이터를 제 2 버퍼에 복사한 후에 추가적인 데이터를 버퍼에 다시 기록할 수 있다.

Description

암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템{IMPROVED INPUT/OUTPUT CONTROL AND EFFICIENCY IN AN ENCRYPTED FILE SYSTEM}
본 발명은, 암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법에 관한 것이다. 좀 더 구체적으로, 본 발명은 암호화 파일 시스템에 데이터를 저장하는 동안 애플리케이션이 대기해야 하는 시간을 감소시키는 방법을 제공한다.
암호화 파일 시스템은 “풀 디스크 암호화(full disk encryption)” (이는 “전체 디스크 암호화(whole disk encryption)”로도 알려짐) 및 파일시스템-레벨 암호화(“폴더 암호화”로도 알려짐)를 포함한다. 풀 디스크 암호화는, 그 명칭에서 알 수 있듯이, 스왑용 파일들과 임시 파일들을 포함한 거의 모든 파일을 암호화한다. 이처럼 거의 대부분의 파일이 암호화되기 때문에, 사용자는 통상 어느 파일들을 암호화할지 결정할 수가 없다. 한편, 파일시스템 레벨 암호화는, 개인용 파일들, 디렉토리들(폴더들), 또는 파일 시스템 스스로를 암호화하는 디스크 암호화 형태에 해당한다. 통상은, 파일시스템 레벨 암호화가 좀 더 유연한데(flexible), 특히 파일들과 디렉토리들을 암호화하는데 사용되는 암호화 키들 측면에서 그러하다. 일반적으로, 파일 시스템 메타데이터(예, 디렉토리 구조들, 파일 명칭들, 등)는 파일시스템 레벨 암호화에 의해서는 암호화되지 않는 반면, 풀 디스크 암호화 조건에서는 전통적으로 암호화된다. 이러한 암호화 파일 시스템의 특정 종류에 관계없이, 상기 암호화 파일 시스템들은 효율성뿐만 아니라 입력/출력의 제어 측면에서 도전을 받게 되었다.
암호화 파일 시스템들은, 비휘발성 스토리지 디바이스(예를 들어, 하드 드라이브) 상에 암호화된 데이터를 저장하기 전에, 암호화되지 않은 데이터를 암호화된 포맷으로 암호화하기 위해서 암호화 알고리즘들을 사용한다. 데이터를 암호화된 포맷으로 암호화한 다음 그 암호화된 데이터를 비휘발성 스토리지 디바이스에 기록하는 데는 비교적 많은 시간이 소요된다. 그 한가지 도전은, 소프트웨어 애플리케이션이 실행되기 전에 암호화 파일 시스템이 데이터를 암호화하여 저장하는 동안 대기해야 한다는 것이다. 이것은 암호화 파일 시스템뿐만 아니라, 암호화 파일 시스템을 사용하는 시스템에서 실행되는 소프트웨어 애플리케이션 모두의 있어서 효율성을 감소시킨다.
본 발명은, 소프트웨어 애플리케이션이 데이터를 제 1 버퍼에 기록한 다음 암호화 파일 시스템이 그 데이터를 비휘발성 스토리지 디바이스 상에 저장하도록 요청하는 방법을 사용하여 앞서 언급한 도전들을 해결하고자 한다. 암호화 파일 시스템은 데이터를 암호화하고 그 암호화된 데이터를 제 2 버퍼에 저장한 다음 제 2 버퍼로부터 암호화된 데이터를 비휘발성 스토리지 영역에 기록한다. 한편, 소프트웨어 애플리케이션은 데이터가 아직 비휘발성 스토리지 영역에 기록되지 않은 경우에도 데이터를 제 2 버퍼에 복사한 후에 추가적인 데이터를 버퍼에 다시 기록할 수 있다.
지금부터 본 발명의 실시 예들은 이하의 첨부된 도면들을 참조하여 기술할 것이다. 여기서 도면들은 오직 예로서만 소개되는 것이다.
도 1은, 여기서 기술된 방법들이 구현될 수 있는 데이터 처리 시스템의 블록도이다;
도 2는, 여기서 기술된 방법들이 네트워크 환경에서 동작하는 광범위한 종류의 정보 처리 시스템들 상에서 수행되도록 설명하기 위해 도 1에 도시된 정보 처리 시스템 환경의 확장을 제공한다;
도 3은 애플리케이션의 데이터를 암호화 파일 시스템에 안전하게 저장하기 위해서 애플리케이션과 암호화 파일 시스템 간의 인터페이스를 도시한다; 그리고
도 4는 암호화 파일 시스템이 데이터를 암호화하는 도중에 새로운 데이터를 기록하기 위해서 애플리케이션이 대기할 필요 없도록 암호화 파일 시스템을 사용하여 애플리케이션이 그것의 데이터를 저장하는 것을 도시한 흐름도이다.
본 발명의 여러 실시 예들의 철저한 이해를 제공하기 위해서 어떤 특정 세부사항들이 이하의 상세한 설명과 도면들에 제시된다. 그러나 종종 컴퓨팅 및 소프트웨어 기술과 연관된 잘 알려진 세부사항들은 이하의 명세서에 제시되지 않았는데, 이는 본 발명의 여러 실시 예들이 필요 이상으로 모호하게 되지 않게 하기 위함이다. 나아가, 관련 기술분야의 숙련자들은 이하에 기술된 하나 이상의 세부사항들이 없더라도 본 발명의 다른 실시 예들을 실행할 수 있음을 이해할 것이다. 결과적으로, 이하의 명세서에는 단계들과 시퀀스들을 참조하여 여러 가질 방법들이 기술되었지만, 이러한 기술은 본 발명의 실시 예들을 명확하게 구현하기 위한 것이며, 본 발명을 실행하기 위해 상기 단계들과 단계들의 순서들이 요구된 그대로 수행되어야 하는 것은 아니다. 한편 이하의 기술은 본 발명의 예시를 자세하게 설명하기 위해 의도되었으며 따라서 본 발명이 그에 한정되어 수행됨을 의미하는 것은 아니다. 오히려, 본 발명은 이하 명세서의 특허청구범위에 의해서 정의되는, 발명의 범위 내에 속하는 다양한 변형들을 포함하는 것으로 의도되었다.
이하 상세한 설명은, 앞서 제시한 본 발명의 요약을 개괄적으로 전개할 것이며, 그리고 필요에 따라서는 본 발명의 여러 측면들과 여러 실시 예들의 정의를 설명하고 확장할 것이다. 이를 위해, 이하 상세한 설명은 본 발명과 관련된 소프트웨어 및/또는 하드웨어 기술들을 구현하는데 적합한 도 1의 컴퓨팅 환경을 먼저 제시한다. 그리고 현재의 컴퓨팅 기술들이 다수의 개별 장치들에 걸쳐서 수행될 수 있음을 강조하기 위해, 기본 컴퓨팅 환경의 확장에 해당하는 네트웍 환경을 도 2에 도시한다.
도 1은 여기서 기술된 컴퓨팅 동작들을 수행할 수 있는 컴퓨터 시스템의 간략한 예시에 해당하는 정보 처리 시스템(100)을 도시한다. 정보 처리 시스템(100)은 프로세서 인터페이스 버스(112)에 연결된 하나 또는 그 이상의 프로세서들(110)을 포함한다. 프로세서 인터페이스 버스(112)는, 메모리 컨트롤러 허브(MCH)로도 알려진 노스 브리지(Northbridge)(115)와 프로세서들(110)을 연결한다. 노스 브리지(115)는 시스템 메모리(120)와 결합되며 프로세서(들)(110)이 시스템 메모리에 접근하기 위한 수단을 제공한다. 그리고 그래픽 컨트롤러(125) 또한 노스 브리지(115)에 연결된다. 일 실시 예에서, PCI 익스프레스 버스(118)는 노스 브리지(115)와 그래픽 컨트롤러(125)를 연결하는데 사용된다. 그리고 그래픽 컨트롤러(125)는 예를 들어, 컴퓨터 모니터와 같은 디스플레이 장치(130)에 연결된다.
노스 브리지(115)와 사우스 브리지(Southbridge)(135)는 버스(119)를 사용하여 상호 연결된다. 일 실시 예에서, 상기 버스는 노스 브리지(115)와 사우스 브리지(135) 사이에서 각 방향으로 데이터를 빠르게 전송하는 다이렉트 미디어 인터페이스(Direct Media Interface; DMI)일 수 있다. 또 다른 예에서, PCI(Peripheral Component Interconnect) 버스가 노스 브리지와 사우스 브리지를 연결하는데 사용된다. I/O 컨트롤러 허브(ICH)로도 알려진 사우스 브리지(135)는, 일반적으로 노스 브리지를 통해 제공되는 장치들(capabilities)보다 더 느린 속도로 동작하는 장치들을 구현한 칩(chip)이다. 사우스 브리지(135)는 통상, 여러 컴포넌트들을 연결하는데 사용되는 다양한 버스들을 제공한다. 이러한 버스들에는 PCI 및 PCI 익스프레스, ISA 버스, 시스템 관리 버스(SM버스 또는 SMB), 로우 핀 카운트(LPC) 버스가 포함될 수 있다. 이때 LPC 버스는 종종 낮은 대역폭을 갖는 장치들, 예를 들어 부트 ROM(196) 및 “레거시(legacy)” I/O 장치들 (“수퍼 I/O” 칩을 사용함)(198)을 연결하는데 사용된다. “레거시” I/O 장치들(198)은 직렬 및 병렬 포트들, 키보드, 마우스, 플로피 디스크 컨트롤러를 포함할 수 있다. 그리고 LPC 버스는 또한 사우스 브리지(135)와 신뢰 플랫폼 모듈(Trusted Platform Module; TPM)을 연결시키는데 사용된다. 사우스 브리지(135)에 포함된 다른 컴포넌트들은 종종 다이렉트 메모리 액세스(DMA) 컨트롤러, 프로그램가능 인터럽트 컨트롤러(PIC), 스토리지 디바이스 컨트롤러를 포함하며, 이는 사우스 브리지(135)와 비휘발성 스토리지 디바이스(300), 예를 들어 버스(184)를 사용하는 복합 하드 디스크 드라이브(185)를 연결시킨다.
익스프레스 카드(155)는 핫 플러거블 디바이스들(hot-pluggable devices)을 정보 처리 시스템과 연결시키는데 사용되는 슬롯(a slot)이다. 익스프레스 카드(155)는 USB(Universal Serial Bus)와 PCI 익스프레스 버스를 모두 사용하여 사우스 브리지(135)와 연결되기 때문에 PCI 익스프레스 및 USB 접속(connectivity) 모두를 지원한다. 사우스 브리지(135)는 USB에 연결되는 장치들에 USB 접속을 제공하는 USB 컨트롤러(140)을 포함한다. 이 장치들은 웹캠(카메라)(150), 적외선(IR) 수신기(148), 무선 퍼스널 영역 네트웍(PANs)을 제공하는 블루투스 장치(146), 키보드 및 트랙패드(144), 및 다른 여러 종류의 USB 접속 장치들(142) (예, 마우스, 이동식 비휘발성 스토리지 디바이스(145), 모뎀들, 네트웍 카드들, ISDN 커넥터들, 팩스, 프린터들, USB 허브들, 및 많은 다른 종류의 USB 접속 장치들)을 포함한다. 여기서는 이동식 비휘발성 스토리지 디바이스(145)가 USB 접속 장치로 도시되었지만, 이동식 비휘발성 스토리지 디바이스(145)는 다른 인터페이스, 예를 들어 파이어와이어 인터페이스(Firewire interface) 등을 사용하여 접속될 수 있다. 이동식 스토리지 디바이스(145)는 또한 예를 들어, 도 3-6에 도시된 하이브리드 디스크 드라이브(300)와 같은 복합 디스크 드라이브일 수 있다.
무선 LAN(Local Area Network) 디바이스(175)는 PCI 또는 PCI 익스프레스 버스(172)를 통해 사우스 브리지(135)와 연결된다. LAN 디바이스(175)는 통상, OTA(over-the-air) 모듈레이션 기술들의 IEEE 802.11 표준들 중 하나를 실행하는데, 상기 기술들은 모두 정보 처리 시스템(100)과 또 다른 컴퓨터 시스템(또는 디바이스) 간의 무선 통신에 있어서 동일한 프로토콜을 사용한다. 영상 저장 디바이스(optical storage device)(190)은 직렬 ATA(SATA) 버스(188)를 사용하여 사우스 브리지(135)와 연결된다. 그리고 직렬 ATA 어댑터들과 디바이스들은 고속 직렬 링크를 통해서 통신한다. 직렬 ATA 버스는 또한 사우스 브리지(135)를 다른 형태의 스토리지 디바이스들, 예를 들어 하드 디스크 드라이브들과 연결시키는데 사용된다. 사운드 카드와 같은 오디오 회로(160)는 버스(158)를 통해서 사우스 브리지(135)와 연결된다. 오디오 회로(160)는 예를 들어, 오디오 라인-인 및 광 디지털 오디오 인 포트(audio line-in and optical digital audio in port)(162), 광 디지털 출력 및 헤드폰 잭(164), 내부 스피커(166), 및 내부 마이크로폰(168)의 기능을 제공하기 위해 사용된다. 이더넷 컨트롤러(170)는 PCI 또는 PCI 익스프레스 버스와 같은 버스를 사용하여 사우스 브리지(135)와 연결된다. 그리고 이더넷 컨트롤러(170)는 예를 들어 LAN, 인터넷, 그리고 다른 공공 및 사설 컴퓨터 네트웍들과 같은 컴퓨터 네트워크를 통해 정보 처리 시스템(100)을 연결하는데 사용된다.
도 1은 한가지 정보 처리 시스템을 도시하고 있지만, 여러 가지 형태를 취할 수도 있다. 예를 들어, 정보 처리 시스템은 데스크탑, 서버, 휴대용, 랩탑, 노트북, 또는 다른 폼 펙터(form factor) 컴퓨터 또는 데이터 처리 시스템의 형태를 취할 수 있다. 나아가, 정보 처리 시스템은 다른 펙터들, 예를 들어 PDA(personal digital assistant), 게임 디바이스, ATM 머신, 휴대폰 디바이스, 통신 디바이스 혹은 프로세서와 메모리를 포함하는 다른 디바이스들 혹은 통신 디바이스와 같은 형태를 취할 수도 있다.
보안 기능들을 제공하기 위한 신뢰 플랫폼 모듈(Trusted Platform Module; TPM)(195)이 도 1에 도시되고 여기서 기술된다. 그러나 이는 하드웨어 보안 모듈(HSM)의 한 예시에 불과하다. 따라서, 여기서 기술되고 청구된 TPM은 신뢰 컴퓨팅 그룹(Trusted Computing Groups; TCG) 표준에 일치하는 하드웨어 보안 디바이스들 (이에 한정되지 않음)을 포함하는 모든 종류의 HSM을 포함하며, “신뢰 플랫폼 모듈(TPM) 사양 버전 1.2”로 명명된다. TPM은 도 2에 개략적으로 나타낸 것과 같이 여러 정보 처리 시스템들의 내부에 포함될 수 있는 하드웨어 보안 서브시스템이다.
도 2는, 여기서 기술된 방법들이 네트웍 환경에서 동작하는 광범위한 종류의 정보 처리 시스템들 상에서 수행되도록 설명하기 위해, 도 1에 도시된 정보 처리 시스템 환경의 확장을 제공한다. 정보 처리 시스템들의 종류는, 핸드헬드(handheld) 컴퓨터/모바일 폰(210)과 같은 소형 핸드헬드 디바이스들에서부터 메인프레임 컴퓨터(270)와 같은 대형 메인프레임 시스템들에까지 이른다. 이때 핸드헬드 컴퓨터(210)의 예들에는 PDA들, 그리고 MP3 플레이어, 휴대용 TV, 및 컴팩트 디스크 플레이어들과 같은 퍼스널 엔터테인먼트 디바이스들이 포함된다. 정보 처리 시스템의 다른 예들에는, 펜 (또는 타블릿) 컴퓨터(220), 랩탑 (또는 노트북) 컴퓨터(230), 워크스테이션(240), 퍼스널 컴퓨터 시스템(250), 및 서버(260)가 포함된다. 도 2에 개별적으로 도시되지 않은 다른 종류의 정보 처리 시스템들은 도면에서 정보 처리 시스템(280)으로 표현되었다. 도시된 바와 같이, 다양한 정보 처리 시스템들은 컴퓨터 네트워크(200)을 이용하여 함께 연결될 수 있다. 다양한 정보 처리 시스템들을 상호 연결하는데 사용될 수 있는 컴퓨터 네트워크 종류에는 LAN들(Local Area Networks), 무선 LAN들, 인터넷, 공용 스위치 텔레폰 네트워크(Public Switched Telephone Network; PSTN), 다른 무선 네트워크들, 및 그 밖에 정보 처리 시스템들을 상호 연결하는데 사용될 수 있는 다른 네트웍 기술이 포함된다. 많은 정보 처리 시스템이 하드 드라이브들 및/또는 비휘발성 메모리와 같은 비휘발성 데이터 저장소들(stores)을 포함한다. 그리고 도 2에 도시된 정보 처리 시스템들 중 몇몇은 별도의 비휘발성 데이터 저장소들과 함께 도시된다 (서버(260)는 휘발성 데이터 저장소(265)와 함께 도시되고, 메인프레임 컴퓨터(270)는 비휘발성 데이터 저장소(285)와 함께 도시되며, 정보 처리 시스템(270)은 비휘발성 데이터 저장소(285)와 함께 도시된다). 비휘발성 데이터 저장소는 여러 정보 처리 시스템들의 외부에 존재하는 컴포넌트이거나 혹은 상기 정보 처리 시스템들 중 어느 하나의 내부에 존재할 수 있다. 나아가, 이동식 비휘발성 스토리지 디바이스(145)는 다양한 기술들을 사용하여 둘 또는 그 이상의 정보 처리 시스템 사이에서 공유될 수 있다. 이때 상기 기술에는, 이동식 비휘발성 스토리지 디바이스(145)를 USB 포트 혹은 정보 처리 시스템들의 다른 커넥트들과 연결하는 것과 같은 기술이 포함된다.
도 3은 애플리케이션의 데이터를 암호화 파일 시스템에 안전하게 저장하는데 있어서 애플리케이션 및 암호화 파일 시스템 사이의 인터페이스를 도시한다. 애플리케이션(300)은 데이터(310)를 제 1 버퍼(320)에 기록한다. 도시된 바와 같이, 제 1 버퍼는 애플리케이션(300)에 의해 사용되거나 혹은 애플리케이션(300)에 의해 생성된, 암호화되지 않은 데이터를 저장하기 위해서 사용된다. 어떤 시점에서, 예를 들어 버퍼(320)가 가득 차면, 데이터를 암호화 파일 시스템(375)에 기록하도록 암호화 파일 시스템 프로세스(330)에 요청이 이루어진다. 일 실시 예에서, 암호화 파일 시스템 프로세스는 운영 시스템의 커널(kernel) 내에서 실행되는 커널 프로세스이다.
암호화 파일 시스템 프로세스(330)은 제 1 버퍼(320)으로부터 데이터를 읽어와서 제 2 버퍼(350)에 암호화된 데이터(340)를 기록한다. 일 실시 예에서는, 제 1 버퍼(320)로부터 데이터를 읽어와서, 암호화하고, 그런 다음 그 암호화된 데이터(340)를 제 2 버퍼(350)에 저장한다. 또 다른 실시 예에서는, 제 1 버퍼(320)로부터 데이터를 읽어와서, 제 2 버퍼(350)에 기록한 다음, 그대로 제 2 버퍼에서 암호화한다. 암호화된 데이터(340)가 생성되고 제 2 버퍼(350)에 저장(예, 상기 기술된 실시 예들 중 하나를 사용하여 저장)된 후에는, 암호화 파일 시스템 프로세스(330)는 디스크 기록(360)을 수행한다. 그래서 암호화된 데이터를 제 2 버퍼(350)로부터 읽어와서 암호화 파일 시스템의 일부인 비휘발성 데이터 저장소(370)에 저장된다.
애플리케이션(300)은 암호화 파일 시스템 프로세스(330)를 통해 데이터가 제 1 버퍼(320)로부터 읽혀진 이후에도 제 1 버퍼(320)에 추가적인 데이터가 기록되는 것을 허용한다. 일 실시 예에서, 암호화 파일 시스템 프로세스는 애플리케이션(300)으로부터 요청을 수신하면 제 1 버퍼(320)를 잠근다(lock). 암호화 파일 시스템 프로세스(330)가 데이터 읽기를 완료하면, 제 1 버퍼(320)는 잠금 해제되고 그러면 애플리케이션(300)은 데이터를 제 1 버퍼에 기록하는 동작을 다시 시작할 수 있다. 이런 방식으로, 애플리케이션(300)은 제 2 버퍼(350)에 저장된 암호화된 데이터 모두가 암호화 데이터 저장소(370)에 기록되기 전에 데이터를 제 1 버퍼(320)에 기록하는 동작을 다시 시작할 수 있다.
도 4는 암호화 파일 시스템이 데이터를 암호화하는 도중에 새로운 데이터를 기록하기 위해 애플리케이션이 기다릴 필요가 없도록 암호화 파일 시스템을 사용하여 애플리케이션이 그것의 데이터를 저장하는 것을 도시한 흐름도이다. 소프트웨어 애플리케이션의 프로세싱은 애플리케이션(300)에서 시작된다. 단계(410)에서, 소프트웨어 애플리케이션들은, 소프트웨어 애플리케이션이 실행되는 정보 처리 시스템의 메모리 내부에 위치한 제 1 버퍼(320)에 암호화되지 않은 데이터를 기록한다. 어떤 시점에서 (예, 제 1 버퍼(320)가 가득 차거나 혹은 거의 가득 찬 경우, 등.), 버퍼에 기록되었던 데이터를 암호화 파일 시스템을 통해 관리되는 비휘발성 스토리지에 저장하라는 요청이 이루어진다(단계 420). 일 실시 예에서, 요청은 상기 데이터가 저장될 암호화 파일 시스템에서의 어떤 파일 특징들 (예, 파일명, 파일위치, 디렉토리, 등)뿐만 아니라 제 1 버퍼(320)의 포인터 또는 주소를 포함한다. 단계(425)에서, 소프트웨어 애플리케이션은 추가적인 데이터를 제 1 버퍼(320)에 기록하기 위해 대기하는데, 제 1 버퍼가 암호화 파일 시스템 프로세스에 의해서 잠금 해제될 때까지 그렇게 한다.
암호화 파일 시스템 프로세싱(예, 운영 시스템 커널 프로세스에 의해 수행됨)은 암호화 파일 시스템(330)에서 시작된다. 단계(430)에서, 암호화 파일 시스템 프로세스는 데이터를 비휘발성 스토리지에 저장하라는 요청을 수신한다. 단계(440)에서, 암호화 파일 시스템은 암호화된 데이터를 저장하는데 사용될 기존의 제 2 버퍼를 할당 또는 사용한다. 단계(450)에서, 암호화 파일 시스템 프로세스가 제 1 버퍼(320)로부터 데이터를 읽어오는 동안, 제 1 버퍼는 잠기게 된다(locked). 그렇게 해서 암호화 파일 시스템 프로세스가 데이터를 읽어오는 동안, 도시된 소프트웨어 애플리케이션 (또는 다른 소프트웨어 애플리케이션)은 버퍼에 데이터를 기록할 수 없게 된다. 제 1 실시 예는, 단계(460)에서, 제 1 버퍼(320)로부터 암호화되지 않은 데이터를 읽어와서 암호화 파일 시스템 프로세스에 의해 암호화한 다음 그 암호화된 데이터를 제 2 버퍼(350)에 저장한다. 제 2 실시 예는, 단계(460)에서, 제 1 버퍼(320)로부터 암호화되지 않은 데이터를 읽어와서 제 2 버퍼(350)에 기록한 다음 그곳에서 암호화한다. 한편, 제 3 실시 예는, 단계(460)에서, 제 1 버퍼(320)로부터 암호화되지 않은 데이터를 읽어와서 또 다른 버퍼(제 3 버퍼)에 기록한 다음, 제 3 버퍼의 데이터를 읽어와서 암호화하고 그런 다음 그 암호화된 데이터를 제 2 버퍼(350)에 저장한다. 어느 경우이든지, 단계(470)에서, 암호화 파일 시스템 프로세스는 제 1 버퍼로부터 데이터 모두를 읽어온 후에 제 1 버퍼를 잠금 해제한다(unlock). 제 1 실시 예를 이용하면, 일단 제 1 버퍼(320)로부터 데이터 모두를 읽어온 다음에 제 1 버퍼가 잠금 해제되고, 그런 다음에 암호화된 데이터가 제 2 버퍼(350)에 기록된다. 제 2 실시 예를 취하면, 제 1 버퍼(320)로부터 암호화되지 않은 데이터 모두를 읽어오고 그 데이터가 제 2 버퍼(350)에 기록되면, 제 1 버퍼가 잠금 해제된다 (즉, 제 2 버퍼에서 암호화가 수행되기 전에 그렇게 된다). 마지막으로, 제 3 실시 예를 이용하면, 제 1 버퍼(320)로부터 암호화되지 않은 데이터 모두를 읽어오고 그 데이터가 “제 3” 버퍼에 기록되면, 제 1 버퍼가 잠금 해제된다 (즉, 데이터가 암호화되어서 제 2 버퍼(350)에 기록되기 전에 그렇게 된다).
제 1 버퍼(320)가 잠금 해제되면, 소프트웨어 애플리케이션은 이를 통지 받는다. 단계(475)에서, 소프트웨어 애플리케이션은 암호화된 데이터가 실제로 비휘발성 스토리지에 기록되기를 기다릴 필요 없이, 제 1 버퍼(320)를 사용하여 데이터를 읽고 기록하는 것을 다시 시작할 수 있다. 단계(475)와 동시에 수행되는 단계(480)에서, 암호화 파일 시스템 프로세스는 제 2 버퍼(350)에 저장된 암호화된 데이터를 암호화 파일 시스템에 의해 관리되는 비휘발성 스토리지(370)에 기록한다. 상기 언급된 바와 같이, 암호화 파일 시스템 프로세스가 암호화된 데이터를 데이터 저장소(370)에 기록하는 동안, 소프트웨어 애플리케이션은 암호화 파일 시스템을 통해 관리되는 비휘발성 스토리지에 데이터를 최종적으로 기록하기 위해 제 1 버퍼(320)에 데이터를 기록하는 것을 조건 없이 다시 시작할 수 있다. 단계(490)에서, 암호화된 데이터가 비휘발성 스토리지에 기록된 후에, 제 2 버퍼를 저장하는데 사용되는 메모리를 마련하기(free) 위해서 제 2 버퍼가 할당 취소된다(자유 반환된다(freed)). 암호화 파일 시스템은 단계 495에서 종료하고 비휘발성 스토리지 영역(암호화 파일 시스템을 통해 관리됨)에 다시 데이터를 읽거나 또는 기록하기 위해 소프트웨어 애플리케이션으로부터 요청을 수신한다.
본 발명의 바람직한 실시 예들 중 하나인 클라이언트 애플리케이션은, 예를 들어 컴퓨터의 RAM(Random Access Memory)에 상주하게 되는 코드 모듈의 명령들(프로그램 코드) 또는 다른 기능적 서술 자료의 세트이다. 컴퓨터로부터 요청이 있을 때까지, 상기 명령들 세트는 또 다른 컴퓨터 메모리, 예를 들어 하드 디스크 드라이브, 또는 광 디스크 (최종적으로 CD ROM에서 사용하기 위함) 혹은 플러피 디스크 (최종적으로 플러피 디스크 드라이브에서 사용하기 위함)와 같은 이동식 메모리 내부에 저장되거나, 또는 인터넷이나 다른 컴퓨터 네트워크를 통해 다운로드 될 수 있다. 따라서, 본 발명은 컴퓨터에서 사용하기 위한 컴퓨터 프로그램 제품으로 구현될 수 있다. 나아가, 여기서 기술된 여러 가지 방법들은 소프트웨어를 통해 선택적으로 동작 또는 재구성되는 범용 컴퓨터에서 전통적으로 실행되지만, 당해 기술분야의 숙련자는 그러한 방법들이 하드웨어, 펌웨어, 또는 요구된 방법의 단계들을 수행하도록 구성된 더 전문화된 장치에서 실행될 수도 있음을 이해할 것이다. 상기 기능적 서술 자료는 머신(machine)에 기능성을 전달해주는 정보에 해당한다. 기능적 서술 자료에는 컴퓨터 프로그램들, 명령들, 규칙들, 팩트들(facts), 계산 가능한 함수들의 정의들, 객체들, 및 데이터 구조들이 포함되나, 이에 한정되는 것은 아니다.
비록 본 발명의 특정 실시 예들이 여기에 도시되고 기술되었지만, 당해 기술분야의 숙련자들은 여기서 기술한 것들에 기초하여, 본 발명과 그것의 균등한 측면들을 벗어나지 않고도 많은 변형들 및 변경들이 이루어질 수 있음을 자명하게 이해할 수 있을 것이다. 따라서, 첨부된 특허청구범위는 본 발명의 범위 내에 들어오는 그러한 변형들과 변경들을 모두 포함한다. 나아가, 본 발명은 오직 첨부된 특허청구범위에 의해서 정의됨이 이해되어야 한다. 즉, 당해 기술분야의 숙련자들은, 도입된 청구항 엘리먼트(element)에 특정 숫자가 의도된 경우, 그러한 의도가 청구항에 명백하게 인용되어야 하며, 그러한 인용이 없다면 특정 숫자에 한정되지 않음을 이해할 것이다. 한정하기 위한 목적이 아닌, 이해를 돕기 위한 목적으로, 이하에 첨부된 특허청구범위는 청구항의 엘리먼트들을 소개하는데 있어서 도입부에 “적어도 하나” 그리고 “하나 또는 그 이상의” 라는 용어들을 사용하였다. 그러나, 그러한 용어들의 사용은, 청구항 엘리먼트의 도입부가 부정관사 “한” 또는 “하나의”를 포함하는 경우 그와 같이 도입된 청구항 엘리먼트를 포함하는 어떤 특정 청구항이 그러한 엘리먼트들을 오직 하나만 포함하는 발명들인 것으로 제한됨을 내포하는 것으로 구성되어서는 아니 된다. 이것은 동일 청구항이 도입부에 “하나 또는 그 이상의” 또는 “적어도 하나의”라는 용어들과 함께 “한” 또는 “하나의” 라는 부정관사들을 포함하는 경우에도 그러하다; 그리고 이것은 특허청구범위에 부정관사가 사용되는 경우에도 마찬가지이다.

Claims (21)

  1. 컴퓨터로 구현되는 방법에 있어서, 상기 방법은:
    복수의 프로세서들 중 적어도 하나의 프로세서 상에서 실행되는 소프트웨어 애플리케이션에 의해서 제1 데이터 세트를 제1 버퍼에 기록하는 단계;
    암호화 파일 시스템이 상기 제1 버퍼에 저장된 데이터를 세이브(save)하도록 요청하는 단계 - 상기 암호화 파일 시스템은 상기 복수의 프로세서들 중 적어도 하나의 프로세서 상에서 실행됨 -;
    상기 제1 버퍼가 잠금 해제될 때까지 상기 제1 버퍼에 추가적인 데이터가 기록되지 않도록 상기 요청하는 단계 이후에 상기 제1 버퍼를 잠그는 단계(locking);
    상기 암호화 파일 시스템에 의해서 상기 제1 데이터 세트가 제1 암호화된 데이터 세트가 되도록 암호화하는 단계 - 상기 제1 암호화된 데이터 세트는 제2 버퍼에 저장됨 - ;
    상기 암호화 파일 시스템에 의해서 상기 제1 암호화된 데이터 세트를 상기 제2 버퍼로부터 비휘발성 스토리지 영역에 기록하는 단계;
    상기 제1 버퍼를 잠금 해제하는 단계 - 상기 잠금 해제하는 단계는 상기 암호화하는 단계 이후에 그러나 상기 제1 암호화된 데이터 세트 전부가 상기 제2 버퍼로부터 상기 비휘발성 스토리지 영역으로 기록 완료되기 전에 수행됨 -; 및
    상기 소프트웨어 애플리케이션에 의해서 제2 데이터 세트를 상기 제1 버퍼에 기록하는 단계 - 상기 제2 데이터 세트는, 상기 암호화 파일 시스템이 상기 제1 암호화된 데이터 세트를 상기 제2 버퍼로부터 상기 비휘발성 스토리지 영역에 기록하는 것을 완료하기 전에 상기 제1 버퍼에 기록되고, 상기 소프트웨어 애플리케이션은 상기 제1 버퍼가 잠금 해제될 때까지 상기 제2 데이터 세트를 상기 제1 버퍼에 기록하는 것을 대기함 -;를 포함하는
    방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    운영 시스템 커널 프로세스가
    암호화하는 단계 및 상기 제1 암호화된 데이터 세트를 상기 비휘발성 스토리지 영역에 기록하는 단계를 수행하는
    방법.
  5. 제1항에 있어서,
    상기 제1 데이터 세트를 상기 제1 버퍼에 기록하기 전에, 상기 소프트웨어 애플리케이션이 상기 제1 버퍼를 소유하도록 상기 제1 버퍼를 할당하는 단계;를 더 포함하고,
    상기 요청하는 단계는 상기 제1 버퍼의 주소를 상기 암호화 파일 시스템에 전송하는 단계를 포함하고, 그리고
    상기 제1 버퍼를 잠그는 단계는, 상기 소프트웨어 애플리케이션으로부터의 요청을 수신한 후에, 상기 암호화 파일 시스템에 의해서, 상기 제1 버퍼를 잠그는 단계를 더 포함하고, 상기 잠그는 단계는 상기 소프트웨어 애플리케이션을 포함한, 컴퓨터 시스템에서 실행되는 모든 소프트웨어 애플리케이션이 상기 제1 버퍼에 데이터를 기록하지 못하게 하는,
    방법.
  6. 제5항에 있어서,
    상기 암호화하는 단계를 수행하기 전에, 상기 암호화 파일 시스템에 의해, 상기 제2 버퍼를 할당하는 단계;
    상기 제1 버퍼로부터 상기 제1 데이터 세트를 읽어오는 단계;
    상기 제1 데이터 세트를 상기 제2 버퍼에 기록하는 단계;
    상기 제1 데이터 세트가 상기 제2 버퍼에 기록된 후에 상기 제1 버퍼를 잠금 해제하는 단계; 및
    상기 제1 암호화된 데이터 세트가 상기 제2 버퍼에 저장되도록, 상기 제2 버퍼에 기록된 데이터를 그곳에서 암호화하는 단계;를 더 포함하는
    방법.
  7. 제6항에 있어서,
    상기 소프트웨어 애플리케이션에서, 상기 제1 버퍼가 잠금 해제되었다는 통지를 수신하는 단계; 및
    상기 암호화 파일 시스템에 의해서 상기 제1 데이터 세트의 암호화가 완료되기 전에, 상기 소프트웨어 애플리케이션에 의해 상기 제2 데이터 세트를 상기 제1 버퍼에 기록하는 단계;를 더 포함하는
    방법.
  8. 정보 처리 시스템에 있어서,
    하나 또는 그 이상의 프로세서들;
    상기 프로세서들 중 적어도 하나에 의해서 접근 가능한 메모리;
    상기 하나 또는 그 이상의 프로세서들에 의해서 접근 가능한 비휘발성 스토리지 디바이스;
    상기 프로세서들에 의해서 실행되고, 상기 비휘발성 스토리지 디바이스에 암호화된 데이터를 저장하는 암호화 파일 시스템을 포함하는 운영 시스템;
    상기 운영 시스템에 의해서 관리되고, 상기 하나 또는 그 이상의 프로세서들에 의해서 실행되는 소프트웨어 애플리케이션; 및
    메모리 내부에 로드되어 상기 프로세서들 중 적어도 하나에 의해서 실행되는 명령들의 세트;를 포함하되, 상기 명령들의 세트는:
    상기 소프트웨어 애플리케이션에 의해서 제1 데이터 세트를 상기 메모리에 저장된 제1 버퍼에 기록하는 동작;
    상기 암호화 파일 시스템이 상기 제1 버퍼에 저장된 데이터를 세이브(save)하도록 요청하는 동작;
    상기 제1 버퍼가 잠금 해제될 때까지 상기 제1 버퍼에 추가적인 데이터가 기록되지 않도록 상기 요청하는 동작 이후에 상기 제1 버퍼를 잠그는 동작(locking);
    상기 암호화 파일 시스템에 의해서 상기 제1 데이터 세트가 제1 암호화된 데이터 세트가 되도록 암호화하는 동작 - 상기 제1 암호화된 데이터 세트는 상기 메모리에 저장된 제2 버퍼에 저장됨 - ;
    상기 암호화 파일 시스템에 의해서 상기 제1 암호화된 데이터 세트를 상기 제2 버퍼로부터 상기 비휘발성 스토리지 디바이스에 기록하는 동작;
    상기 제1 버퍼를 잠금 해제하는 동작 - 상기 잠금 해제하는 동작은 상기 암호화하는 동작 이후에 그러나 상기 제1 암호화된 데이터 세트 전부가 상기 제2 버퍼로부터 상기 비휘발성 스토리지 디바이스로 기록 완료되기 전에 수행됨 -; 및
    상기 소프트웨어 애플리케이션에 의해서 제2 데이터 세트를 상기 제1 버퍼에 기록하는 동작 - 상기 제2 데이터 세트는, 상기 암호화 파일 시스템이 상기 제1 암호화된 데이터 세트를 상기 제2 버퍼로부터 상기 비휘발성 스토리지 디바이스에 기록하는 것을 완료하기 전에 상기 제1 버퍼에 기록되고, 상기 소프트웨어 애플리케이션은 상기 제1 버퍼가 잠금 해제될 때까지 상기 제2 데이터 세트를 상기 제1 버퍼에 기록하는 것을 대기함 -;을 수행하는
    정보 처리 시스템.
  9. 삭제
  10. 삭제
  11. 제8항에 있어서,
    상기 프로세서들 중 적어도 하나에 의해서 실행되는 명령들은:
    상기 제1 데이터 세트를 상기 제1 버퍼에 기록하기 전에, 상기 소프트웨어 애플리케이션이 상기 제1 버퍼를 소유하도록 상기 제1 버퍼를 할당하는 동작을 추가적으로 수행하고,
    상기 요청하는 동작은 상기 제1 버퍼의 주소를 상기 암호화 파일 시스템에 전송하는 동작을 포함하고, 그리고
    상기 제1 버퍼를 잠그는 동작은 상기 소프트웨어 애플리케이션으로부터의 요청을 수신한 후에, 상기 암호화 파일 시스템에 의해서 상기 제1 버퍼를 잠그는 동작을 추가적으로 포함하고, 상기 잠그는 동작은 상기 소프트웨어 애플리케이션을 포함한, 컴퓨터 시스템에서 실행되는 모든 소프트웨어 애플리케이션이 상기 제1 버퍼에 데이터를 기록하지 못하게 하는
    정보 처리 시스템.
  12. 제11항에 있어서,
    상기 프로세서들 중 적어도 하나에 의해서 실행되는 명령들은:
    상기 암호화하는 동작을 수행하기 전에, 상기 암호화 파일 시스템에 의해, 상기 제2 버퍼를 할당하는 동작;
    상기 제1 버퍼로부터 상기 제1 데이터 세트를 읽어오는 동작;
    상기 제1 데이터 세트를 상기 제2 버퍼에 기록하는 동작;
    상기 제1 데이터 세트가 상기 제2 버퍼에 기록된 후에 상기 제1 버퍼를 잠금 해제하는 동작; 및
    상기 제1 암호화된 데이터 세트가 상기 제2 버퍼에 저장되도록, 상기 제2 버퍼에 기록된 데이터를 그곳에서 암호화하는 동작;을 추가적으로 수행하는
    정보 처리 시스템.
  13. 제12항에 있어서,
    상기 프로세서들 중 적어도 하나에 의해서 실행되는 명령들은:
    소프트웨어 애플리케이션에서, 상기 제1 버퍼가 잠금 해제되었다는 통지를 수신하는 동작; 및
    상기 암호화 파일 시스템에 의해 제1 데이터 세트의 암호화가 완료되기 전에, 상기 소프트웨어 애플리케이션에 의해서 상기 제2 데이터 세트를 상기 제1 버퍼에 기록하는 동작;을 추가적으로 수행하는
    정보 처리 시스템.
  14. 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 판독가능 매체는 컴퓨터 프로그램을 포함하고,
    상기 컴퓨터 프로그램이 정보 처리 시스템에 의해서 실행될 때, 상기 컴퓨터 프로그램은 상기 정보 처리 시스템으로 하여금:
    소프트웨어 애플리케이션에 의해서 제1 데이터 세트를 제1 버퍼에 기록하는 동작;
    암호화 파일 시스템이 상기 제1 버퍼에 저장된 데이터를 세이브(save)하도록 요청하는 동작;
    상기 제1 버퍼가 잠금 해제될 때까지 상기 제1 버퍼에 추가적인 데이터가 기록되지 않도록 상기 요청하는 동작 이후에 상기 제1 버퍼를 잠그는 동작(locking);
    상기 암호화 파일 시스템에 의해서 상기 제1 데이터 세트가 제1 암호화된 데이터 세트가 되도록 암호화하는 동작 - 상기 제1 암호화된 데이터 세트는 제2 버퍼에 저장됨 - ;
    상기 암호화 파일 시스템에 의해서 상기 제1 암호화된 데이터 세트를 상기 제2 버퍼로부터 비휘발성 스토리지 영역에 기록하는 동작;
    상기 제1 버퍼를 잠금 해제하는 동작 - 상기 잠금 해제하는 동작은 상기 암호화하는 동작 이후에 그러나 상기 제1 암호화된 데이터 세트 전부가 상기 제2 버퍼로부터 상기 비휘발성 스토리지 영역으로 기록 완료되기 전에 수행됨 -; 및
    상기 소프트웨어 애플리케이션에 의해서 제2 데이터 세트를 상기 제1 버퍼에 기록하는 동작 - 상기 제2 데이터 세트는, 상기 암호화 파일 시스템이 상기 제1 암호화된 데이터 세트를 상기 제2 버퍼로부터 상기 비휘발성 스토리지 영역에 기록하는 것을 완료하기 전에 상기 제1 버퍼에 기록되고, 상기 소프트웨어 애플리케이션은 상기 제1 버퍼가 잠금 해제될 때까지 상기 제2 데이터 세트를 상기 제1 버퍼에 기록하는 것을 대기함 -;을 수행하도록 하는 기능적 서술 자료(functional descriptive material)를 포함하는,
    컴퓨터 판독가능 매체.
  15. 삭제
  16. 삭제
  17. 제14항에 있어서,
    운영 시스템 커널 프로세스가
    상기 암호화하는 동작 및 상기 제1 암호화된 데이터 세트를 상기 비휘발성 스토리지 영역에 기록하는 동작을 수행하는
    컴퓨터 판독가능 매체.
  18. 제14항에 있어서,
    상기 컴퓨터 프로그램은 상기 정보 처리 시스템으로 하여금 상기 제1 데이터 세트를 상기 제1 버퍼에 기록하기 전에, 상기 소프트웨어 애플리케이션이 상기 제1 버퍼를 소유하도록 상기 제1 버퍼를 할당하는 동작을 수행하도록 하는 기능적 서술 자료를 추가적으로 포함하고,
    상기 요청하는 동작은 상기 제1 버퍼의 주소를 상기 암호화 파일 시스템에 전송하는 동작을 포함하고, 그리고
    상기 제1 버퍼를 잠그는 동작은 상기 소프트웨어 애플리케이션으로부터의 요청을 수신한 후에, 상기 암호화 파일 시스템에 의해서 상기 제1 버퍼를 잠그는 동작을 추가적으로 포함하고, 상기 잠그는 동작은 상기 소프트웨어 애플리케이션을 포함한, 컴퓨터 시스템에서 실행되는 모든 소프트웨어 애플리케이션이 상기 제1 버퍼에 데이터를 기록하지 못하게 하는
    컴퓨터 판독가능 매체.
  19. 제18항에 있어서,
    상기 컴퓨터 프로그램은 상기 정보 처리 시스템으로 하여금:
    상기 암호화하는 동작을 수행하기 전에, 상기 암호화 파일 시스템에 의해, 상기 제2 버퍼를 할당하는 동작;
    상기 제1 버퍼로부터 상기 제1 데이터 세트를 읽어오는 동작;
    상기 제1 데이터 세트를 상기 제2 버퍼에 기록하는 동작;
    상기 제1 데이터 세트가 상기 제2 버퍼에 기록된 후에 상기 제1 버퍼를 잠금 해제하는 동작; 및
    상기 제1 암호화된 데이터 세트가 상기 제2 버퍼에 저장되도록, 상기 제2 버퍼에 기록된 데이터를 그곳에서 암호화하는 동작;을 추가적으로 수행하도록 하는 기능적 서술 자료를 더 포함하는,
    컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 컴퓨터 프로그램은 상기 정보 처리 시스템으로 하여금:
    상기 소프트웨어 애플리케이션에서, 상기 제1 버퍼가 잠금 해제되었다는 통지를 수신하는 동작; 및
    상기 암호화 파일 시스템에 의해서 상기 제1 데이터 세트의 암호화가 완료되기 전에, 상기 소프트웨어 애플리케이션에 의해 상기 제2 데이터 세트를 상기 제 1 버퍼에 기록하는 동작;을 추가적으로 수행하도록 하는 기능적 서술 자료를 더 포함하는,
    컴퓨터 판독가능 매체.
  21. 삭제
KR1020117002469A 2008-08-11 2009-08-03 암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템 KR101539811B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/189,308 US8392704B2 (en) 2008-08-11 2008-08-11 Input/output control and efficiency in an encrypted file system
US12/189,308 2008-08-11

Publications (2)

Publication Number Publication Date
KR20110050631A KR20110050631A (ko) 2011-05-16
KR101539811B1 true KR101539811B1 (ko) 2015-07-27

Family

ID=41278413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117002469A KR101539811B1 (ko) 2008-08-11 2009-08-03 암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US8392704B2 (ko)
EP (1) EP2266032B1 (ko)
JP (1) JP5476381B2 (ko)
KR (1) KR101539811B1 (ko)
WO (1) WO2010018093A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9305142B1 (en) * 2011-12-19 2016-04-05 Western Digital Technologies, Inc. Buffer memory protection unit
US11163892B2 (en) * 2019-01-09 2021-11-02 International Business Machines Corporation Buffering data until encrypted destination is unlocked
CN110234110B (zh) * 2019-06-26 2021-11-02 恒宝股份有限公司 一种移动网络自动切换方法
EP3869333A1 (en) 2020-02-21 2021-08-25 VK Investment GmbH Methods for executing computer executable instructions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143439A (ja) * 1996-11-12 1998-05-29 Fujitsu Ltd データ処理装置
US20020066022A1 (en) * 2000-11-29 2002-05-30 Brad Calder System and method for securing an application for execution on a computer
US6721824B1 (en) * 1998-06-19 2004-04-13 Cisco Technology, Inc. Method and apparatus for assisting communication of information between two processes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249866B1 (en) * 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
US6640269B1 (en) * 1998-06-19 2003-10-28 Cisco Technology, Inc. Method and apparatus for assisting communication of information between two processes
US6615349B1 (en) * 1999-02-23 2003-09-02 Parsec Sight/Sound, Inc. System and method for manipulating a computer file and/or program
SG118081A1 (en) 2000-07-24 2006-01-27 Sony Corp Information processing method inter-task communication method and computer-excutable program for thesame
US6963972B1 (en) 2000-09-26 2005-11-08 International Business Machines Corporation Method and apparatus for networked information dissemination through secure transcoding
US6904597B2 (en) * 2001-03-30 2005-06-07 Intel Corporation Inter-thread communications between different components using double buffer
JP4761652B2 (ja) * 2001-06-04 2011-08-31 ルネサスエレクトロニクス株式会社 データ暗号化回路
JP4265156B2 (ja) * 2002-06-25 2009-05-20 三菱電機株式会社 情報漏洩防止装置および情報漏洩防止方法
JP4777651B2 (ja) * 2002-08-23 2011-09-21 イグジット−キューブ,インク. コンピュータシステム及びデータ保存方法
JP2008060653A (ja) * 2006-08-29 2008-03-13 Matsushita Electric Ind Co Ltd 制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143439A (ja) * 1996-11-12 1998-05-29 Fujitsu Ltd データ処理装置
US6721824B1 (en) * 1998-06-19 2004-04-13 Cisco Technology, Inc. Method and apparatus for assisting communication of information between two processes
US20020066022A1 (en) * 2000-11-29 2002-05-30 Brad Calder System and method for securing an application for execution on a computer

Also Published As

Publication number Publication date
KR20110050631A (ko) 2011-05-16
US8392704B2 (en) 2013-03-05
WO2010018093A1 (en) 2010-02-18
JP2011530754A (ja) 2011-12-22
EP2266032B1 (en) 2017-05-31
JP5476381B2 (ja) 2014-04-23
EP2266032A1 (en) 2010-12-29
US20100037048A1 (en) 2010-02-11

Similar Documents

Publication Publication Date Title
US9740639B2 (en) Map-based rapid data encryption policy compliance
US8560864B2 (en) Firewall for removable mass storage devices
US8566574B2 (en) Secure encrypted boot with simplified firmware update
US7444670B2 (en) Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
TW202107317A (zh) 基於雲端的資料保護服務之重複資料刪除
US11809584B2 (en) File system metadata protection
US8417969B2 (en) Storage volume protection supporting legacy systems
TWI610182B (zh) 用於提供儲存裝置上動態檔案系統的察知之系統及方法
US8607071B2 (en) Preventing replay attacks in encrypted file systems
US8429364B1 (en) Systems and methods for identifying the presence of sensitive data in backups
CN107111726B (zh) 对fat文件系统的文件加密支持
US20190238560A1 (en) Systems and methods to provide secure storage
KR101539811B1 (ko) 암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템
Votipka et al. Passe-partout: A general collection methodology for Android devices
Zhang et al. Live memory acquisition through firewire
US9436840B2 (en) System and method for securely storing information
US10019574B2 (en) Systems and methods for providing dynamic file system awareness on storage devices
US20240160766A1 (en) File system metadata protection
WO2019119304A1 (zh) 一种数据文件及其访问方法、装置及设备

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 4