KR20180130249A - 클라우드 저장 기반 암호화 시스템 및 방법 - Google Patents

클라우드 저장 기반 암호화 시스템 및 방법 Download PDF

Info

Publication number
KR20180130249A
KR20180130249A KR1020170066114A KR20170066114A KR20180130249A KR 20180130249 A KR20180130249 A KR 20180130249A KR 1020170066114 A KR1020170066114 A KR 1020170066114A KR 20170066114 A KR20170066114 A KR 20170066114A KR 20180130249 A KR20180130249 A KR 20180130249A
Authority
KR
South Korea
Prior art keywords
file
keyword
hashed
file name
cloud storage
Prior art date
Application number
KR1020170066114A
Other languages
English (en)
Other versions
KR101979267B1 (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 성균관대학교산학협력단
Priority to KR1020170066114A priority Critical patent/KR101979267B1/ko
Publication of KR20180130249A publication Critical patent/KR20180130249A/ko
Application granted granted Critical
Publication of KR101979267B1 publication Critical patent/KR101979267B1/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/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

클라우드 저장 장치에 파일을 암호화하여 저장하는 클라우드 저장 기반 암호화 시스템은, 파일의 암호화된 파일 및 해쉬된 파일 이름을 생성하고, 사용자에 의해 설정된 키워드의 해쉬된 키워드를 생성하는 암호화 장치; 및 암호화된 파일을 저장하고, 해쉬된 키워드를 이용하여 해쉬 테이블(Hash Table)을 생성하고, 해쉬된 파일 이름을 이용하여 키워드 테이블(Keyword Table)을 생성하는 클라우드 저장 장치; 를 포함하고, 해쉬 테이블 또는 키워드 테이블을 이용하여, 키워드 테이블의 갱신, 저장된 파일의 로드(load), 저장된 파일의 검색, 및 저장된 파일의 삭제 중 적어도 하나를 수행할 수 있다.
이와 같은 클라우드 저장 기반 암호화 시스템 및 방법에 의하면, 안전한 클라우드 저장을 위한 필수 요소인 안전한 삭제, 암호화 파일 시스템, 검색 가능 암호화를 모두 지원할 수 있다. 또한, 클라우드 저장 장치는 암호 데이터 및 해쉬 데이터만을 저장하고, 이것들을 생성하기 위한 마스터 키, 솔트(Salt), 또는 비밀 키는 클라우드 저장 장치에 공개되지 않을 수 있다. 또한, 솔트나 비밀 키는 키워드나 파일 이름에 따라 각각 변하는 값을 갖기 때문에 보안상 안전한 체계를 구성한다. 따라서, 파일 저장, 키워드 갱신, 파일 로드, 검색, 또는 삭제 등의 작업을 보안상 안전하게 수행할 수 있다. 또한, 마스터 키를 제외한 모든 데이터는 클라우드 저장 장치에 저장되는 것으로, 사용자는 마스터 키만 기억하면 어떤 사용자 단말을 이용하더라도 클라우드 저장 장치에 저장된 파일에 접근이 가능하다. 즉, 클라우드 저장 장치의 파일에 용이하게 접근할 수 있다.

Description

클라우드 저장 기반 암호화 시스템 및 방법 { ENCRYPTION SYSTEMS BASED ON CLOUD STORAGE AND METHOD THEREOF }
본 발명은 클라우드 저장 장치에 파일을 암호화하여 저장하는 클라우드 저장 기반 암호화 시스템 및 방법에 관한 것이다.
최근 들어서 사회 다방면에 걸쳐 정보화, 전산화가 진행되어 자신의 데이터를 안전하게 지키고자 하는 수요가 증대되었다. 데이터 보안은 이러한 수요에 부응하도록 발전되어 왔으며 주로 연구되고 있는 분야는 현재 저장 되어 있는 파일에 허가되지 않은 자가 접근 하는 것이나 이미 삭제된 파일을 복구 하는 행위를 차단하는 것이라고 할 수 있다.
한편으로 인터넷 환경의 발달에 따라 원격지에 데이터를 저장 할 수 있는 클라우드 저장 서비스가 등장하였는데, 원격 클라우드 저장 장치에 저장되어 있는 파일들은 클라우드 관리자 등에 의해 조작되기 쉽기 때문에 데이터 보안을 유지하기가 어렵다. 따라서 사용자들이 신뢰할 수 있는 서비스가 되기 위해서는 저장된 데이터에 대한 보안이 가장 중요한 요구 사항이라 할 수 있을 것이다.
안전한 클라우드 저장 장치에 필요한 요소는 안전한 삭제(Secure deletion), 암호화 파일 시스템 (Encrypted File System), 및 검색 가능 암호화(Searchable encryption)로 압축할 수 있다. 여기서, 안전한 삭제란 이미 삭제된 데이터를 다시 복구하지 못하도록 하는 일련의 작업을 의미하며, 암호화 파일 시스템은 파일의 전부 혹은 일부를 암호화한 채로 저장하는 시스템을 의미하고, 검색 가능 암호화는 별도의 정보를 추가하여 암호문에 대해 평문에 기반한 검색을 가능토록 하는 것을 말한다.
안전한 삭제가 필요한 이유는 사용자가 파일을 삭제한 뒤에 클라우드 저장 장치에 접근 가능한 공격자가 삭제된 파일을 복원할 수 없게 해야 하기 때문이다. 또한 암호화 파일 시스템은 클라우드 관리자 등의 완전히 신뢰할 수 없는 제3자가 저장된 파일에 접근할 수 없게 하기 위해서 필수적이다. 그러나 암호화 파일 시스템을 적용할 경우 사용자가 저장한 파일을 찾기 어려워지므로 편의성을 위해 검색 가능 암호화 역시 필요하다.
그러나 현재 운영되고 있는 클라우드 서비스들은 상술한 요소들 중 일부만 만족시키는데 그치고 있다. 그 이유는 위 요소들이 사용자의 위치나 사용 단말을 제한시켜 가용성을 저해하기 때문이다. 따라서, 가용성을 제한하지 않으면서도 안전한 삭제, 암호화 파일 시스템, 및 검색 가능 암호화를 모두 만족시킬 수 있는 새로운 암호화 시스템에 대한 기술개발이 필요한 실정이다.
관련 선행기술로는 대한민국 공개특허공보 제10-2017-0001486호(발명의 명칭: 보안 클라우드 서비스, 공개일자: 2017. 01. 04)가 있다.
본 발명은 안전한 삭제, 암호화 파일 시스템, 및 검색 가능 암호화를 만족하는 클라우드 저장 기반 암호화 시스템 및 방법을 제공하고자 한다.
상술한 과제를 해결하기 위하여, 다음과 같은 클라우드 저장 기반 암호화 시스템 및 방법이 제공된다.
클라우드 저장 장치에 파일을 암호화하여 저장하는 클라우드 저장 기반 암호화 시스템은, 파일의 암호화된 파일 및 해쉬된 파일 이름을 생성하고, 사용자에 의해 설정된 키워드의 해쉬된 키워드를 생성하는 암호화 장치; 및 암호화된 파일을 저장하고, 해쉬된 키워드를 이용하여 해쉬 테이블(Hash Table)을 생성하고, 해쉬된 파일 이름을 이용하여 키워드 테이블(Keyword Table)을 생성하는 클라우드 저장 장치; 를 포함하고, 해쉬 테이블 또는 키워드 테이블을 이용하여, 키워드 테이블의 갱신, 저장된 파일의 로드(load), 저장된 파일의 검색, 및 저장된 파일의 삭제 중 적어도 하나를 수행할 수 있다.
해쉬 테이블은, 해쉬된 키워드에 대응하는 암호화된 파일 이름의 리스트로 구성될 수 있다.
키워드 테이블은, 해쉬된 파일 이름에 대응하는 암호화된 키워드의 리스트로 구성될 수 있다.
암호화 장치는, 파일의 암호화된 파일, 해쉬된 파일, 및 해쉬된 파일 이름을 생성하고, 클라우드 저장 장치는, 해쉬된 파일 이름에 대응하여 암호화된 파일 및 해쉬된 파일을 저장할 수 있다.
키워드 테이블의 갱신 시, 암호화 장치는, 갱신 대상 키워드의 해쉬된 키워드인 갱신 해쉬 키워드 및 갱신 해쉬 키워드에 대응하는 암호화된 파일 이름인 갱신 암호 파일 이름을 생성하고, 클라우드 저장 장치는, 해쉬 테이블에서 갱신 암호 파일 이름이 존재하는지 여부를 검색하고, 갱신 암호 파일 이름을 삭제하거나 또는 추가하는 해쉬 테이블의 갱신을 수행할 수 있다.
암호화 장치는, 갱신 암호 파일 이름에 대응하는 해쉬된 파일 이름인 갱신 해쉬 파일 이름 및 갱신 해쉬 파일 이름에 대응하는 암호화된 키워드인 갱신 암호 키워드를 생성하고, 클라우드 저장 장치는, 키워드 테이블에서 갱신 암호 키워드가 존재하는지 여부를 검색하고, 갱신 암호 파일 이름을 삭제하거나 또는 추가하는 키워드 테이블의 갱신을 수행할 수 있다.
저장된 파일의 로드 시, 암호화 장치는, 로드 대상 파일의 해쉬된 파일 이름인 로드 해쉬 파일 이름을 생성하고, 클라우드 저장 장치는, 로드 해쉬 파일 이름에 대응하는 암호화된 파일인 로드 암호 파일 및 해쉬된 파일인 로드 해쉬 파일을 검색하고, 키워드 테이블에서 로드 해쉬 파일 이름에 대응하는 암호화된 키워드인 로드 암호 키워드를 검색하고, 검색된 로드 암호 파일, 로드 해쉬 파일, 및 로드 암호 키워드를 암호화된 장치에 전송할 수 있다.
저장된 파일의 검색 시, 암호화 장치는, 검색 대상 파일의 해쉬된 키워드인 검색 해쉬 키워드를 생성하고, 클라우드 저장 장치는, 해쉬 테이블에서 검색 해쉬 키워드에 대응하는 암호화된 파일 이름인 검색 암호 파일 이름을 검색할 수 있다.
저장된 파일의 삭제 시, 암호화 장치는, 삭제 대상 파일의 해쉬된 파일 이름인 삭제 해쉬 파일 이름을 생성하고, 클라우드 저장 장치는, 삭제 해쉬 파일 이름에 대응하는 암호화된 파일인 삭제 암호 파일 및 해쉬된 파일인 삭제 해쉬 파일을 검색하고, 키워드 테이블에서 삭제 해쉬 파일 이름에 대응하는 암호화된 키워드인 삭제 암호 키워드를 검색하고, 검색된 삭제 암호 파일, 삭제 해쉬 파일, 및 삭제 암호 키워드를 삭제할 수 있다.
암호화 장치는, 삭제 암호 키워드에 대응하는 해쉬된 키워드인 삭제 해쉬 키워드를 생성하고, 클라우드 저장 장치는, 삭제 해쉬 키워드에 대응하는 암호화된 파일 이름인 삭제 암호 파일 이름을 검색하고, 삭제 암호 파일 이름을 삭제할 수 있다.
암호화 장치는, 솔트(Salt)를 이용하여 해쉬된 파일 이름 및 해쉬된 키워드을 생성할 수 있다.
클라우드 저장 장치에 파일을 암호화하여 저장하는 클라우드 저장 기반 암호화 방법은, 파일의 암호화된 파일 및 해쉬된 파일 이름을 생성하고; 사용자에 의해 설정된 키워드의 해쉬된 키워드를 생성하고; 암호화된 파일을 저장하고; 해쉬된 키워드를 이용하여 해쉬 테이블(Hash Table)을 생성하고; 해쉬된 파일 이름을 이용하여 키워드 테이블(Keyword Table)을 생성하고; 및 해쉬 테이블 또는 키워드 테이블을 이용하여, 키워드 테이블의 갱신, 저장된 파일의 로드(load), 저장된 파일의 검색, 및 저장된 파일의 삭제 중 적어도 하나를 수행하는; 것을 포함할 수 있다.
이와 같은 클라우드 저장 기반 암호화 시스템 및 방법에 의하면, 안전한 클라우드 저장을 위한 필수 요소인 안전한 삭제, 암호화 파일 시스템, 검색 가능 암호화를 모두 지원할 수 있다.
또한, 클라우드 저장 장치는 암호 데이터 및 해쉬 데이터만을 저장하고, 이것들을 생성하기 위한 마스터 키, 솔트(Salt), 또는 비밀 키는 클라우드 저장 장치에 공개되지 않을 수 있다. 또한, 솔트나 비밀 키는 키워드나 파일 이름에 따라 각각 변하는 값을 갖기 때문에 보안상 안전한 체계를 구성한다. 따라서, 파일 저장, 키워드 갱신, 파일 로드, 검색, 또는 삭제 등의 작업을 보안상 안전하게 수행할 수 있다.
또한, 마스터 키를 제외한 모든 데이터는 클라우드 저장 장치에 저장되는 것으로, 사용자는 마스터 키만 기억하면 어떤 사용자 단말을 이용하더라도 클라우드 저장 장치에 저장된 파일에 접근이 가능하다. 즉, 클라우드 저장 장치의 파일에 용이하게 접근할 수 있다.
도 1은 클라우드 저장 기반 암호화 시스템의 일 실시예에 따른 블록도이다.
도 2는 해쉬 테이블의 일 예를 나타내는 도면이다.
도 3은 암호화 장치에 의한 암호화 및 해쉬를 설명하기 위한 도면이다.
도 4는 클라우드 저장 기반 암호화 시스템의 성능 분석을 설명하기 위한 도면이다.
도 5는 파일 저장을 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 6은 키워드 테이블의 갱신을 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 7은 파일 로드를 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 8은 파일 검색를 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 9는 파일 삭제를 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예에 불과할 뿐이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
이하에서는 첨부된 도면을 참조하여 클라우드 저장 기반 암호화 시스템 및 방법을 후술된 실시예들에 따라 구체적으로 설명하도록 한다. 도면에서 동일한 부호는 동일한 구성 요소를 나타내는 것으로 한다.
도 1은 클라우드 저장 기반 암호화 시스템의 일 실시예에 따른 블록도이다.
도 1을 참조하면, 클라우드 저장 기반 암호화 시스템(1)은 클라우드 저장 장치에 파일을 암호화하여 저장하는 시스템이다.
클라우드 저장 기반 암호화 시스템(1)은 비밀 키를 이용하여 암호화된 파일을 생성하여 저장한다.
클라우드 저장 기반 암호화 시스템(1)은 암호화된 파일 외에 해쉬된 파일 이름 및 해쉬된 키워드를 생성한다. 여기서, 키워드는 사용자에 의해 설정되며, 해쉬된 파일 이름 및 해쉬된 키워드는 솔트(Salt)를 적용하여 해쉬된 값들을 의미한다.
클라우드 저장 기반 암호화 시스템(1)은 해쉬된 키워드를 이용하여 해쉬 테이블(Hash Table)을 생성할 수 있다. 여기서, 해쉬 테이블은 해쉬된 키워드에 대응하는 암호화된 파일 이름의 리스트로 구성된다.
도 2는 해쉬 테이블의 일 예를 나타내는 도면이다.
도 2을 참조하면, 사용자에 의해 설정된 4개의 키워드 키워드1, 키워드2, 키워드3, 및 키워드4에 대해, 클라우드 저장 기반 암호화 시스템(1)은 솔트(Salt)를 적용하여 각각 H(키워드1|Salt1), H(키워드2|Salt2), H(키워드3|Salt3), 및 H(키워드4|Sal4)의 해쉬된 키워드를 생성할 수 있다.
또한, 클라우드 저장 기반 암호화 시스템(1)은 H(키워드1|Salt1)에 대응하여 암호화된 파일 이름 E(sk1, 파일 이름1)를 생성하고, H(키워드2|Salt2)에 대응하여 E(sk2, 파일 이름3)를 생성하고, H(키워드3|Salt3)에 대응하여 E(sk3, 파일 이름1) 및 E(sk3, 파일 이름2)를 생성하고, 및 H(키워드4|Salt4)에 대응하여 E(sk4, 파일 이름2) 및 E(sk4, 파일 이름4)를 생성할 수 있다. 여기서, sk는 암호화를 위해 이용되는 비밀 키를 의미하는 것으로 한다.
즉, 클라우드 저장 기반 암호화 시스템(1)은 H(키워드1|Salt1), H(키워드2|Salt2), H(키워드3|Salt3), 및 H(키워드4|Salt4)에 대응하여 각각 E(sk1, 파일 이름1), E(sk2, 파일 이름3), E(sk3, 파일 이름1) 및 E(sk3, 파일 이름2), 및 E(sk4, 파일 이름2) 및 E(sk4, 파일 이름4)로 구성된 해쉬 테이블을 생성할 수 있다.
클라우드 저장 기반 암호화 시스템(1)은 해쉬된 파일 이름을 이용하여 키워드 테이블(Keyword Table)을 생성할 수 있다. 여기서, 키워드 테이블은 해쉬된 파일 이름에 대응하는 암호화된 키워드의 리스트로 구성된다.
즉, 클라우드 저장 기반 암호화 시스템(1)은 도 2의 해쉬 테이블과 마찬가지 방법으로, 각각의 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하여 암호화된 키워드 E(비밀 키, 키워드)로 구성된 키워드 테이블을 생성할 수 있다.
클라우드 저장 기반 암호화 시스템(1)은 해쉬 테이블 또는 키워드 테이블을 이용하여, 키워드 테이블의 갱신, 저장된 파일의 로드(load), 저장된 파일의 검색, 및 저장된 파일의 삭제 중 적어도 하나를 수행할 수 있다.
즉, 클라우드 저장 기반 암호화 시스템(1)은 파일을 저장하는 것 뿐만 아니라, 해쉬 테이블 또는 키워드 테이블을 이용함으로써 키워드 테이블의 갱신, 저장된 파일의 로드, 저장된 파일의 검색, 또는 저장된 파일의 삭제 등을 안전하게 수행할 수 있으며, 이를 위해 암호화 장치(100) 및 클라우드 저장 장치(200)를 포함할 수 있다. 여기서, 암호화 장치(100)는 사용자 단말에 포함되어 네트워크(300) 통해 클라우드 저장 장치(200)와 연결된 장치를 의미한다.
암호화 장치(100)는 사용자의 입력에 따라 키워드를 설정할 수 있으며, 파일,파일 이름, 및 키워드에 대해 암호화 및 해쉬를 수행할 수 있다.
암호화 장치(100)는 사용자의 입력에 따라 적어도 하나의 키워드를 설정할 수 있다. 즉, 암호화 장치(100)는 사용자로부터 입력받은 n(n은 양의 정수)개의 키워드로부터 키워드x(x는 1≤x≤n인 양의 정수)를 설정할 수 있다.
암호화 장치(100)는 비밀 키를 이용하여 암호화된 파일, 암호화된 파일 이름, 및 암호화된 키워드 중 적어도 하나를 생성할 수 있다. 또한, 암호화 장치(100)는 해쉬된 파일, 해쉬된 파일 이름, 및 해쉬된 키워드 중 적어도 하나를 생성할 수 있다.
도 3은 암호화 장치에 의한 암호화 및 해쉬를 설명하기 위한 도면이다.
도 3을 참조하면, 암호화 장치(100)은 마스터 키(mk), 평문, 식별자, 솔트의 입력에 대해 비밀 키(sk), 암호화된 평문 E(비밀 키, 평문), 해쉬된 평문 H(평문), 및 해쉬된 식별자 H(식별자|Salt)를 출력할 수 있다.
암호화 장치(100)는 마스터 키로부터 비밀 키를 생성하거나 또는 마스터 키 및 솔트를 입력받아 비밀 키를 생성할 수 있다. 예를 들어, 비밀 키는 해쉬된 마스터 키 H(mk|Salt)로 생성될 수 있다.
암호화 장치(100)는 평문의 입력과 기생성된 비밀 키를 이용하여 암호화된 평문 E(비밀 키, 평문)을 생성할 수 있다. 여기서, 암호화된 평문의 출력을 위한 입력 평문은 파일, 파일 이름, 또는 키워드가 될 수 있다.
또한, 암호화 장치(100)는 평문을 입력받아 해쉬된 평문 H(평문)을 생성할 수있다. 여기서, 해쉬된 평문의 출력을 위한 입력 평문은 파일이 될 수 있다.
또한, 암호화 장치(100)는 식별자 및 솔트를 입력받아 해쉬된 식별자 H(식별자|Salt)를 생성할 수 있다. 여기서, 식별자는 파일 이름 또는 키워드가 될 수 있다.
상술한 바와 같이, 암호화 장치(100)는 비밀 키를 생성하고, 생성된 비밀키를 이용하여 암호화된 파일, 암호화된 파일 이름, 및 암호화된 키워드 중 적어도 하나를 생성하고, 해쉬된 파일, 해쉬된 파일 이름, 및 해쉬된 키워드 중 적어도 하나를 생성할 수 있으며, 해쉬된 파일 이름 및 해쉬된 키워드 생성 시에는 솔트가 적용될 수 있다.
암호화 장치(100)에서 생성된 암호화된 파일, 암호화된 파일 이름, 및 암호화된 키워드는 클라우드 저장 장치(200)에 전송된다. 마찬가지로, 암호화 장치(100)에서 생성된 해쉬된 파일, 해쉬된 파일 이름, 및 해쉬된 키워드는 클라우드 저장 장치(200)에 전송된다.
클라우드 저장 장치(200)는 암호화 장치(100)에서 수신한 데이터에 기초하여 파일을 저장하고, 키워드 테이블의 갱신, 저장된 파일의 로드(load), 저장된 파일의 검색, 또는 저장된 파일의 삭제 등이 수행되도록 한다.
클라우드 저장 장치(200)는 키워드 테이블의 갱신, 저장된 파일의 로드(load), 저장된 파일의 검색, 또는 저장된 파일의 삭제 등이 수행되기 전에, 암호화 장치(100)에서 수신한 데이터로부터 해쉬 테이블 및 키워드 테이블을 기생성할 수 있다. 클라우드 저장 장치(200)는 해쉬된 키워드 및 이에 대응하는 암호화된 파일 이름을 수신하여 해쉬 테이블을 기생성할 수 있다. 클라우드 저장 장치(200)는 해쉬된 파일 이름 및 이에 대응하는 암호화된 키워드을 수신하여 키워드 테이블을 기생성할 수 있다.
클라우드 저장 장치(200)는 해쉬 테이블 및 키워드 테이블을 이용하여, 키워드 테이블을 갱신하거나 파일을 검색 또는 삭제할 수 있으며, 로드 대상이 되는 파일을 암호화된 형태로 암호화 장치(100)에 전송할 수 있다.
이하에서는 파일 저장을 비롯하여, 키워크 데이블의 갱신, 파일 검색, 파일 삭제, 및 파일 로드를 위한 암호화 장치(100) 및 클라우드 저장 장치(200)의 동작을 상술하기로 한다.
파일을 저장하는 경우, 암호화 장치(100)는 파일을 암호화하여 해쉬값과 함께 클라우드 저장 장치(200)에 전송한다. 암호화 장치(100)는 암호화된 파일 E(비밀 키, 파일), 해쉬된 파일 H(파일), 및 해쉬된 파일 이름 H(파일 이름|Salt)를 생성하여 클라우드 저장 장치(200)에 전송한다.
클라우드 저장 장치(200)는 암호화된 파일 E(비밀 키, 파일), 해쉬된 파일 H(파일), 및 해쉬된 파일 이름 H(파일 이름|Salt)를 수신하고, 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 E(비밀 키, 파일) 및 해쉬된 파일 H(파일)을 저장한다.
키워드 테이블을 갱신하는 경우, 클라우드 저장 장치(200)는 키워드 테이블에서 암호화된 키워드를 삭제 또는 추가하는 갱신을 수행한다. 클라우드 저장 장치(200)는 첫번째로 해쉬 테이블에서 암호화된 파일 이름을 삭제하는 해쉬 테이블의 갱신을 수행한 후, 두번째로 키워드 테이블에서 암호화된 키워드를 삭제 또는 추가하는 키워드 테이블의 갱신을 수행한다.
첫번째 해쉬 테이블의 갱신 단계에서, 암호화 장치(100)는 갱신 대상 키워드x의 해쉬된 키워드 H(키워드x|Saltx) 및 H(키워드x|Saltx)에 대응하는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 생성하여 클라우드 저장 장치(200)에 전송한다.
클라우드 저장 장치(200)는 해쉬 테이블에서 H(키워드x|Saltx)에 대응하여 암호화된 파일 이름 E(비밀 키x, 파일 이름)이 존재하는지 여부를 검색하고, E(비밀 키x, 파일 이름)을 삭제하거나 또는 추가한다.
암호화된 파일 이름 E(비밀 키x, 파일 이름)이 해쉬 테이블에 존재하는 경우, 클라우드 저장 장치(200)는 해쉬 테이블에서 E(비밀 키x, 파일 이름)을 삭제한다. 암호화된 파일 이름 E(비밀 키x, 파일 이름)이 해쉬 테이블에 존재하지 않는 경우, 클라우드 저장 장치(200)는 해쉬 테이블에 E(비밀 키x, 파일 이름)을 추가한다.
두번째 키워드 테이블의 갱신 단계에서, 암호화 장치(100)는 암호화된 파일 이름 E(비밀 키x, 파일 이름)에 대응하는 해쉬된 파일 이름 H(파일 이름|Salt)을 생성한다. 암호화 장치(100)는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 클라우드 저장 장치(200)로부터 수신하고, 수신된 E(비밀 키x, 파일 이름)를 복호화하여 파일 이름을 획득할 수 있으며, 해당 파일 이름을 해쉬하여 해쉬된 파일 이름 H(파일 이름|Salt)을 생성할 수 있다.
암호화 장치(100)는 H(파일 이름|Salt)에 대응하는 암호화된 키워드 E(비밀 키, 키워드x)를 생성하고, 생성된 E(비밀 키, 키워드x)를 해쉬된 파일 이름 H(파일 이름|Salt)과 함께 클라우드 저장 장치(200)에 전송한다.
클라우드 저장 장치(200)는 키워드 테이블에서 H(파일 이름|Salt)에 대응하여 암호화된 키워드 E(비밀 키, 키워드x)이 존재하는지 여부를 검색하고, E(비밀 키, 키워드x)을 삭제하거나 또는 추가한다.
암호화된 키워드 E(비밀 키, 키워드x)이 키워드 테이블에 존재하는 경우, 클라우드 저장 장치(200)는 키워드 테이블에서 E(비밀 키, 키워드x)을 삭제한다. 암호화된 키워드 E(비밀 키, 키워드x)이 키워드 테이블에 존재하지 않는 경우, 클라우드 저장 장치(200)는 키워드 테이블에서 E(비밀 키, 키워드x)을 추가한다.
파일을 로드하는 경우, 암호화 장치(100)는 로드 대상 파일의 해쉬된 파일 이름인 H(파일 이름|Salt)를 생성하여 클라우드 저장 장치(200)에 전송한다. 암호화 장치(100)는 H(파일 이름|Salt)과 함께 키워드 테이블의 수신을 위한 플래그를 클라우드 저장 장치(200)에 전송할 수 있다.
클라우드 저장 장치(200)는 기저장된 파일을 이용하여 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 E(비밀 키, 파일) 및 해쉬된 파일 H(파일)을 검색한다. 플래그가 함께 전송된 경우, 클라우드 저장 장치(200)는 키워드 테이블에서 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 키워드 E(비밀 키, 키워드x)를 검색한다.
클라우드 저장 장치(200)는 검색된 E(비밀 키, 파일) 및 H(파일)을 암호화 장치(100)에 전송한다. E(비밀 키, 키워드x)가 함께 검색된 경우, 클라우드 저장 장치(200)는 E(비밀 키, 파일), H(파일), 및 E(비밀 키, 키워드x)를 암호화 장치(100)에 전송한다.
암호화 장치(100)는 수신된 E(비밀 키, 파일)를 복호화하여 파일을 획득할 수 있으며, 수신된 H(파일)을 이용하여 해당 파일이 변조되었는지 여부를 검토할 수 있다. E(비밀 키, 키워드x)의 수신 시, 암호화 장치(100)는 E(비밀 키, 키워드x)를 복호화함으로써 로드된 파일의 키워드x를 함께 획득할 수 있다.
파일을 검색하는 경우, 암호화 장치(100)는 검색 대한 파일의 해쉬된 키워드 H(키워드|Salt)를 생성하여 클라우드 저장 장치(200)에 전송한다.
클라우드 저장 장치(200)는 해쉬 테이블에서 해쉬된 키워드 H(키워드|Salt)에 대응하는 암호화된 파일 이름 E(비밀 키, 파일 이름y)를 검색한다. 여기서, m은 해당 키워드를 공통적으로 가지고 있는 파일의 개수를 의미하며, y는 1≤y≤m인 양의 정수이다.
클라우드 저장 장치(200)는 검색된 E(비밀 키, 파일 이름y)를 암호화 장치(100)에 전송한다.
암호화 장치(100)는 수신된 E(비밀 키, 파일 이름y)를 복호화하여 파일 이름y를 획득할 수 있는데, 획득한 파일 이름y이 곧 검색 결과가 된다.
파일을 삭제하는 경우, 클라우드 저장 장치(200)는 첫번째로 파일 자체를 삭제하고, 두번째로 파일 이름을 삭제한다. 두번째 연산에서 파일 이름을 삭제함으로써, 삭제된 파일이 검색 결과에 나타나는 것을 막을 수 있게 된다.
첫번째 파일 자체의 삭제 단계에서, 암호화 장치(100)는 삭제 대상 파일의 해쉬된 파일 이름 H(파일 이름|Salt)를 생성하여 클라우드 저장 장치(200)에 전송하고, 삭제 대상 파일을 알린다.
클라우드 저장 장치(200)는 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 E(비밀 키, 파일) 및 해쉬된 파일 H(파일)을 검색하고, 키워드 테이블에서 H(파일 이름|Salt)에 대응하는 암호화된 키워드 E(비밀 키, 키워드x)를 검색한다.
클라우드 저장 장치(200)는 검색된 E(비밀 키, 키워드x)를 암호화 장치(100)에 전송한 후, E(비밀 키, 파일), H(파일), 및 E(비밀 키, 키워드x)를 삭제한다.
두번째 파일 이름의 삭제 단계에서, 암호화 장치(100)는 암호화된 키워드 E(비밀 키, 키워드x)에 대응하는 해쉬된 키워드 H(키워드x|Saltx)를 생성한다. 암호화 장치(100)는 수신된 E(비밀 키, 키워드x)를 복호화하여 키워드x를 획득할 수 있으며, 해당 키워드x를 해쉬하여 해쉬된 키워드 H(키워드x|Saltx)를 생성할 수 있다.
클라우드 저장 장치(200)는 해쉬된 키워드 H(키워드x|Saltx)를 수신하고, H(키워드x|Saltx)에 대응하는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 검색한다. 클라우드 저장 장치(200)는 검색된 E(비밀 키x, 파일 이름)을 삭제하여, 클라우드 저장 장치(200)에서 파일 자체뿐만 아니라 파일 이름에 대한 정보 모두 삭제될 수 있도록 한다.
다시 도 1을 참조하면, 암호화 장치(100)는 키워드 설정부(110), 암호화부(120), 해쉬부(130), 및 통신부(140)를 포함할 수 있다.
키워드 설정부(110)는 사용자의 입력에 따라 적어도 하나의 키워드를 설정할 수 있다. 키워드 설정부(110)는 사용자로부터 입력받은 n(n은 양의 정수)개의 키워드로부터 키워드x(x는 1≤x≤n인 양의 정수)를 설정할 수 있다.
암호화부(120)는 암호화를 위한 비밀 키를 생성할 수 있다. 암호화부(120)는 예를 들어, 비밀 키를 해쉬된 마스터 키 형태인 H(mk|Salt)로 생성할 수 있다.
암호화부(120)는 비밀 키를 이용하여 파일, 파일 이름, 및 키워드에 대한 암호화를 수행하고, 암호화 데이터를 생성할 수 있다. 즉, 암호화부(120)는 암호화된 파일 E(비밀 키, 파일), 암호화된 파일 이름 E(비밀 x, 파일 이름), 및 암호화된 키워드 E(비밀 키, 키워드x)를 생성할 수 있다.
암호화부(120)는 비밀 키를 이용하여 복호화를 수행할 수 있다. 암호화부(120)는 암호화된 파일 E(비밀 키, 파일), 암호화된 파일 이름 E(비밀 키x, 파일 이름), 및 암호화된 키워드 E(비밀 키, 키워드x)를 복호화하여 파일, 파일 이름, 및 키워드x를 생성할 수 있다.
해쉬부(130)는 해쉬를 위한 솔트를 생성할 수 있다.
해쉬부(130)는 파일, 파일 이름, 및 키워드에 대한 해쉬를 수행하고, 해쉬 데이터를 생성할 수 있다. 해쉬부(130)는 해쉬된 파일, 해쉬된 파일 이름, 및 해쉬된 키워드를 생성할 수 있으며, 해쉬된 파일 이름 및 해쉬된 키워드 생성 시에는 솔트가 적용될 수 있다. 즉, 해쉬부(130)는 해쉬된 파일 H(파일), 해쉬된 파일 이름 H(파일 이름|Salt), 및 해쉬된 키워드 H(키워드x|Saltx)를 생성할 수 있다.
통신부(140)는 클라우드 저장 장치(200)와 통신을 수행하며 암호화 데이터 및 해쉬 데이터를 송수신할 수 있다. 통신부(140)는 암호화 장치(100)의 암호화 데이터 및 해쉬 데이터를 클라우드 저장 장치(200)에 송신하거나, 클라우드 저장 장치(200)의 암호화 데이터 및 해쉬 데이터를 수신할 수 있다.
통신부(140)는 암호화부(120)에서 생성된 암호화된 파일 E(비밀 키, 파일), 암호화된 파일 이름 E(비밀 키x, 파일 이름), 및 암호화된 키워드 E(비밀 키, 키워드x)를 클라우드 저장 장치(200)에 송신할 수 있다. 통신부(140)는 해쉬부(130)에서 생성된 해쉬된 파일 H(파일), 해쉬된 파일 이름 H(파일 이름|Salt), 및 해쉬된 키워드 H(키워드x|Saltx)을 클라우드 저장 장치(200)에 송신할 수 있다.
통신부(140)는 클라우드 저장 장치(200)에서 검색되거나 저장된 암호화 데이터 및 해쉬 데이터를 수신할 수 있다. 통신부(140)는 클라우드 저장 장치(200)에서 검색된 암호화된 파일 E(비밀 키, 파일), 암호화된 파일 이름 E(비밀 키x, 파일 이름), 암호화된 키워드 E(비밀 키, 키워드x), 및 해쉬된 파일 H(파일)을 수신할 수 있다.
암호화 장치(100)는 유무선 네트워크(300)를 통해 클라우드 저장 장치(200)에 연결되며, 클라우드 저장 장치(200)는 통신부(210), 파일 처리부(220), 및 저장부(230)를 포함할 수 있다.
통신부(210)는 암호화 장치(100)와 통신을 수행하며 암호화 데이터 및 해쉬 데이터를 송수신할 수 있다. 통신부(210)는 암호화 장치(100)의 암호화 데이터 및 해쉬 데이터를 클라우드 저장 장치(200)에 수신하거나, 클라우드 저장 장치(200)의 암호화 데이터 및 해쉬 데이터를 송신할 수 있다.
통신부(210)는 암호화 장치(100)에서 생성된 암호화된 파일 E(비밀 키, 파일), 암호화된 파일 이름 E(비밀 키x, 파일 이름), 암호화된 키워드 E(비밀 키, 키워드x), 해쉬된 파일 H(파일), 해쉬된 파일 이름 H(파일 이름|Salt), 및 해쉬된 키워드 H(키워드x|Saltx)을 수신할 수 있다.
통신부(210)는 후술될 파일 처리부(220)에서 검색되거나 저장부(230)에 저장된 암호화 데이터 및 해쉬 데이터를 암호화 장치(100)에 송신할 수 있다. 통신부(140)는 파일 처리부(220)에서 검색되는 암호화된 파일 E(비밀 키, 파일), 암호화된 파일 이름 E(비밀 키x, 파일 이름), 암호화된 키워드 E(비밀 키, 키워드x), 및 해쉬된 파일 H(파일)을 암호화 장치(100)에 송신할 수 있다.
파일 처리부(220)는 해쉬된 키워드 H(키워드x|Saltx) 및 이에 대응하는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 이용하여 해쉬 테이블을 생성한다. 파일 처리부(220)는 해쉬된 파일 이름 H(파일 이름|Salt) 및 이에 대응하는 암호화된 키워드 암호화된 키워드 E(비밀 키, 키워드x)를 이용하여 암호화된 키워드를 생성한다.
파일 처리부(220)는 키워드 테이블 갱신 시, 해쉬된 키워드 H(키워드x|Saltx) 에 대응하는 암호화된 파일 이름 E(비밀 키x, 파일 이름) 및 해쉬된 파일 이름 H(파일 이름|Salt) 에 대응하는 암호화된 키워드 E(비밀 키, 키워드x)를 검색하고, 검색된 E(비밀 키x, 파일 이름) 및 E(비밀 키, 키워드x)을 갱신할 수 있다. 즉, 파일 처리부(220)는 키워드 테이블의 갱신과 더불어 해쉬 테이블의 갱신을 수행할 수 있다.
파일 처리부(220)는 파일 로드 시, 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 (비밀 키, 파일), 해쉬된 파일 H(파일), 및 암호화된 키워드 E(비밀 키, 키워드x)를 검색할 수 있다.
파일 처리부(220)는 파일 검색 시, 해쉬된 키워드 H(키워드|Salt)에 대응하는 암호화된 파일 이름 E(비밀 키, 파일 이름y)를 검색할 수 있다.
파일 처리부(220)는 파일 삭제 시, 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 E(비밀 키, 파일), 해쉬된 파일 H(파일), 및 암호화된 키워드 E(비밀 키, 키워드x)를 검색하고, 검색된 파일 E(비밀 키, 파일), 해쉬된 파일 H(파일), 및 암호화된 키워드 E(비밀 키, 키워드x)를 삭제할 수 있다. 파일 처리부(220)는 해쉬된 키워드 H(키워드x|Saltx)에 대응하는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 검색하고, 검색된 E(비밀 키x, 파일 이름)을 삭제할 수 있다. 즉, 파일 처리부(220)는 파일 자체뿐만 아니라 파일 이름에 대한 정보를 함께 삭제할 수 있다.
저장부(230)는 생성되거나 갱신된 해쉬 데이터 및 키워드 데이터를 저장할 수 있다. 저장부(230)는 생성된 파일에 대한 정보를 저장할 수 있다. 저장부(230)는 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하여 암호화된 파일 E(비밀 키, 파일) 및 해쉬된 파일 H(파일)을 저장할 수 있다. 저장부(230)는 그 외 검색된 암호화 데이터 및 해쉬 데이터를 일시적 또는 비일시적으로 저장할 수 있다.
상술한 바에 따르면, 클라우드 저장 장치(200)에 저장되는 데이터는 암호화 데이터이거나 해쉬 데이터이며, 마스터 키 및 비밀 키는 클라우드 저장 장치(200)에 전송되지 않는다. 또한, 솔트는 키워드나 파일 이름에 따라 각각 변하는 값을 갖는 것으로, 비밀 키가 솔트를 이용한 해쉬값으로 설정되는 경우, 비밀 키 또한 변하는 값을 갖는다. 따라서, 비밀 키나 솔트를 찾아내는 것은 불가능하며, 마스터 키만 노출되지 않는다면 클라우드 저장 기반 암호화 시스템(1)은 보안상 매우 안전한 체계이다.
도 4는 클라우드 저장 기반 암호화 시스템의 성능 분석을 설명하기 위한 도면이다. 여기서, [1], [2], 및 [3]은 종래 기술을 활용한 결과이고, PSS는 클라우드 저장 기반 암호화 시스템(1)을 활용한 결과를 나타낸다. 또한, f는 파일의 개수, m은 키워드의 개수, n은 고유한 키워드의 개수, X는 지원하지 않음을 각각 의미한다.
도 4를 참조하면, 클라우드 저장 기반 암호화 시스템(1)은 종래 기술과 동등한 수준의 시간 복잡도 및 공간 복잡도를 보이며, 특히 키워드 테이블 갱신 시에는 종래 기술보다 더 높은 성능을 보여준다. 종래 기술에서는 Ο(m/n)의 시간 복잡도를 요구하는 반면, 클라우드 저장 기반 암호화 시스템(1)은 Ο(m/f)의 시간 복잡도를 요구하고 있으며, 따라서 고유한 키워드의 개수보다 파일의 개수가 더 많은 경우, 클라우드 저장 기반 암호화 시스템(1)의 키워드 테이블 갱신 비용이 종래 기술 대비 더 저렴해질 수 있다.
또한, 클라우드 저장 기반 암호화 시스템(1)은 마스터 키를 제외한 모든 데이터를 클라우드 저장 장치(200)에 저장한다. 이것은 사용자가 파일을 저장할 때 사용한 사용자 단말이 아니더라도 다른 사용자 단말를 통해 필요한 파일을 로드하거나 검색할 수 있다는 것을 의미한다. 즉, 클라우드 저장 기반 암호화 시스템(1)은 접근성이 용이한 체계이다.
이상으로 클라우드 저장 기반 암호화 시스템(1) 및 구성을 예시된 블록도를 바탕으로 설명하였으며, 이하에서는 주어진 흐름도 도 5 내지 도 9를 참조하여 클라우드 저장 기반 암호화 방법을 살펴보기로 한다. 상술한 내용과 동일하거나 대응되는 과정의 설명은 생략하는 것으로 한다.
도 5는 파일 저장을 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 5를 참조하면, 먼저 암호화 장치(100)가 암호화된 파일 E(비밀 키, 파일), 해쉬된 파일 H(파일), 및 해쉬된 파일 이름 H(파일 이름|Salt)를 생성한다(511).
암호화 장치(100)는 생성된 E(비밀 키, 파일), H(파일), 및 H(파일 이름|Salt)을 클라우드 저장 장치(200)에 전송한다. 즉, 암호화 장치(100)는 파일을 암호화하여 해쉬값과 함께 클라우드 저장 장치(200)에 전송한다.
클라우드 저장 장치(200)는 암호화된 파일 E(비밀 키, 파일), 해쉬된 파일 H(파일), 및 해쉬된 파일 이름 H(파일 이름|Salt)를 수신하고, 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 E(비밀 키, 파일) 및 해쉬된 파일 H(파일)을 저장한다(513).
도 6은 키워드 테이블의 갱신을 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 6을 참조하면, 암호화 장치(100)는 갱신 대상 키워드x의 해쉬된 키워드 H(키워드x|Saltx) 및 H(키워드x|Saltx)에 대응하는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 생성한다(521).
그리고 암호화 장치(100)는 생성된 H(키워드x|Saltx) 및 E(비밀 키x, 파일 이름)을 클라우드 저장 장치(200)에 전송한다(522).
클라우드 저장 장치(200)는 해쉬 테이블에서 H(키워드x|Saltx)에 대응하여 암호화된 파일 이름 E(비밀 키x, 파일 이름)이 존재하는지 여부를 검색한다(523).
클라우드 저장 장치(200)는 E(비밀 키x, 파일 이름)을 삭제하거나 또는 추가하는 갱신을 수행한다(524).
E(비밀 키x, 파일 이름)이 해쉬 테이블에 존재하는 경우, 클라우드 저장 장치(200)는 검색된 E(비밀 키x, 파일 이름)를 해쉬 테이블에서 삭제한다. E(비밀 키x, 파일 이름)이 해쉬 테이블에 존재하지 않는 경우, 클라우드 저장 장치(200)는 E(비밀 키x, 파일 이름)를 해쉬 테이블에서 추가한다. 즉, 클라우드 저장 장치(200)는 1차적으로 해쉬 테이블을 갱신한다.
암호화 장치(100)는 암호화된 파일 이름 E(비밀 키x, 파일 이름)에 대응하는 해쉬된 파일 이름 H(파일 이름|Salt)을 생성하고, H(파일 이름|Salt)에 대응하는 암호화된 키워드 E(비밀 키, 키워드x)를 생성한다(525).
암호화 장치(100)는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 클라우드 저장 장치(200)로부터 수신하고, 수신된 E(비밀 키x, 파일 이름)를 복호화하여 파일 이름을 획득할 수 있으며, 해당 파일 이름을 해쉬하여 해쉬된 파일 이름 H(파일 이름|Salt)을 생성할 수 있다.
암호화 장치(100)는 생성된 H(파일 이름|Salt) 및 E(비밀 키, 키워드x)를 클라우드 저장 장치(200)에 전송한다(526).
클라우드 저장 장치(200)는 키워드 테이블에서 H(파일 이름|Salt)에 대응하여 암호화된 키워드 E(비밀 키, 키워드x)가 존재하는지 여부를 검색한다(527).
클라우드 저장 장치(200)는 E(비밀 키, 키워드x)을 삭제하거나 또는 추가하는 갱신을 수행한다(528).
암호화된 키워드 E(비밀 키, 키워드x)이 키워드 테이블에 존재하는 경우, 클라우드 저장 장치(200)는 검색된 E(비밀 키, 키워드x)을 키워드 테이블에서 삭제한다. 암호화된 키워드 E(비밀 키, 키워드x)이 키워드 테이블에 존재하지 않는 경우, 클라우드 저장 장치(200)는 E(비밀 키, 키워드x)을 키워드 테이블에서 추가한다. 즉, 클라우드 저장 장치(200)는 갱신된 해쉬 테이블에 기반하여 2차적으로 키워드 테이블을 갱신한다.
도 7은 파일 로드를 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 7을 참조하면, 먼저 암호화 장치(100)는 로드 대상 파일의 해쉬된 파일 이름인 H(파일 이름|Salt)를 생성한다(531).
암호화 장치(100)는 생성된 H(파일 이름|Salt)를 클라우드 저장 장치(200)에 전송한다(532). 암호화 장치(100)는 H(파일 이름|Salt)과 함께 키워드 테이블의 수신을 위한 플래그를 클라우드 저장 장치(200)에 전송할 수 있다.
클라우드 저장 장치(200)는 기저장된 파일을 이용하여 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 E(비밀 키, 파일) 및 해쉬된 파일 H(파일)을 검색한다(533). 플래그가 함께 전송된 경우, 클라우드 저장 장치(200)는 키워드 테이블에서 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 키워드 E(비밀 키, 키워드x)를 검색한다.
클라우드 저장 장치(200)는 검색된 E(비밀 키, 파일) 및 H(파일)을 암호화 장치(100)에 전송한다(534). E(비밀 키, 키워드x)가 함께 검색된 경우, 클라우드 저장 장치(200)는 E(비밀 키, 파일), H(파일), 및 E(비밀 키, 키워드x)를 암호화 장치(100)에 전송한다.
암호화 장치(100)는 수신된 E(비밀 키, 파일)를 복호화하여 파일을 획득할 수 있으며, 수신된 H(파일)을 이용하여 해당 파일이 변조되었는지 여부를 검토할 수 있다. E(비밀 키, 키워드x)의 수신 시, 암호화 장치(100)는 E(비밀 키, 키워드x)를 복호화함으로써 로드된 파일의 키워드x를 함께 획득할 수 있다.
도 8은 파일 검색를 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 8을 참조하면, 암호화 장치(100)는 검색 대한 파일의 해쉬된 키워드 H(키워드|Salt)를 생성한다(541).
암호화 장치(100)는 생성된 H(키워드|Salt)를 클라우드 저장 장치(200)에 전송한다(542).
클라우드 저장 장치(200)는 해쉬 테이블에서 해쉬된 키워드 H(키워드|Salt)에 대응하는 암호화된 파일 이름 E(비밀 키, 파일 이름y)를 검색한다(543). 여기서, m은 해당 키워드를 공통적으로 가지고 있는 파일의 개수를 의미하며, y는 1≤y≤m인 양의 정수가 된다.
클라우드 저장 장치(200)는 검색된 E(비밀 키, 파일 이름y)를 암호화 장치(100)에 전송한다(544).
암호화 장치(100)는 수신된 E(비밀 키, 파일 이름y)를 복호화하여 파일 이름y를 획득할 수 있으며, 획득한 파일 이름y이 곧 검색 결과가 된다.
도 9는 파일 삭제를 위한 클라우드 저장 기반 암호화 방법의 일 실시예에 따른 흐름도이다.
도 9를 참조하면, 암호화 장치(100)는 삭제 대상 파일의 해쉬된 파일 이름 H(파일 이름|Salt)를 생성한다(551).
암호화 장치(100)는 생성된 H(파일 이름|Salt)를 클라우드 저장 장치(200)에 전송하여, 삭제 대상 파일을 알린다(552).
클라우드 저장 장치(200)는 해쉬된 파일 이름 H(파일 이름|Salt)에 대응하는 암호화된 파일 E(비밀 키, 파일) 및 해쉬된 파일 H(파일)을 검색하고, 키워드 테이블에서 H(파일 이름|Salt)에 대응하는 암호화된 키워드 E(비밀 키, 키워드x)를 검색한다(553).
클라우드 저장 장치(200)는 검색된 E(비밀 키, 키워드x)를 암호화 장치(100)에 전송한다(554).
그리고, 클라우드 저장 장치(200)는 검색된 E(비밀 키, 파일), H(파일), 및 E(비밀 키, 키워드x)를 삭제한다(555). 즉, 클라우드 저장 장치(200)는 일차적으로 파일 자체에 대한 정보를 삭제한다.
그런 다음, 암호화 장치(100)는 암호화된 키워드 E(비밀 키, 키워드x)에 대응하는 해쉬된 키워드 H(키워드x|Saltx)를 생성한다(556). 암호화 장치(100)는 수신된 E(비밀 키, 키워드x)를 복호화하여 키워드x를 획득할 수 있으며, 해당 키워드x를 해쉬하여 해쉬된 키워드 H(키워드x|Saltx)를 생성할 수 있다.
암호화 장치(100)는 생성된 H(키워드x|Saltx)를 클라우드 저장 장치(200)에 전송한다(557).
클라우드 저장 장치(200)는 해쉬된 키워드 H(키워드x|Saltx)를 수신하고, H(키워드x|Saltx)에 대응하는 암호화된 파일 이름 E(비밀 키x, 파일 이름)을 검색한다(558).
클라우드 저장 장치(200)는 검색된 E(비밀 키x, 파일 이름)을 삭제한다(559). 즉, 클라우드 저장 장치(200)는 2차적으로 파일 이름에 대한 정볼를 삭제한다. 상술한 파일 자체뿐만 아니라 파일 이름에 대한 모든 정보가 삭제되는 것이다.
상술한 클라우드 저장 기반 암호화 시스템 및 방법에 의하면, 안전한 클라우드 저장을 위한 필수 요소인 안전한 삭제, 암호화 파일 시스템, 검색 가능 암호화를 모두 지원할 수 있다.
또한, 클라우드 저장 장치는 암호 데이터 및 해쉬 데이터만을 저장하고, 이것들을 생성하기 위한 마스터 키, 솔트(Salt), 또는 비밀 키는 클라우드 저장 장치에 공개되지 않을 수 있다. 또한, 솔트나 비밀 키는 키워드나 파일 이름에 따라 각각 변하는 값을 갖기 때문에 보안상 안전한 체계를 구성한다. 따라서, 파일 저장, 키워드 갱신, 파일 로드, 검색, 또는 삭제 등의 작업을 보안상 안전하게 수행할 수 있다.
또한, 마스터 키를 제외한 모든 데이터는 클라우드 저장 장치에 저장되는 것으로, 사용자는 마스터 키만 기억하면 어떤 사용자 단말을 이용하더라도 클라우드 저장 장치에 저장된 파일에 접근이 가능하다. 즉, 클라우드 저장 장치의 파일에 용이하게 접근할 수 있다.
이상과 같이 예시된 도면을 참조로 하여, 클라우드 저장 기반 암호화 시스템 및 방법의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시 될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 한정적이 아닌 것으로 이해해야만 한다.
1 : 클라우드 저장 기반 암호화 시스템
100 : 암호화 장치 110 : 키워드 설정부
120 : 암호화부 130 : 해쉬부
140 : 통신부 200 : 클라우드 저장 장치
210 : 통신부 220 : 파일 처리부
230 : 저장부

Claims (12)

  1. 클라우드 저장 장치에 파일을 암호화하여 저장하는 클라우드 저장 기반 암호화 시스템에 있어서,
    상기 파일의 암호화된 파일 및 해쉬된 파일 이름을 생성하고, 사용자에 의해 설정된 키워드의 해쉬된 키워드를 생성하는 암호화 장치; 및
    상기 암호화된 파일을 저장하고, 상기 해쉬된 키워드를 이용하여 해쉬 테이블(Hash Table)을 생성하고, 상기 해쉬된 파일 이름을 이용하여 키워드 테이블(Keyword Table)을 생성하는 상기 클라우드 저장 장치;
    를 포함하고,
    상기 해쉬 테이블 또는 키워드 테이블을 이용하여, 상기 키워드 테이블의 갱신, 상기 저장된 파일의 로드(load), 상기 저장된 파일의 검색, 및 상기 저장된 파일의 삭제 중 적어도 하나를 수행하는 클라우드 저장 기반 암호화 시스템.
  2. 제 1 항에 있어서,
    상기 해쉬 테이블은,
    상기 해쉬된 키워드에 대응하는 암호화된 파일 이름의 리스트로 구성되는 클라우드 저장 기반 암호화 시스템.
  3. 제 2 항에 있어서,
    상기 키워드 테이블은,
    상기 해쉬된 파일 이름에 대응하는 암호화된 키워드의 리스트로 구성되는 클라우드 저장 기반 암호화 시스템.
  4. 제 3 항에 있어서,
    상기 암호화 장치는,
    상기 파일의 상기 암호화된 파일, 해쉬된 파일, 및 상기 해쉬된 파일 이름을 생성하고,
    상기 클라우드 저장 장치는,
    상기 해쉬된 파일 이름에 대응하여 상기 암호화된 파일 및 상기 해쉬된 파일을 저장하는 클라우드 저장 기반 암호화 시스템.
  5. 제 4 항에 있어서,
    상기 키워드 테이블의 갱신 시,
    상기 암호화 장치는,
    갱신 대상 키워드의 해쉬된 키워드인 갱신 해쉬 키워드 및 상기 갱신 해쉬 키워드에 대응하는 암호화된 파일 이름인 갱신 암호 파일 이름을 생성하고,
    상기 클라우드 저장 장치는,
    상기 해쉬 테이블에서 상기 갱신 암호 파일 이름이 존재하는지 여부를 검색하고, 상기 갱신 암호 파일 이름을 삭제하거나 또는 추가하는 해쉬 테이블의 갱신을 수행하는 클라우드 저장 기반 암호화 시스템.
  6. 제 5 항에 있어서,
    상기 암호화 장치는,
    상기 갱신 암호 파일 이름에 대응하는 해쉬된 파일 이름인 갱신 해쉬 파일 이름 및 상기 갱신 해쉬 파일 이름에 대응하는 암호화된 키워드인 갱신 암호 키워드를 생성하고,
    상기 클라우드 저장 장치는,
    상기 키워드 테이블에서 상기 갱신 암호 키워드가 존재하는지 여부를 검색하고, 상기 갱신 암호 파일 이름을 삭제하거나 또는 추가하는 키워드 테이블의 갱신을 수행하는 클라우드 저장 기반 암호화 시스템.
  7. 제 4 항에 있어서,
    상기 저장된 파일의 로드 시,
    상기 암호화 장치는,
    로드 대상 파일의 해쉬된 파일 이름인 로드 해쉬 파일 이름을 생성하고,
    상기 클라우드 저장 장치는,
    상기 로드 해쉬 파일 이름에 대응하는 암호화된 파일인 로드 암호 파일 및 해쉬된 파일인 로드 해쉬 파일을 검색하고, 상기 키워드 테이블에서 상기 로드 해쉬 파일 이름에 대응하는 암호화된 키워드인 로드 암호 키워드를 검색하고, 상기 검색된 로드 암호 파일, 로드 해쉬 파일, 및 로드 암호 키워드를 상기 암호화된 장치에 전송하는 클라우드 저장 기반 암호화 시스템.
  8. 제 4 항에 있어서,
    상기 저장된 파일의 검색 시,
    상기 암호화 장치는,
    검색 대상 파일의 해쉬된 키워드인 검색 해쉬 키워드를 생성하고,
    상기 클라우드 저장 장치는,
    상기 해쉬 테이블에서 상기 검색 해쉬 키워드에 대응하는 암호화된 파일 이름인 검색 암호 파일 이름을 검색하는 클라우드 저장 기반 암호화 시스템.
  9. 제 4 항에 있어서,
    상기 저장된 파일의 삭제 시,
    상기 암호화 장치는,
    삭제 대상 파일의 해쉬된 파일 이름인 삭제 해쉬 파일 이름을 생성하고,
    상기 클라우드 저장 장치는,
    상기 삭제 해쉬 파일 이름에 대응하는 암호화된 파일인 삭제 암호 파일 및 해쉬된 파일인 삭제 해쉬 파일을 검색하고, 상기 키워드 테이블에서 상기 삭제 해쉬 파일 이름에 대응하는 암호화된 키워드인 삭제 암호 키워드를 검색하고, 상기 검색된 삭제 암호 파일, 삭제 해쉬 파일, 및 삭제 암호 키워드를 삭제하는 클라우드 저장 기반 암호화 시스템.
  10. 제 9 항에 있어서,
    상기 암호화 장치는,
    상기 삭제 암호 키워드에 대응하는 해쉬된 키워드인 삭제 해쉬 키워드를 생성하고,
    상기 클라우드 저장 장치는,
    상기 삭제 해쉬 키워드에 대응하는 암호화된 파일 이름인 삭제 암호 파일 이름을 검색하고, 상기 삭제 암호 파일 이름을 삭제하는 클라우드 저장 기반 암호화 시스템.
  11. 제 1 항에 있어서,
    상기 암호화 장치는,
    솔트(Salt)를 이용하여 상기 해쉬된 파일 이름 및 상기 해쉬된 키워드을 생성하는 클라우드 저장 기반 암호화 시스템.
  12. 클라우드 저장 장치에 파일을 암호화하여 저장하는 클라우드 저장 기반 암호화 방법에 있어서,
    상기 파일의 암호화된 파일 및 해쉬된 파일 이름을 생성하고;
    사용자에 의해 설정된 키워드의 해쉬된 키워드를 생성하고;
    상기 암호화된 파일을 저장하고;
    상기 해쉬된 키워드를 이용하여 해쉬 테이블(Hash Table)을 생성하고;
    상기 해쉬된 파일 이름을 이용하여 키워드 테이블(Keyword Table)을 생성하고; 및
    상기 해쉬 테이블 또는 키워드 테이블을 이용하여, 상기 키워드 테이블의 갱신, 상기 저장된 파일의 로드(load), 상기 저장된 파일의 검색, 및 상기 저장된 파일의 삭제 중 적어도 하나를 수행하는;
    것을 포함하는 클라우드 저장 기반 암호화 방법.
KR1020170066114A 2017-05-29 2017-05-29 클라우드 저장 기반 암호화 시스템 및 방법 KR101979267B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170066114A KR101979267B1 (ko) 2017-05-29 2017-05-29 클라우드 저장 기반 암호화 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170066114A KR101979267B1 (ko) 2017-05-29 2017-05-29 클라우드 저장 기반 암호화 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20180130249A true KR20180130249A (ko) 2018-12-07
KR101979267B1 KR101979267B1 (ko) 2019-05-16

Family

ID=64669665

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170066114A KR101979267B1 (ko) 2017-05-29 2017-05-29 클라우드 저장 기반 암호화 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101979267B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450935A (zh) * 2018-12-19 2019-03-08 河南科技大学 云存储中可验证的语义安全的多关键词搜索方法
WO2020167884A1 (en) * 2019-02-13 2020-08-20 Jpmorgan Chase Bank, N.A. Systems and methods for blockchain-based secure storage
KR20200141560A (ko) * 2019-06-10 2020-12-21 주식회사 삼보컴퓨터 Usb 저장 매체를 이용하는 컴퓨터용 보안 시스템 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102620855B1 (ko) 2021-09-28 2024-01-02 단국대학교 산학협력단 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버
KR20230096293A (ko) 2021-12-23 2023-06-30 단국대학교 산학협력단 클라우드 환경에서 랜덤 카운터를 이용한 동적 암호화 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120108121A (ko) * 2011-03-23 2012-10-05 순천향대학교 산학협력단 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
WO2014128958A1 (ja) * 2013-02-25 2014-08-28 三菱電機株式会社 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
JP2015118603A (ja) * 2013-12-19 2015-06-25 日本電信電話株式会社 データベース検索システム及び検索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120108121A (ko) * 2011-03-23 2012-10-05 순천향대학교 산학협력단 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
WO2014128958A1 (ja) * 2013-02-25 2014-08-28 三菱電機株式会社 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
JP2015118603A (ja) * 2013-12-19 2015-06-25 日本電信電話株式会社 データベース検索システム及び検索方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450935A (zh) * 2018-12-19 2019-03-08 河南科技大学 云存储中可验证的语义安全的多关键词搜索方法
CN109450935B (zh) * 2018-12-19 2021-02-02 河南科技大学 云存储中可验证的语义安全的多关键词搜索方法
WO2020167884A1 (en) * 2019-02-13 2020-08-20 Jpmorgan Chase Bank, N.A. Systems and methods for blockchain-based secure storage
GB2597197A (en) * 2019-02-13 2022-01-19 Jpmorgan Chase Bank Na Systems and methods for blockchain-based secure storage
US11431691B2 (en) 2019-02-13 2022-08-30 Jpmorgan Chase Bank, N.A. Systems and methods for blockchain-based secure storage
IL285588B1 (en) * 2019-02-13 2024-05-01 Jpmorgan Chase Bank Na Systems and methods for secure blockchain-based storage
KR20200141560A (ko) * 2019-06-10 2020-12-21 주식회사 삼보컴퓨터 Usb 저장 매체를 이용하는 컴퓨터용 보안 시스템 및 방법

Also Published As

Publication number Publication date
KR101979267B1 (ko) 2019-05-16

Similar Documents

Publication Publication Date Title
US11783056B2 (en) Systems and methods for cryptographic-chain-based group membership content sharing
KR101979267B1 (ko) 클라우드 저장 기반 암호화 시스템 및 방법
JP4958246B2 (ja) 高速検索可能な暗号化のための方法、装置およびシステム
US10097522B2 (en) Encrypted query-based access to data
Li et al. A hybrid cloud approach for secure authorized deduplication
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
US8406422B2 (en) Cryptographic module management apparatus, method, and program
US9275250B2 (en) Searchable encryption processing system
US8233627B2 (en) Method and system for managing a key for encryption or decryption of data
US10361840B2 (en) Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program
JP5084817B2 (ja) 暗号文の索引付けおよび検索方法と装置
US10872158B2 (en) Secret search system, secret search method, and computer readable medium
WO2018047698A1 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム
CN112685753B (zh) 一种用于加密数据存储的方法及设备
US10733317B2 (en) Searchable encryption processing system
JP5140026B2 (ja) データベース処理方法、データベース処理プログラム、および、暗号化装置
CN110062941B (zh) 消息发送系统及方法、通信终端、服务器装置、记录介质
CN114417073B (zh) 一种加密图的邻居节点查询方法及装置、电子设备
JP2014016584A (ja) データ分割装置、データ復元装置、データ分割方法、データ復元方法、及びプログラム
JPH11331145A (ja) 情報共有システム、情報保管装置およびそれらの情報処理方法、並びに記録媒体
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
Venkatesh et al. Secure authorised deduplication by using hybrid cloud approach
Sharma et al. Privacy preserving on searchable encrypted data in cloud
Passricha et al. A secure deduplication scheme for encrypted data
JPWO2019142265A1 (ja) データ管理装置、データ管理方法及びデータ管理プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right