KR20120065972A - 암호화 속성을 이용하는 가속 크립토그래피 - Google Patents

암호화 속성을 이용하는 가속 크립토그래피 Download PDF

Info

Publication number
KR20120065972A
KR20120065972A KR1020120042447A KR20120042447A KR20120065972A KR 20120065972 A KR20120065972 A KR 20120065972A KR 1020120042447 A KR1020120042447 A KR 1020120042447A KR 20120042447 A KR20120042447 A KR 20120042447A KR 20120065972 A KR20120065972 A KR 20120065972A
Authority
KR
South Korea
Prior art keywords
encrypted
data
encryption
attribute
segments
Prior art date
Application number
KR1020120042447A
Other languages
English (en)
Other versions
KR101405720B1 (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 KR20120065972A publication Critical patent/KR20120065972A/ko
Application granted granted Critical
Publication of KR101405720B1 publication Critical patent/KR101405720B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

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

Abstract

암호화 및 암호 해독하는 방법들 및 시스템들이 제시된다. 일 실시예에서, 본 방법은 키를 이용하여 데이터의 하나 이상의 세그먼트를 암호화하는 단계를 포함한다. 데이터는 적어도 하나의 암호화 속성과 관련되고, 복수의 세그먼트를 갖는다. 암호화 속성은, 암호화할 데이터의 하나 이상의 세그먼트를 식별하는 정보를 포함한다. 본 방법은 암호화 속성을 암호화하고, 부분적으로 암호화된 데이터 및 암호화된 암호화 속성을 포함하는 데이터를 저장하는 단계를 더 포함한다.

Description

암호화 속성을 이용하는 가속 크립토그래피{ACCELERATED CRYPTOGRAPHY WITH AN ENCRYPTION ATTRIBUTE}
본 발명의 실시예들은 콘텐트 보안 분야에 관한 것이며, 특히, 데이터를 암호화하고 암호 해독하는 것에 관한 것이다.
대칭 크립토그래피(symmetric cryptography)는 암호화 및 암호 해독 동작들이 동일한(또는, 덜 일반적이지만, 그들의 키들이 상이하지만, 쉽게 연산할 수 있는 방식으로 연관된) 키를 공유하는 크립토그래피이다. 대칭 크립토그래피 알고리즘들의 예들은 DES(Data Encryption Standard) 및 AES(Advanced Encryption Standard)를 포함한다.
한편, 공개 키 암호화 알고리즘들은 암호화 및 암호 해독을 위해 비대칭 키들을 이용한다. 비대칭 키들은 (그것의 소유자에 의해서만 보관되는) 개인 키 및 (그외의 엔티티들에게 이용가능한) 공개 키를 포함한다. 2개의 키들은 독립적이지만, 기능에 있어서 상보적이다. 공개 키를 이용하여 암호화되는 정보는 대응하는 개인 키를 이용하여야만 암호 해독될 수 있다. 2개의 키들은 함께 키 페어 또는 키 세트로 지칭된다. RSA 알고리즘은 공개 키 암호화 알고리즘들의 예이다.
EFS(Encrypting File System)는 암호화 서비스들을 갖는 파일 시스템이다. 본 기술은, 컴퓨터에 대한 물리적 액세스를 이용하는 침입자들로부터 기밀 데이터를 보호하기 위해 파일 시스템상에서 파일들이 투명하게(transparently) 암호화되고 암호 해독되도록 한다. EFS는, 올바른 키없이 파일을 암호 해독하는 것이 이론적으로 불가능하거나, 크랙하기 위하여 비합리적인 길이의 시간을 요하는 것을 보장하기 위해 공개 키 크립토그래피를 이용한다.
EFS는, FEK(File Encryption Key)로도 알려진, 대칭 키를 이용하여 파일을 암호화함으로써 기능한다. 그리고 나서 FEK는 통상적으로 사용자와 연관된 공개 키를 이용하여 암호화되고, 제3자들에게 이용가능하다. 암호화된 파일을 암호 해독하기 위해, EFS는 사용자에 의해서만 액세스되는 개인 키를 이용하여, 암호화된 FEK를 암호 해독한다. 그리고 나서 EFS는 FEK를 이용하여 암호화된 파일을 암호 해독한다. 일반적으로, 이러한 암호화 및 암호 해독 동작들은, 사용자들 및 운영체제 상에서 실행되는 어플리케이션들에 대해 투명하도록, 운영 체제하의 계층에서 행해진다.
암호화 속성들을 이용하여 암호화하고 암호 해독하는 방법들 및 시스템들의 실시예들이 제시된다. 암호화 속성은 암호화될 파일의 하나 이상의 세그먼트들을 식별하기 위한 정보를 포함한다. 암호화 프로세스는 이러한 하나 이상의 세그먼트들을 암호화하여, 전체 파일을 암호화하는 대신에 부분적으로 암호화된 파일을 생성한다. 즉, 파일은 암호화된 일부 데이터와, 암호화되지 않은 일부 데이터를 포함한다. 일 실시예에서, 암호화 속성이 암호화되며, 부분적으로 암호화된 파일과 함께 저장된다.
일 실시예에서, 암호 해독 동작은, 암호화 속성에 포함된 정보를 이용하여 부분적으로 암호화된 파일에서 암호화된 이러한 세그먼트들을 식별한다. 일 실시예에서, 인가된 사용자, 예를 들어 파일의 소유자는, 암호화 동작 동안에 암호화되어야 할 파일의 세그먼트들을 식별하기 위해 파일과 연관된 암호화 속성을 설정한다.
이하의 설명에서, 다양한 특정 세부사항들이 설명되어 본 발명의 실시예들의 보다 완전한 설명을 제공한다. 그러나, 실시예들은 이들 특정 세부사항들 없이도 실시될 수 있음이 이해될 것이다. 그외의 예들에서, 주지된 구성요소들, 사양들, 및 프로토콜들은 본 발명의 실시예들을 모호하게 하지 않기 위해 상세하게 논의되지 않았다.
이하의 상세한 설명의 일부 부분들은, 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 알고리즘들 및 심볼 표현들의 관점에서 제시된다. 이러한 알고리즘 설명들 및 표현들은 데이터 프로세싱 분야의 당업자에 의해, 본 기술분야의 다른 당업자들에게 그들의 작업의 내용을 가장 효과적으로 전달하기 위해 이용되는 수단이다. 여기서 알고리즘은, 일반적으로 원해지는 결과를 도출하는 단계들의 일관성있는 시퀀스로 간주된다. 단계들은 물리적인 양들의 물리적인 조작들을 요한다. 통상적으로, 필수적이지는 않으나, 이러한 양들은 저장, 전달, 결합, 비교 및 그외의 방식으로 조작될 수 있는 전기적 또는 자기적 신호들의 형식을 취한다. 때로는, 이러한 신호들을 비트들, 값들, 구성요소들, 심볼들, 캐릭터들(characters), 용어들(terms), 숫자들 등으로서 지칭하는 것이 통상적인 사용 이유를 위해서 대체로 편리하다는 것이 증명되었다.
그러나, 이들 모두 및 적절한 물리적 양들과 연관된 유사한 용어들은 단지 이들 양들에 적용된 편의성 호칭일 뿐임을 명심해야 한다. 이하의 설명으로부터 명백하듯이 특별히 달리 언급되지 않으면, 상세한 설명 전체에 걸쳐서 "프로세싱" 또는 "컴퓨팅" 또는 "연산" 또는 "판정" 또는 "디스플레잉" 등의 용어들을 이용하는 논의들은, 컴퓨터 시스템의 레지스터 및 메모리들 내의 물리적(전자적) 양들로서 표현된 데이터를 조작하고, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 그외의 그러한 정보 저장, 전송 또는 디스플레이 디바이스들 내의 물리적 양들로서 유사하게 표현된 그외의 데이터로 변형하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 프로세스들의 실행을 지칭하는 것으로 이해되어야 한다.
본 발명의 실시예들은 또한 본 명세서의 동작들을 행하는 장치들에 관한 것이다. 일부 장치들은 요구되는 목적들을 위해 특별하게 구성될 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 플로피 디스크들, 광 디스크들, CD-ROM들, DVD-ROM들, 및 광자기 디스크들을 포함하는 임의의 유형의 디스크, 또는 ROM들(read-only memories), RAM들(random access memories), EPROM들, EEPROM들, NVRAM들, 자성 또는 광학 카드들 또는 각각이 컴퓨터 시스템 버스에 연결되고, 전자적 명령들을 저장하기에 적절한 임의의 유형의 매체와 같은, 컴퓨터 판독가능한 저장 매체에 저장될 수 있으나, 이에 한정되는 것은 아니다.
본 명세서에서 표현된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 그외의 장치들과 관련되지 않는다. 본 명세서의 교시들에 따라 다양한 범용 시스템들이 프로그램들과 함께 이용될 수 있거나, 요구되는 방법 단계들을 행하기 위해 보다 전문화된 장치를 구성하는 것이 손쉬울 것으로 판명될 것이다. 이러한 각종 시스템들에 요구되는 구조는 이하의 설명에서 나타날 것이다. 또한, 본 발명의 실시예들은 임의의 특정 프로그래밍 언어와 관련하여 설명되지 않는다. 본 명세서에서 설명된 바와 같이, 본 발명의 교시들을 구현하기 위해 각종 프로그래밍 언어들이 이용될 수 있음을 이해할 것이다.
머신 판독가능한 매체는, 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형식으로 정보를 저장하거나 전송하는 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독가능한 매체는 ROM; RAM; 자성 디스크 저장 매체; 광 저장 매체; 플래시 메모리 디바이스들; 전기적, 광학적, 음향적 또는 전파된 신호들의 그외의 형식(예를 들어, 반송파들, 적외선 신호들, 디지털 신호들 등)을 포함한다.
암호화 속성들을 이용하여 암호화하고 암호 해독하는 방법들 및 시스템들의 실시예들이 제시된다. 암호화 속성은 암호화될 파일의 하나 이상의 세그먼트들을 식별하기 위한 정보를 포함한다. 암호화 프로세스는 이러한 하나 이상의 세그먼트들을 암호화하여, 전체 파일을 암호화하는 대신에 부분적으로 암호화된 파일을 생성한다. 즉, 파일은 암호화된 일부 데이터와, 암호화되지 않은 일부 데이터를 포함한다. 일 실시예에서, 암호화 속성이 암호화되며, 부분적으로 암호화된 파일과 함께 저장된다.
본 발명의 실시예들은 이하에 제공된 상세한 설명 및 첨부하는, 본 발명의 다양한 실시예들의 도면들로부터 더욱 완전하게 이해될 것이나, 본 발명의 특정 실시예들로 한정된다고 간주되어선 안되며, 설명과 이해만을 위한 것으로 간주되어야 한다.
도 1은 본 발명의 일 실시예에 따른 데이터의 암호화를 도시하는 데이터 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 데이터의 암호화를 도시하는 데이터 흐름도이다.
도 3은 암호화 과정의 일 실시예의 흐름도이다.
도 4는 암호 해독 과정의 일 실시예의 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 EFS(encrypting file system)의 디렉토리 구조를 도시한다.
도 6은 크립토그래피 시스템의 일 실시예의 블럭도이다.
도 7은 본 발명의 일 실시예가 이용될 수 있는 컴퓨터 시스템을 도시한다.
<도면의 주요 부분에 대한 부호의 설명>
100: 데이터
101: 부분적으로 암호화된 데이터
103: 부분적으로 암호화된 데이터
104: 파일 암호화 키(FEK)
105: 암호화 속성
107: 암호화된 FEK
108: 암호화된 FEK
110: 암호화된 암호화 속성
111: 암호화된 암호화 속성
112: 사용자의 공개 키
120: 암호화된 데이터
개요
도 1은 본 발명의 일 실시예에 따른 데이터의 암호화를 도시하는 데이터 흐름도이다. 도 1을 참조하면, 일 실시예에서, 암호화 프로세스의 구성요소들은 데이터(100), FEK(file encryption key)(104), 암호화 속성(105), 암호화 엔진들(121-122), 공개 키(112), 및 암호화된 데이터(120)를 포함한다.
일 실시예에서, 데이터(100)는, 예를 들어, 매체 파일, 텍스트 파일, 데이터베이스의 데이터 레코드, 또는 임의의 형식의 디지털 정보 콘텐트 등의 평문이다. 데이터(100)를 암호화하기 위해, 암호화 엔진(121)은 암호화 키로서 FEK(104) 및 암호화 속성(105)을 수신한다. 암호화 속성(105)은, 암호화될 데이터(100)의 하나 이상의 세그먼트들을 식별하는 정보를 포함한다. 암호화 엔진(121)의 결과는 부분적으로 암호화된 데이터(101)이다. 일 실시예에서, FEK(104) 및 암호화 속성(105)은, 사용자와 연관된 공개 키(112)와 암호화 엔진(122)을 이용하여 암호화된다. 암호화 엔진(122)으로부터의 출력들은 각각 암호화된 FEK(107) 및 암호화된 암호화 속성(111)이다. 일 실시예에서, 부분적으로 암호화된 데이터(103), 암호화된 FEK(108), 및 암호화된 암호화 속성(110)은 암호화된 데이터(120)에 함께 저장된다. 일 실시예에서, 데이터의 모든 세그먼트들이 암호화되지 않기 때문에 암호화 동작을 행하는 전반적인 시간이 감소된다. 성능의 증가는, 암호화 속성(105)의 정보에 기초하여 얼마나 많은 세그먼트들이 암호화를 위해 식별되는가에 따른다. 일 실시예에서, 암호화된 데이터(120)는 EFS 상에 또는 파일 시스템 상에 저장되거나, 또 다른 컴퓨터 시스템에 저장/이용되도록 전송된다.
일 실시예에서, 데이터(100)는, 그 길이가 암호화 엔진(121)의 블록 크기들 중 하나와 동일하도록 각각의 세그먼트가 M-비트 길이인 세그먼트들로 분할된다. 일 실시예에서, 암호화 엔진(121)의 블록 암호들은 동작의 각 회차(round)에서 128-비트 세그먼트를 처리한다. 본 기술분야의 당업자는, 암호화를 구현하기에 적절한 임의의 블록 크기가, 암호화 목적을 위해 데이터(100)를 분할하기 위한 세그먼트의 길이를 판정하는데 이용될 수 있음을 이해할 것이다.
일 실시예에서, 암호화 속성(105)은 데이터(100)의 카테고리 또는 파일 유형에 기초하여 디폴트 설정으로 설정된다. 디폴트 설정은 사용자들, 관리자들 또는 모두에 의해 변경될 수 있다. 일 실시예에서, 암호화 속성(105)은, 예를 들어, 암호화하기 위한 세그먼트들의 리스트에 대응하는 숫자들의 리스트, 어느 세그먼트(들)을 암호화할 것인지를 기술하는 규칙 또는 규칙들의 세트, 그러한 규칙(들)에 대응하는 식별자, 그러한 규칙(들) 또는 그러한 숫자들의 리스트 또는 그것들의 임의의 조합을 저장하는 위치에 대한 포인터 등의 정보를 포함한다. 본 기술분야의 당업자는 정보가, 데이터(100)의 어느 세그먼트들이 암호화될 것인지를 식별하기 위해 상이한 방식들로 암호화 속성(105)에 표현될 수 있음을 이해할 것이다. 일 실시예에서, 암호화 속성(105)은 인가된 사용자들 및 지정된 복원 에이전트들에 관한 정보와 같은 추가적인 정보를 포함한다.
일 실시예에서, 데이터(100)는 파일들의 특정 유형들의 예이다. 파일의 헤더(또는 첫번째 N 세그먼트들)을 암호화하는 것은 인가되지 않은 이용들로부터 파일을 보호하기 위해 충분하다. 예를 들어, 헤더는 파일 형식을 해석하기 위한 결정적 정보, 예를 들어, 비디오 인코딩 알고리즘과 연관된 파라미터들, 화상 인코딩 알고리즘과 연관된 파라미터들, 데이터 구조의 데이터 필드들, 또는 파일을 보호하기 위해 배치된 그외의 보안 수단을 포함한다.
일 실시예에서, 데이터(100)의 특정 세그먼트들을 암호화하는 것은, 암호화된 세그먼트가 복원되지 않는한 데이터가 쓸모없도록 만든다. 예를 들어, 환자의 의료 이력 기록은, 환자 이름 및 그/그녀의 식별자 번호가 암호화되어 있으면 쓸모없으며, 따라서 인가되지 않은 액세스로부터 보호된다. 특정 환자와 연관시킬 수 없는 의료 이력 기록은 유용하지 않다.
일 실시예에서, 파일과 같은 데이터(100)는 파일의 매 N 세그먼트들마다 여러개의 세그먼트들을 암호화함으로써 암호화된다. 예를 들어, 이러한 패턴으로 암호화된 비디오 파일은 시청으로부터 보호되는 일부 프레임들을 갖는다. 암호화된 파일의 시청자는 중단 없이 전체 길이의 비디오를 즐길 수 없다. 암호화된 파일은 불연속성 때문에 이용할 수 없다고 간주된다. 비교하여 보면, 비디오 파일의 일부 세그먼트를 암호화하는 것은, 비디오 파일 전체를 암호화하는 것보다 많은 연산 시간을 절약한다. 암호화 파일 시스템의 성능은, 전체 매체 파일들을 암호화 및 암호 해독하는 부담이 줄어들면 증가한다.
일 실시예에서, 데이터(100)는 파일이다. 암호화 엔진(121)은 파일의 복수의 세그먼트들, 예를 들어, 파일의 헤더, 파일의 중요 부분들의 세그먼트들, 파일의 교번하는 N 세그먼트들, 또는 그것들의 임의의 조합들을 암호화하여 인가되지 않은 액세스로부터 파일을 보호한다.
일 실시예에서, 부분적으로 암호화된 데이터(103)에 암호화 속성(105)이 암호화되지 않고 부속된다. 일 실시예에서, 암호화 속성(105)은 공개 키(112) 대신에 FEK(104)를 이용하여 암호화된다.
일 실시예에서, 암호화된 암호화 속성(111)은 부분적으로 암호화된 데이터(103)에 부가된다. 일 실시예에서, 암호화된 암호화 속성(111)은 부분적으로 암호화된 데이터(103) 앞쪽에 추가된다. 일 실시예에서, 암호화된 암호화 속성(110)은, 파일 시스템의 구조에 따라 부분적으로 암호화된 데이터(103)와 연관된 위치에 저장된다.
일 실시예에서, 암호화 엔진(121-122)은 다양한 크립토그래피 알고리즘들(예를 들어, AES, DES, RSA 등)에 기초하여 대칭 크립토그래피 동작들, 비대칭 크립토그래피 동작들, 또는 그 조합을 행할 수 있다. 크립토그래피 동작들은 블록 암호들, 스트림 암호들, 또는 본 기술 분야에 공지된 임의의 그외의 암호 아키텍처들로 구현된다.
도 2는 데이터의 암호화를 도시하는 데이터 흐름도이다. 도 2를 참조하면, 일 실시예에서, 암호화 프로세스의 구성요소들은 개인 키(204), 암호화 엔진들(221-222)과, 부분적으로 암호화된 데이터(208), 암호화된 FEK(209) 및 암호화된 암호화 속성(210)을 더 포함하는 암호화된 데이터(220)를 포함한다. 일 실시예에서, 개인 키(204)는 사용자에 부속하며, 암호화된 데이터(220)를 판독/액세스하는 권한을 갖는 사람에게만 알려진다.
일 실시예에서, 암호화된 FEK(206) 및 암호화된 암호화 속성(207)은 암호화된 데이터(220)로부터 추출된다. 암호 해독 엔진(221)은 암호화된 암호화 속성(207)을 개인 키(204)를 이용하여 암호 해독하여, 암호화 속성(203)을 복원한다. 암호 해독 엔진(221)은 암호화된 FEK(206)를 개인 키(204)를 이용하여 암호 해독하여 FEK(202)를 복원한다.
일 실시예에서, 암호 해독 엔진(222)은 부분적으로 암호화된 데이터(205)를 부분적으로 암호화된 데이터(205)의 어느 세그먼트들이 암호화되었는지를 식별하는 암호화 속성(203)을 참조함으로써 FEK(202)를 이용하여 암호 해독한다. 암호 해독 엔진(222)의 출력은 데이터(201)이며, 이것은 텍스트 파일, 매체 파일, 또는 데이터베이스의 데이터 레코드, 또는 임의의 형식의 디지털 정보 콘텐트일 수 있다. 일 실시예에서, 암호화 속성(203)은, 컴퓨터 저장소들 상에 저장되는 경우에 데이터(201)에 부가된다.
일 실시예에서, 암호 해독 동작을 행하는 전체적인 시간은, 암호 해독 엔진(222)이 부분적으로 암호화된 데이터(205)의 모든 세그먼트들을 암호 해독할 필요가 없기 때문에 감소된다. 성능의 증가는, 암호화 속성(203)의 정보에 기초하여, 부분적으로 암호화된 데이터(205)의 얼마나 많은 세그먼트들이 암호 해독을 위해 식별되는가에 따른다. 일 실시예에서, 암호화된 데이터(220)는 EFS 또는 파일 시스템 상에 저장되거나, 또 다른 컴퓨터 시스템으로부터 수신된다.
일 실시예에서, 부분적으로 암호화된 데이터(205)는, 길이가 암호 해독 엔진들(222)의 블록 크기들 중 하나와 동일하도록 각각의 세그먼트가 M-비트 길이인 세그먼트들로 분할된다. 일 실시예에서, 암호 해독 엔진(222)의 블록 암호들은 동작의 각 회차(round)에서 128-비트 세그먼트/블록을 처리한다. 본 기술분야의 당업자는, 암호화/암호 해독 목적을 위해, 부분적으로 암호화된 데이터를 분할할 경우, 암호화를 구현하는데 적절한 임의의 블록 크기가 세그먼트의 길이를 판정하는데 이용될 수 있음을 이해할 것이다.
일 실시예에서, 암호화 속성(203)은 도 1의 암호화 속성(105)과 동일한 것이다. 본 기술분야의 당업자는 암호화 속성(203)의 정보가, 부분적으로 암호화된 데이터(205)의 어느 세그먼트들이 암호 해독될 것인지를 식별하기 위해 상이한 방식들로 표현될 수 있음을 이해할 것이다. 도 1을 참조하여 전술한 바와 같이, 데이터의 상이한 부분들의 세그먼트들을 암호화함으로써 상이한 유형들의 데이터가 보호될 수 있다. 일 실시예에서, 암호 해독 엔진(222)은, 인가되지 않은 액세스로부터 보호하기 위해 암호화된 복수의 세그먼트, 예를 들어, 파일의 헤더, 파일의 중요 부분들의 세그먼트들, 파일의 교번하는 N 세그먼트들, 또는 그것들의 임의의 조합들을 암호 해독한다.
일 실시예에서, 암호화 속성(203)은, 부분적으로 암호화된 데이터(208)에 암호화되지 않고 부가된다. 일 실시예에서, 암호화 속성(203)은 개인 키(204) 대신에 FEK(202)를 이용하여 암호 해독된다.
일 실시예에서, 암호화된 암호화 속성(210)은 부분적으로 암호화된 데이터(208)에 부가된다. 일 실시예에서, 암호화된 암호화 속성(210)은 부분적으로 암호화된 데이터(208)의 앞쪽에 부가된다. 일 실시예에서, 암호화된 암호화 속성(210)은, 파일 시스템의 구조에 따라, 부분적으로 암호화된 데이터(208)와 연관된 위치에 저장된다.
일 실시예에서, 암호 해독 엔진들(221-222)은 다양한 크립토그래피 알고리즘들(예를 들어, DES, AES, RSA 등)에 기초하여 대칭 크립토그래피 동작들, 비대칭 크립토그래피 동작들, 또는 그 조합들을 행할 수 있다. 크립토그래피 동작들은 블록 암호들, 스트림 암호들, 또는 본 기술 분야에 공지된 임의의 그외의 암호 아키텍처들로 구현된다.
도 3은 암호화 프로세스의 일 실시예의 흐름도이다. 프로세스는, 하드웨어(회로, 전용 로직 등), (범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것과 같은) 소프트웨어, 또는 양자의 조합을 포함할 수 있는 프로세싱 로직에 의해 행해진다. 도 3을 참조하면, 일 실시예에서, 프로세싱 로직은 파일을 암호화하라는 요청을 수신한다(처리 블록(300)). 프로세싱 로직은 파일과 연관된 암호화 속성을 판독한다(처리 블록(301)). 프로세싱 로직은 파일을, 각 세그먼트의 길이가, M-비트 암호화 엔진에 의한 처리를 위해 적절한 복수의 세그먼트로 분할한다(처리 블록(302)).
일 실시예에서, 프로세싱 로직은, 암호화 속성에 포함된 정보에 기초하여, 암호화할 파일의 하나 이상의 세그먼트들을 식별한다(처리 블록(303)). 프로세싱 로직은 파일의 세그먼트가 암호화되는지의 여부를 판정한다(처리 블록(310)). 암호화를 위해 세그먼트가 식별되면, 암호화 엔진은 FEK(대칭 키)를 이용하여 세그먼트를 암호화한다(처리 블록(304)). 그렇지 않은 경우, 암호화 엔진은 세그먼트를 암호화하지 않는다(처리 블록(305)). 프로세싱 로직은 파일의 모든 세그먼트들에 대해 동작을 반복한다(처리 블록(311)).
일 실시예에서, 프로세싱 로직은 FEK 및 암호화 속성을 공개 키를 이용하여 암호화한다(처리 블록(306)). 다른 실시예에서, 프로세싱 로직은 FEK를 이용하여 암호화 속성을 암호화하고, 공개 키를 이용하여 FEK를 암호화한다. 일 실시예에서, 프로세싱 로직은 오직 FEK만을 암호화한다. 일 실시예에서, 프로세싱 로직은 FEK 및 암호화 속성을 암호화하기 위해 동일한 암호화 엔진을 이용한다. 일 실시예에서, FEK 및 암호화 속성을 암호화하기 위해 상이한 암호화 엔진들이 이용된다.
일 실시예에서, 프로세싱 로직은 부분적으로 암호화된 파일, 암호화된 암호화 속성, 및 암호화된 FEK를 파일에 저장한다(처리 블록(307)). 일 실시예에서, 프로세싱 로직은 다른 컴퓨터 시스템에서의 사용을 위해 파일을 전송한다. 일 실시예에서, 프로세싱 로직은 부분적으로 암호화된 파일, 암호화된 암호화 속성, 및 암호화된 FEK를 파일 시스템의 구조에 따라 저장한다.
도 4는 암호 해독 프로세스의 일 실시예의 흐름도이다. 프로세스는, 하드웨어(회로, 전용 로직 등), (범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는 것과 같은) 소프트웨어, 또는 양자의 조합을 포함할 수 있는 프로세싱 로직에 의해 행해진다. 도 4를 참조하면, 일 실시예에서, 프로세싱 로직은 암호화된 파일을 암호 해독하라는 요청을 수신한다(처리 블록(400)).
일 실시예에서, 암호화된 파일은 부분적으로 암호화된 파일, 부분적으로 암호화된 파일과 연관된 암호화된 암호화 속성, 및 암호화된 FEK를 포함한다. 일 실시예에서, 프로세싱 로직은 암호화된 암호화 속성을 암호 해독하여 암호화 속성을 복원하고, 암호화된 FEK를 암호 해독하여 FEK를 복원한다(처리 블록(401)). 프로세싱 로직은 부분적으로 암호화된 파일을, 각 세그먼트의 길이가 M-비트 암호 해독 엔진에 의한 처리에 적절한 복수의 세그먼트로 분할한다(처리 블록(403)).
일 실시예에서, 프로세싱 로직은 암호화 속성에 포함된 정보에 기초하여, 암호 해독할 부분적으로 암호화된 파일의 하나 이상의 세그먼트들을 식별한다(처리 블록(404)). 프로세싱 로직은 파일의 세그먼트가 암호 해독되어야 할 지의 여부를 판정한다(처리 블록(410)). 암호 해독을 위해 세그먼트가 식별되면, 암호 해독 엔진은 FEK를 이용하여 세그먼트를 암호 해독한다(처리 블록(405)). 그렇지 않은 경우, 암호 해독 엔진은 세그먼트를 암호 해독하지 않는다(처리 블록(406)). 프로세싱 로직은 부분적으로 암호화된 파일의 모든 세그먼트들에 대해 동작을 반복한다(처리 블록(411)). 프로세싱 로직은 암호 해독된 파일을 컴퓨터 저장소 상에 파일로 저장한다(처리 블록(407)).
일 실시예에서, 프로세싱 로직은 암호화된 FEK 및 암호화된 암호화 속성을 개인 키를 이용하여 암호 해독한다(처리 블록(401)). 일 실시예에서, 프로세싱 로직은 암호화된 FEK를 개인 키를 이용하여 암호 해독한 후, 암호화된 암호화 속성을 FEK를 이용하여 암호 해독한다. 일 실시예에서, 프로세싱 로직은 오직 FEK만을 암호 해독하며, 암호화 속성은 암호 해독되지 않는다. 일 실시예에서, 프로세싱 로직은 암호화된 FEK 및 암호화된 암호화 속성을 암호 해독하기 위해 동일한 암호 해독 엔진을 이용한다. 일 실시예에서, 상이한 암호 해독 엔진들이 이용되어, 암호화된 FEK 및 암호화된 암호화 속성을 암호 해독한다.
일 실시예에서, 프로세싱 로직은 부분적으로 암호화된 파일, 암호화된 암호화 속성, 및 파일의 암호화된 FEK를 수신한다. 일 실시예에서, 프로세싱 로직은 암호화된 파일을 또 다른 컴퓨터 시스템으로부터 수신한다. 일 실시예에서, 부분적으로 암호화된 파일, 암호화된 암호화 속성, 및 암호화된 FEK는 파일 시스템의 구조에 따라 연관되어 저장된다.
도 5는 본 발명의 일 실시예에 따른 EFS(encrypting file system)의 디렉토리 구조를 도시한다. 도 5를 참조하면, 각각의 파일은 다수의 세그먼트를 갖는다. 그물 모양 패턴으로 나타내어진 세그먼트들이 암호화된다. 파일의 FEK 및 암호화 속성은, 본 실시예의 설명을 모호하게 하지 않도록 도면에 도시되지 않는다. 파일들은 동일한 길이일 필요는 없다.
일 실시예에서, 파일 시스템은 루트 디렉토리(501) 또는 그외의 서브-디렉토리들(예를 들어, 디렉토리들(502, 550)) 아래에 파일들을 저장한다. 서브-디렉토리는 서브-디렉토리(520)와 같은 그외의 서브-디렉토리들을 더 포함할 수 있다. 일 실시예에서, 동일한 디렉토리(예를 들어, 루트 디렉토리(501), 디렉토리(520)) 아래의 파일들은 상이한 방식들로 암호화될 수 있다. 파일(510), 파일(511), 및 파일(513)의 상이한 세그먼트들은 각각의 파일과 연관된 암호화 속성들에 기초하여 암호화된다. 예를 들어, 파일(511)의 제2 세그먼트로부터 시작하여 매 2개의 세그먼트마다 하나씩 암호화된다. 파일(513)의 매 3개의 세그먼트 중 2개의 세그먼트들이 암호화된다. 일 실시예에서, 파일들(511, 513)은 파일 유형들의 상이한 카테고리 아래에 있으며, 상이한 암호화 속성들이 할당된다. 일 실시예에서, 파일들(511, 513)은 파일 유형들의 동일한 카테고리 아래에 있으며, 암호화 속성들은 사용자들에 의해 변경된다.
일 실시예에서, 동일한 디렉토리(502)의 파일들(503-506)은 동일한 암호화 속성들을 이용하여 암호화된다. 일 실시예에서, 파일들(503-506)은, 파일들이 동일한 카테고리의 파일 유형들 아래에 있거나, 동일한 사용자에 속하기 때문에, 동일한 암호화 속성들을 이용하여 암호화된다. 일 실시예에서, 디렉토리(550)의 파일들(551-554)은, 원해지는 보안 레벨들에 기초하여 사용자들에 의해 설정된 상이한 암호화 속성들을 이용하여 암호화된다.
일 실시예에서, 파일은 디폴트 암호화 속성을 갖지 않는다. 예를 들어, 파일들(520-522)의 각각의 암호화 속성은 사용자들에 의해 개별적으로 생성된다. 일 실시예에서, 예를 들어, 신용 카드 번호, 환자 이름과 같은, 파일(521)의 중요 부분의 세그먼트들이 암호화된다. 일 실시예에서, 파일(504)의 헤더로부터의 세그먼트들은, 파일(504)이 헤더의 인코딩 정보에 기초하여 적절하게 디코드/판독될 수 없도록 암호화된다.
도 6은 크립토그래피 시스템의 일 실시예의 블록도이다. 도 6을 참조하면, 일 실시예에서, 크립토그래피 시스템은 제어기(600), 암호화 속성 로직(601), 파일 분할 로직(603), FEK를 이용하는 암호화 엔진(610), 공개 키들을 이용하는 암호화 엔진(611), FEK를 이용하는 암호 해독 엔진(630), 개인 키들을 이용하는 암호 해독 엔진(631), 및 FEK 키 생성기(606)를 포함한다. 일 실시예에서, 저장 드라이브(620) 및 비휘발성 디스크(621)는 크립토그래피 시스템에 의해 조작되는 파일들을 저장한다. 일 실시예에서, 저장 드라이브(620) 및 비휘발성 디스크(621)는 제어기(600)에 의해 관리된다. 일 실시예에서, 제어기(600)는 저장 드라이브(620) 및 비휘발성 디스크(621)를 관리하는 서비스들을 갖는 운영 체제를 실행한다.
일 실시예에서, 제어기(600)는 암호화할 파일을 수신한다. 암호화 속성 로직(601)은 파일의 암호화 속성을 액세스한다. 일 실시예에서, 암호화 속성 로직(601)은 파일 유형에 기초하여 파일에 암호화 속성을 할당한다. 일 실시예에서, 암호화 속성은 파일과 연관되어 저장된다. 암호화 속성 로직(601)은 암호화 속성의 정보에 기초하여 파일의 어느 세그먼트들을 암호화할 것인지를 판정한다.
일 실시예에서, 파일 분할 로직(603)은 파일을 복수의 세그먼트로 분할한다. 각각의 세그먼트는 FEK를 이용하는 암호화 엔진(610)의 블록 크기들 중 하나에 대응하는 M-비트 길이이다. FEK를 이용하는 암호화 엔진(610)은, 파일 분할 로직(603)과 함께 암호화 속성 로직(601)에 의해 식별되는 세그먼트들을 암호화한다. 일 실시예에서, FEK를 이용하는 암호화 엔진(610)은 대칭 크립토그래피 알고리즘들을 구현하는 M-비트 암호화 엔진이다. 일 실시예에서, 공개 키들을 이용하는 암호화 엔진(611)은 암호화 속성 및 FEK를 공개 키를 이용하여 암호화한다. 일 실시예에서, 공개 키들을 이용하는 암호화 엔진(611)은 비대칭 크립토그래피 알고리즘들을 수행한다.
일 실시예에서, 제어기(600)는 부분적으로 암호화된 데이터, 암호화된 암호화 속성 및 파일에 대한 암호화된 FEK를 저장 드라이브(620) 상에 저장한다. 일 실시예에서, 제어기(600)는 부분적으로 암호화된 데이터, 암호화된 암호화 속성, 암호화된 FEK, 또는 그 조합들을, 파일 시스템에 의해 서로 연관되어 있는, 파일 시스템의 상이한 위치들에 저장한다.
일 실시예에서, 제어기(600)는 암호 해독할 파일을 수신한다. 파일은 부분적으로 암호화된 파일, 파일과 연관된 암호화된 암호화 속성, 및 암호화된 FEK를 포함한다. 일 실시예에서, 개인 키들을 이용하는 암호 해독 엔진(631)은 암호화된 암호화 속성 및 암호화된 FEK를 개인 키를 이용하여 암호 해독하여 각각 암호화 속성 및 FEK를 생성한다. 일 실시예에서, 개인 키들을 이용하는 암호 해독 엔진(631)은 비대칭 크립토그래피 알고리즘들을 수행한다.
일 실시예에서, 암호화 속성 로직(601)은 암호화 속성의 정보에 기초하여, 부분적으로 암호화된 파일 중 어느 세그먼트들을 암호 해독할 것인지를 판정한다. 일 실시예에서, 파일 분할 로직(603)은 부분적으로 암호화된 파일을 복수의 세그먼트로 분할한다. 각각의 세그먼트는 FEK를 이용하는 암호 해독 엔진(630)의 블록 크기들 중 하나에 대응하는 M-비트 길이이다. FEK를 이용하는 암호 해독 엔진(630)은 파일 분할 로직(603)과 함께 암호화 속성 로직(601)에 의해 식별되는 세그먼트들을 암호 해독한다. 일 실시예에서, FEK를 이용하는 암호 해독 엔진(630)은 대칭 크립토그래피 알고리즘들을 구현하는 M-비트 암호 해독 엔진이다.
일 실시예에서, 제어기(600)는 암호 해독된 파일, 암호화 속성, 및 파일에 대한 FEK를 저장 드라이브(620) 상에 저장한다. 일 실시예에서, 제어기(600)는 암호 해독된 파일, 암호화 속성, FEK, 또는 그 조합들을, 파일 시스템에 의해 서로 연관되어 있는, (파일 시스템의) 상이한 위치들에 저장한다.
일 실시예에서, FEK 키 생성기(606)는, FEK를 이용하는 암호화 엔진(610) 및 FEK를 이용하는 암호 해독 엔진(630)의 상이한 회차들(rounds)에 대하여 초기 FEK에 기초하여 연속하는 키들을 생성한다.
본 명세서에서는 프로세싱 로직으로 설명되었으나, 각각의 로직 유닛, 각각의 암호화 엔진, 및 각각의 암호 해독 엔진은 독립적으로, 개별적으로 또는 상이한 결합들로 외부에 구현될 수 있다. 본 발명의 실시예들은 각종의 전자 디바이스들 및 로직 회로들로 구현될 수 있다. 또한, 본 발명의 실시예들을 포함하는 디바이스들 또는 회로들은 다양한 컴퓨터 시스템들 내에 포함될 수 있다. 본 발명의 실시예들은 또한 그외의 컴퓨터 시스템 토폴로지들 및 아키텍처들에 포함될 수 있다.
도 7은 본 발명의 일 실시예가 이용될 수 있는 컴퓨터 시스템을 도시한다. 프로세서(705)는 레벨 1(L1) 캐시 메모리(706), 레벨 2(L2) 캐시 메모리(710), 및 주 메모리(715)로부터의 데이터를 액세스한다. 본 발명의 그외의 실시예들에서, 캐시 메모리(706)는, L1 캐시와 함께 컴퓨터 시스템 메모리 계층 내의 L2 캐시와 같은 그외의 메모리로 이루어지는 다중 레벨 캐시 메모리일 수 있으며, 캐시 메모리(710)는 L3 캐시 또는 그 이상의 다중 레벨 캐시와 같은 후속하는 하위 레벨 캐시 메모리이다. 또한, 그외의 실시예들에서, 컴퓨터 시스템은 하나 보다 많은 프로세서 코어에 대해 공유된 캐시로서 캐시 메모리(710)를 가질 수 있다.
프로세서(705)는 임의의 수의 프로세싱 코어들을 가질 수 있다. 그러나, 본 발명의 그외의 실시예들은 시스템 내의 그외의 디바이스들 내에 구현될 수 있거나, 하드웨어, 소프트웨어, 또는 그것들의 소정의 조합으로 시스템 전체에 걸쳐서 분산될 수 있다.
일 실시예에서, 주 메모리(715)는 운영 체제(750)를 로드하여 API들(application programming interfaces)을 통해 파일 시스템을 제공한다. 파일 시스템은 솔리드 스테이트 디스크(725), HDD(720), 또는 그 모두와 통신하기 위해 디바이스 드라이버를 통해 접속한다. 일 실시예에서, 주 메모리(715)는 API들을 통해 운영 체제(750) 및 파일 시스템과 인터페이스하는 어플리케이션 프로그램을 로드한다. 파일 시스템은 솔리드 스테이트 디스크(725) 또는 HDD(720)과 통신하기 위해 디바이스 드라이버를 통해 접속하여, 파일들을 관리한다. 일 실시예에서, 파일 시스템은 (1)파일들을 저장, 참조, 공유, 및 안전하게 하고, (2)파일 데이터를 액세스하고, (3)파일 무결성을 유지하는 방법들을 포함한다. 그럼에도 불구하고, 파일 시스템 및 연관된 운영 체제 간에 명확한 구분이 항상 존재하는 것은 아니며, 운영 체제 내에 포함된 그러한 파일 시스템들과 관련하여 특히 그러하다.
주 메모리(715)는 DRAM(dynamic random access memory), HDD(hard disk drive)(720), NVRAM 기술에 기초한 솔리드 스테이트 디스크(725), 또는 다양한 저장 디바이스들 및 기술들을 포함하는 네트워크 인터페이스(730)를 통하거나 무선 인터페이스(740)를 통해 컴퓨터 시스템으로부터 원거리에 위치된 메모리 소스와 같은 다양한 메모리 소스들로 구현될 수 있다. 캐시 메모리는, 프로세서의 로컬 버스(707) 상에서와 같이, 프로세서 내부 또는 프로세서에 인접하여 위치될 수 있다. 또한, 캐시 메모리는 6T(six-transistor) 셀 또는 대략적으로 동일하거나 더 빠른 액세스 속도의 그외의 메모리 셀과 같은, 비교적 빠른 메모리 셀들을 포함할 수 있다.
그러나, 본 발명의 그외의 실시예들은 도 7의 시스템 내의 그외의 회로들, 로직 유닛들, 또는 디바이스들에 존재할 수 있다. 또한, 본 발명의 그외의 실시예들에서, 도 7에 도시된 여러 회로들, 로직 유닛들, 또는 디바이스들을 통해 분산될 수 있다.
전술한 설명을 읽고 나서, 본 기술분야의 당업자에게는 본 발명의 다수의 변형들 및 변경들이 의심할 바 없이 명백할 것이나, 예로써 도시되고 설명된 임의의 특정 실시예는 한정하도록 의도되는 것은 아니다. 따라서, 다양한 실시예들의 상세한 설명에 대한 참조들은, 본 발명에 필수적인 것으로서 간주되는 그러한 특징들만을 인용하는 특허청구범위의 범주를 한정하도록 의도되지 않는다.

Claims (10)

  1. 암호화하는 방법으로서,
    제1 데이터 중의 하나 이상의 인접하지 않은(non-contiguous) 세그먼트를, 대칭 암호화 키를 이용하여 암호화하는 단계 - 상기 제1 데이터는 적어도 하나의 암호화 속성과 연관되고, 복수의 세그먼트를 가지며, 상기 암호화 속성은, 암호화할 상기 제1 데이터 중의 상기 하나 이상의 인접하지 않은 세그먼트를 식별하는 정보를 포함함 - ;
    공개 키를 이용하여 상기 암호화 속성을 암호화하여 암호화된 암호화 속성을 생성하는 단계;
    상기 대칭 암호화 키를, 상기 공개 키를 이용하여 암호화하는 단계; 및
    부분적으로 암호화된 데이터 및 상기 암호화된 암호화 속성을 포함하는 제2 데이터의 적어도 일부분을 저장하는 단계
    를 포함하는, 암호화 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 인접하지 않은 세그먼트는 상기 제1 데이터 중의 매 N 세그먼트들 중에서 적어도 하나의 세그먼트를 포함하며, N은 양의 정수인 암호화 방법.
  3. 제1항에 있어서,
    상기 암호화 속성은 사용자 정의형 속성이거나, 상기 제1 데이터의 파일 유형에 기초하는 암호화 방법.
  4. 암호 해독하는 방법으로서,
    부분적으로 암호화된 데이터 및 암호화 속성의 암호화된 버전을 포함하는 제1 데이터를 액세스하는 단계 - 상기 부분적으로 암호화된 데이터는 복수의 세그먼트를 포함함 - ;
    개인 키를 이용하여 상기 암호화된 암호화 속성을 암호 해독하여 상기 암호화 속성을 복원(retrieve)하는 단계 - 상기 암호화 속성은, 암호화된 상기 부분적으로 암호화된 데이터 중의 하나 이상의 인접하지 않은 세그먼트를 식별하는 정보를 포함함 - ;
    대칭 암호화 키를 이용하여 상기 부분적으로 암호화된 데이터 중의 상기 하나 이상의 인접하지 않은 세그먼트를 암호 해독하는 단계; 및
    상기 개인 키를 이용하여 상기 대칭 암호화 키의 암호화된 버전을 암호 해독하는 단계를 포함하는, 암호 해독 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 인접하지 않은 세그먼트는 상기 부분적으로 암호화된 데이터 중의 매 N 세그먼트들 중에서 적어도 하나의 세그먼트를 포함하며, N은 양의 정수인 암호 해독 방법.
  6. 암호화 시스템으로서,
    적어도 하나의 암호화 속성과 연관된 제1 데이터를 암호화하라는 요청을 수신하는 제1 수단 - 상기 제1 데이터는 복수의 세그먼트를 포함하고, 상기 암호화 속성은, 암호화할 상기 제1 데이터 중의 하나 이상의 인접하지 않은 세그먼트를 식별하는 정보를 포함함 - ;
    부분적으로 암호화된 데이터를 생성하기 위해, 대칭 암호화 키를 이용하여, 상기 제1 데이터 중의 상기 하나 이상의 인접하지 않은 세그먼트를 암호화하는 제2 수단;
    공개 키를 이용하여, 상기 암호화 속성을 암호화하여 암호화된 암호화 속성으로 생성하는 제3 수단; 및
    제2 데이터의 적어도 일부를 저장하는 제4 수단 - 상기 제2 데이터는 상기 암호화된 암호화 속성 및 상기 부분적으로 암호화된 데이터를 포함함 -
    을 포함하고,
    상기 제3 수단은 상기 공개 키를 이용하여 상기 대칭 암호화 키를 암호화하도록 동작가능하며, 상기 제2 데이터는 상기 대칭 암호화 키의 암호화된 버전을 더 포함하는, 암호화 시스템.
  7. 제6항에 있어서,
    상기 제1 수단은 상기 제1 데이터를 복수의 인접하지 않은 세그먼트로 분할하도록 동작가능하며, 상기 제1 데이터 중의 각 세그먼트는 M-비트 길이이며, 각각의 세그먼트는 상기 제2 수단에 의해 처리될 수 있는, 암호화 시스템.
  8. 암호 해독하는 시스템으로서,
    부분적으로 암호화된 데이터 및 암호화 속성의 암호화된 버전을 포함하는 제1 데이터를 액세스하는 제1 수단 - 상기 부분적으로 암호화된 데이터는 복수의 세그먼트를 포함함 - ;
    상기 암호화된 암호화 속성을 개인 키를 이용하여 암호 해독하여 상기 암호화 속성을 복원하는 제2 수단 - 상기 암호화 속성은, 암호화된 상기 부분적으로 암호화된 데이터 중의 하나 이상의 인접하지 않은 세그먼트를 식별하는 정보를 포함함 - ; 및
    대칭 암호화 키를 이용하여 상기 부분적으로 암호화된 데이터 중의 상기 하나 이상의 인접하지 않은 세그먼트를 암호 해독하는 제3 수단을 포함하고,
    상기 제2 수단은, 상기 개인 키를 이용하여, 상기 대칭 암호화 키의 암호화된 버전을 암호 해독하도록 동작 가능하고, 상기 제1 데이터는 상기 대칭 암호화 키의 상기 암호화된 버전을 더 포함하는,
    암호 해독 시스템.
  9. 명령어들을 포함하는 컴퓨터 판독가능한 저장 매체로서, 상기 명령어들은, 컴퓨터에 의해 액세스된 경우, 상기 컴퓨터로 하여금,
    대칭 암호화 키를 이용하여 제1 데이터 중의 하나 이상의 인접하지 않은 세그먼트를 암호화하는 단계 - 상기 제1 데이터는 적어도 하나의 암호화 속성과 연관되고, 복수의 세그먼트를 가지며, 상기 암호화 속성은, 암호화할 상기 제1 데이터 중의 상기 하나 이상의 인접하지 않은 세그먼트를 식별하는 정보를 포함함 - ;
    공개 키를 이용하여 상기 암호화 속성을 암호화하여 암호화된 암호화 속성을 생성하는 단계;
    부분적으로 암호화된 데이터 및 암호화된 암호화 속성을 포함하는 제2 데이터의 적어도 일부를 저장하는 단계; 및
    상기 공개 키를 이용하여 상기 대칭 암호화 키를 암호화하는 단계
    를 포함하는 방법을 수행하게 하고,
    상기 제2 데이터는 상기 대칭 암호화 키의 암호화된 버전을 더 포함하는, 컴퓨터 판독가능한 저장 매체.
  10. 명령어들을 포함하는 컴퓨터 판독가능한 저장 매체로서, 상기 명령어들은, 컴퓨터에 의해 액세스된 경우, 상기 컴퓨터로 하여금,
    부분적으로 암호화된 데이터 및 암호화 속성의 암호화된 버전을 포함하는 제1 데이터를 액세스하는 단계 - 상기 부분적으로 암호화된 데이터는 복수의 세그먼트를 포함함 - ;
    개인 키를 이용하여 상기 암호화된 암호화 속성을 암호 해독하여 암호화 속성을 복원하는 단계 - 상기 암호화 속성은 암호화된 상기 부분적으로 암호화된 데이터 중의 하나 이상의 인접하지 않은 세그먼트를 식별하는 정보를 포함함 - ;
    대칭 암호화 키를 이용하여 상기 부분적으로 암호화된 데이터 중의 상기 하나 이상의 인접하지 않은 세그먼트를 암호 해독하는 단계; 및
    상기 개인 키를 이용하여 상기 대칭 암호화 키의 암호화된 버전을 암호 해독하는 단계를 포함하는 방법을 수행하게 하고,
    상기 제1 데이터는 상기 대칭 암화화 키의 상기 암호화된 버전을 더 포함하는, 컴퓨터 판독가능한 저장 매체.
KR1020120042447A 2008-09-04 2012-04-24 암호화 속성을 이용하는 가속 크립토그래피 KR101405720B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/204,658 2008-09-04
US12/204,658 US8880879B2 (en) 2008-09-04 2008-09-04 Accelerated cryptography with an encryption attribute

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020090083538A Division KR20100028516A (ko) 2008-09-04 2009-09-04 암호화 속성을 이용하는 가속 크립토그래피

Publications (2)

Publication Number Publication Date
KR20120065972A true KR20120065972A (ko) 2012-06-21
KR101405720B1 KR101405720B1 (ko) 2014-06-10

Family

ID=41361282

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020090083538A KR20100028516A (ko) 2008-09-04 2009-09-04 암호화 속성을 이용하는 가속 크립토그래피
KR1020120042447A KR101405720B1 (ko) 2008-09-04 2012-04-24 암호화 속성을 이용하는 가속 크립토그래피

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020090083538A KR20100028516A (ko) 2008-09-04 2009-09-04 암호화 속성을 이용하는 가속 크립토그래피

Country Status (4)

Country Link
US (2) US8880879B2 (ko)
EP (2) EP2166479A1 (ko)
JP (1) JP5417092B2 (ko)
KR (2) KR20100028516A (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880879B2 (en) * 2008-09-04 2014-11-04 Intel Corporation Accelerated cryptography with an encryption attribute
US9240883B2 (en) * 2008-09-04 2016-01-19 Intel Corporation Multi-key cryptography for encrypting file system acceleration
US8634563B2 (en) * 2010-12-17 2014-01-21 Microsoft Corporation Attribute based encryption using lattices
US9577824B2 (en) * 2011-09-23 2017-02-21 CSC Holdings, LLC Delivering a content item from a server to a device
US8917868B2 (en) * 2012-08-22 2014-12-23 Vixs Systems, Inc. Adaptable encryption device and methods for use therewith
KR101389981B1 (ko) * 2012-09-03 2014-04-30 경희대학교 산학협력단 퍼블릭 클라우드 스토리지 서비스를 위한 데이터 위임 및 엑세스 방법
JP5511925B2 (ja) * 2012-10-06 2014-06-04 三菱電機株式会社 アクセス権付き暗号化装置、アクセス権付き暗号システム、アクセス権付き暗号化方法およびアクセス権付き暗号化プログラム
US9171145B2 (en) * 2013-05-24 2015-10-27 Symantec Corporation Protecting cryptographic secrets using file system attributes
JP6340916B2 (ja) * 2014-05-22 2018-06-13 凸版印刷株式会社 データ出力方法、データ読出方法、記憶媒体装置及びデータ読出装置
US9590958B1 (en) 2016-04-14 2017-03-07 Wickr Inc. Secure file transfer
CN109417475B (zh) * 2016-05-30 2022-06-28 意大利电信股份公司 无线电信网络中的隐私保护
CN106250783B (zh) * 2016-08-31 2019-10-18 天津南大通用数据技术股份有限公司 一种数据库数据加密、解密方法及装置
JP6802572B2 (ja) * 2016-12-26 2020-12-16 国立大学法人大阪大学 データ解析方法およびデータ解析システム
CN111898135A (zh) * 2020-02-12 2020-11-06 北京京东尚科信息技术有限公司 数据处理方法、数据处理装置、计算机设备和介质
CN114844632A (zh) * 2022-04-26 2022-08-02 维沃移动通信有限公司 数据传输方法、装置和电子设备

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63287882A (ja) 1987-05-20 1988-11-24 株式会社日立製作所 暗号装置
JP3143108B2 (ja) * 1990-03-13 2001-03-07 株式会社日立製作所 ファイル暗号化方法およびファイル暗号システム
US6002772A (en) * 1995-09-29 1999-12-14 Mitsubishi Corporation Data management system
US6405315B1 (en) * 1997-09-11 2002-06-11 International Business Machines Corporation Decentralized remotely encrypted file system
US6249866B1 (en) * 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
JP3604264B2 (ja) * 1997-10-06 2004-12-22 株式会社東芝 発信者用端末装置及びネットワークシステム並びに発信情報監視方法
JP2000132543A (ja) 1998-10-27 2000-05-12 Ntt Data Corp 文書処理システム、方法及び記録媒体
US6971022B1 (en) * 1999-06-15 2005-11-29 Matsushita Electric Industrial Co., Ltd. Cryptographic apparatus for performing cryptography on a specified area of content data
WO2001041357A1 (en) 1999-12-03 2001-06-07 Cipheractive Communication Security Ltd. Encryption of partitioned data blocks utilizing public key methods and random numbers
US7373506B2 (en) 2000-01-21 2008-05-13 Sony Corporation Data authentication system
CA2416092C (en) * 2000-07-14 2011-01-04 Irdeto Access B.V. Secure packet-based data broadcasting architecture
US7191252B2 (en) * 2000-11-13 2007-03-13 Digital Doors, Inc. Data security system and method adjunct to e-mail, browser or telecom program
US6941456B2 (en) * 2001-05-02 2005-09-06 Sun Microsystems, Inc. Method, system, and program for encrypting files in a computer system
EP1288941A3 (de) 2001-08-09 2003-03-12 Rainer Brang Verfahren zum Speichern einer Anzahl von Datensätzen auf Serien von informationsgleichen Datenträgern sowie Datenträger
US7260555B2 (en) * 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US20030115471A1 (en) 2001-12-19 2003-06-19 Skeba Kirk W. Method and apparatus for building operational radio firmware using incrementally certified modules
US7155012B2 (en) * 2002-01-02 2006-12-26 Sony Corporation Slice mask and moat pattern partial encryption
US7233669B2 (en) * 2002-01-02 2007-06-19 Sony Corporation Selective encryption to enable multiple decryption keys
US6931597B1 (en) * 2002-04-17 2005-08-16 Pss Systems, Inc. Indications of secured digital assets
US6678828B1 (en) * 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
CA2496664C (en) * 2002-08-23 2015-02-17 Exit-Cube, Inc. Encrypting operating system
US7320069B1 (en) * 2003-02-14 2008-01-15 Novell, Inc. Selective encryption of media data
JP4687465B2 (ja) 2004-01-22 2011-05-25 日本電気株式会社 ミックスネットシステム
JP4720136B2 (ja) 2004-09-24 2011-07-13 富士ゼロックス株式会社 暗号化装置、暗号化方法およびプログラム
KR100753932B1 (ko) 2004-10-12 2007-08-31 한국정보통신대학교 산학협력단 컨텐츠 암호화 방법, 이를 이용한 네트워크를 통한 컨텐츠제공 시스템 및 그 방법
US7716743B2 (en) * 2005-01-14 2010-05-11 Microsoft Corporation Privacy friendly malware quarantines
US20070006253A1 (en) * 2005-06-29 2007-01-04 Pinder Howard G Partial pre-encryption with network-based packet sorting
US8194859B2 (en) 2005-09-01 2012-06-05 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
US20070083467A1 (en) * 2005-10-10 2007-04-12 Apple Computer, Inc. Partial encryption techniques for media data
US7606769B2 (en) * 2005-10-12 2009-10-20 Kabushiki Kaisha Toshiba System and method for embedding user authentication information in encrypted data
US7428306B2 (en) * 2006-04-18 2008-09-23 International Business Machines Corporation Encryption apparatus and method for providing an encrypted file system
JP2008067102A (ja) 2006-09-07 2008-03-21 Victor Co Of Japan Ltd コンテンツ配信サーバ
US20090052670A1 (en) * 2007-08-21 2009-02-26 Samsung Electronics Co., Ltd. Method and apparatus for storing digital content in storage device
US8880879B2 (en) 2008-09-04 2014-11-04 Intel Corporation Accelerated cryptography with an encryption attribute
US9098519B2 (en) * 2008-09-16 2015-08-04 File System Labs Llc Methods and apparatus for distributed data storage
US8542823B1 (en) * 2009-06-18 2013-09-24 Amazon Technologies, Inc. Partial file encryption
KR20110024788A (ko) 2009-09-03 2011-03-09 엘지전자 주식회사 암호화된 소프트웨어 바이너리 (SoftWare Binary) 를 전송하는 컨텐츠 프로바이더, 상기 암호화된 소프트웨어 바이너리를 처리하는 네트워크 기반 디지털 방송 수신기, 그리고 그 제어 방법
US8856549B2 (en) * 2011-11-28 2014-10-07 Cleversafe, Inc. Deleting encoded data slices in a dispersed storage network
US9304857B2 (en) * 2011-12-12 2016-04-05 Cleversafe, Inc. Retrieving data from a distributed storage network
US10162828B2 (en) * 2012-11-16 2018-12-25 Red Hat, Inc. Striping files across nodes of a distributed file system
US20150363118A1 (en) * 2014-06-17 2015-12-17 Netapp, Inc. Techniques for harmonic-resistant file striping

Also Published As

Publication number Publication date
EP2166479A1 (en) 2010-03-24
US8880879B2 (en) 2014-11-04
KR20100028516A (ko) 2010-03-12
JP5417092B2 (ja) 2014-02-12
EP2472426B1 (en) 2018-02-21
JP2010063105A (ja) 2010-03-18
EP2472426A1 (en) 2012-07-04
US20100054477A1 (en) 2010-03-04
US20150019881A1 (en) 2015-01-15
KR101405720B1 (ko) 2014-06-10

Similar Documents

Publication Publication Date Title
US10447476B2 (en) Multi-key graphic cryptography for encrypting file system acceleration
KR101405720B1 (ko) 암호화 속성을 이용하는 가속 크립토그래피
US7428306B2 (en) Encryption apparatus and method for providing an encrypted file system
US9401898B2 (en) System and method for wireless data protection
US8064604B2 (en) Method and apparatus for facilitating role-based cryptographic key management for a database
US7792300B1 (en) Method and apparatus for re-encrypting data in a transaction-based secure storage system
US7095859B2 (en) Managing private keys in a free seating environment
WO2012095973A1 (ja) データ処理装置及びデータ保管装置
US20100095118A1 (en) Cryptographic key management system facilitating secure access of data portions to corresponding groups of users
US9244864B2 (en) Information providing system, information processing apparatus, computer readable medium, and information providing method for providing encrypted information
US8200964B2 (en) Method and apparatus for accessing an encrypted file system using non-local keys
CN107077469A (zh) 服务器装置、检索系统、终端装置、检索方法、服务器程序以及终端程序
US10733305B2 (en) System and method for implementing cryptography in a storage system
US20090013183A1 (en) Confidential Information Processing Method, Confidential Information Processor, and Content Data Playback System
JP2007108833A (ja) 複数パスワード記憶装置及びパスワード管理方法
JPH10271104A (ja) 暗号化方法及び復号化方法
US11921877B2 (en) Efficient random tokenization in the cloud
KR20020025343A (ko) 기본키와 일회용키를 이용한 파일 암호 와 복호 방법 및그 장치
US20130036474A1 (en) Method and Apparatus for Secure Data Representation Allowing Efficient Collection, Search and Retrieval
KR20230070772A (ko) 블록체인 기반 클라우드 스토리지 시스템 및 상기 시스템에서의 접근 권한 제어 방법
Raj et al. Literature Survey on Obliterate of Secure Data using Universal Validation

Legal Events

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

Payment date: 20170601

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee