KR20170111022A - 암호화 및 검색 장치 및 그 방법 - Google Patents

암호화 및 검색 장치 및 그 방법 Download PDF

Info

Publication number
KR20170111022A
KR20170111022A KR1020160035697A KR20160035697A KR20170111022A KR 20170111022 A KR20170111022 A KR 20170111022A KR 1020160035697 A KR1020160035697 A KR 1020160035697A KR 20160035697 A KR20160035697 A KR 20160035697A KR 20170111022 A KR20170111022 A KR 20170111022A
Authority
KR
South Korea
Prior art keywords
keyword
encryption
encryption process
cipher text
file
Prior art date
Application number
KR1020160035697A
Other languages
English (en)
Other versions
KR102449816B1 (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 KR1020160035697A priority Critical patent/KR102449816B1/ko
Priority to US15/468,931 priority patent/US10523417B2/en
Publication of KR20170111022A publication Critical patent/KR20170111022A/ko
Application granted granted Critical
Publication of KR102449816B1 publication Critical patent/KR102449816B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F17/30091
    • G06F17/30386
    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Abstract

본 발명은 센서 네트워크(sensor network), 사물 통신(machine to machine (M2M) communication), MTC(machine type communication) 및 사물 인터넷(internet of things: IoT)을 위한 기술과 관련된 것이다. 본 발명은 상기 기술을 기반으로 하는 지능형 서비스(스마트 홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 헬스 케어, 디지털 교육, 소매업, 보안 및 안전 관련 서비스 등)에 활용될 수 있다.
본 발명은 암호화 프로세스를 수행하는 방법에 있어서, 키워드(keyword) 암호화 및 파일 암호화에 사용되는, 다수 개의 키들을 생성하는 과정과, 다수 개의 파일들이 저장되어 있는 어드레스(address)들 각각에 대해 제1 암호화 프로세스를 수행하여 어드레스 암호문을 생성하는 과정과, 상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대해 제2 암호화 프로세스를 수행하여 키워드 암호문을 생성하는 과정과, 상기 키워드 암호문들을 기반으로 상기 어드레스 암호문들과 키워드 암호문들을 재정렬하고, 상기 재정렬된 어드레스 암호문들과 키워드 암호문들을 저장하는 과정을 포함함을 특징으로 한다.

Description

암호화 및 검색 장치 및 그 방법{APPARATUS FOR ENCRYPTION AND SEARCH AND METHOD THEREOF}
본 발명은 암호화(encryption) 및 검색(search) 장치 및 그 방법에 관한 것으로서, 특히 이진 검색(binary search)을 고려한 암호화 및 검색 장치 및 그 방법에 관한 것이다.
인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결 네트워크에서, 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 사물 인터넷(internet of things: IoT, 이하 " IoT"라 칭하기로 한다) 네트워크로 진화하고 있다. IoE (internet of everything) 기술은 클라우드 서버(cloud server) 등과의 연결을 통한 빅 데이터(big data) 처리 기술 등이 IoT 기술에 결합된 하나의 예가 될 수 있다.
IoT를 구현하기 위해서, 센싱 기술, 유무선 통신 및 네트워크 인프라, 서비스 인터페이스 기술 및 보안 기술 등과 같은 기술 요소 들이 요구되어, 최근에는 사물간의 연결을 위한 센서 네트워크(sensor network), 사물 통신 (machine to machine (M2M) communication: 이하 " M2M 통신"이라 칭하기로 한다), MTC(machine type communication) 등의 기술이 연구되고 있다.
IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT (internet technology) 서비스가 제공될 수 있다. IoT는 기존의 IT 기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트 홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단 의료 서비스 등의 분야에 응용될 수 있다.
클라우드 스토리지 서비스(cloud storage service)는 사용자 디바이스가 인터넷에 사용자 디바이스 자신의 저장 공간을 가지는 것을 가능하게 하는 서비스이다. 상기 클라우드 스토리지 서비스에서, 상기 사용자 디바이스는 인터넷이 가능한 환경에서는 클라우드 스토리지 서버에 접속하여, 상기 클라우드 스토리지 서버에 저장되어 있는 사용자 디바이스 자신의 파일을 다운로드(download)하거나, 혹은 상기 사용자 디바이스 자신의 파일을 상기 클라우드 스토리지 서버에 업로드(upload)하거나, 혹은 상기 클라우드 스토리지 서버에 저장되어 있는 파일을 활용(스트리밍(streaming), 편집 등)할 수 있다.
최근에는 다양한 클라우드 스토리지 서비스들이 제안되고 있으며, 그 중 대표적인 예들로는 드롭 박스(Dropbox), 원 드라이브(One Drive), 구글 포토(Google Photos, 이하 "Google Photos"라 칭하기로 한다), 아마존 포토(Amazon Photos, 이하 "Amazon Photos"라 칭하기로 한다), 엔 드라이브(N Drive, 이하 "N Drive"라고 칭하기로 한다) 등이 있다.
또한, 최근에는 클라우드 스토리지 서비스들이 점점 활성화되고 있다. 특히, Google Photos, Amazon Photos 등과 같은 대형 서비스 업체에서 클라우드 스토리지 서비스를 공격적으로 제공하고 있다. 일 예로, Google Photos의 경우 사진 저장 공간을 무제한으로 제공하고 있고, Amazon Photos는 Amazon 프라임 회원에게 무제한으로 사진을 저장할 수 있는 공간을 제공하고 있다.
한편, 클라우드 스토리지 서비스에 대한 기술적 진입 장벽 낮아져서 클라우드 스토리지 서비스를 제공하는 스타트업(start-up) 기업들이 많이 생기고 있다. 특히, 아마존에서 제공하는 아마존 웹 서비스(Amazon web services: AWS, 이하 "AWS"라 칭하기로 한다)는 서버를 비교적 쉽게 구현 및 운영할 수 있는 인프라(infra)와 프레임워크(framework)를 제공한다. 특히, AWS를 사용할 경우 서버 구현 및 운영에 경험이 적은 사용자들도 비교적 쉽게 서버를 구현 및 운영할 수 있게 되었다. 따라서, 다수의 스타트업 기업들은 클라우드 스토리지 서비스를 활용하는 다양한 서비스들을 제공하고 있다.
특히, 클라우드 스토리지 서비스는 다양한 환경들에서 적극적으로 적용되고 있지만, 사용자 디바이스 입장에서는 클라우드 스토리지 서비스 제공자를 신뢰하는 것이 어렵기 때문에 데이터, 일 예로 보안에 민감한 파일에 대해서는 미리 암호화한 후, 상기 암호화된 파일을 클라우드 스토리지 서버에 업로드해야만 한다.
이렇게, 사용자 디바이스가 데이터를 암호화한 후, 상기 암호화된 데이터를 클라우드 스토리지 서버에 업로드할 경우, 클라우드 스토리지 서버는 사용자 디바이스의 비밀 키를 사용하지 않고는 상기 사용자 디바이스가 업로드한, 암호화된 데이터에 대해 억세스할 수 없다. 따라서, 데이터에 대한 보안은 확실이 보장되지만, 이로 인해 기존에 사용되고 있던 검색 프로세스들을 사용하는 것은 불가능해진다.
한편, 상기와 같은 정보는 본 발명의 이해를 돕기 위한 백그라운드(background) 정보로서만 제시될 뿐이다. 상기 내용 중 어느 것이라도 본 발명에 관한 종래 기술로서 적용 가능할지 여부에 관해, 어떤 결정도 이루어지지 않았고, 또한 어떤 주장도 이루어지지 않는다.
본 발명의 일 실시예는 이진 검색을 고려한 암호화 및 검색 장치 및 그 방법을 제안한다.
또한, 본 발명의 일 실시예는 데이터베이스(database)가 변경될 경우에도 적용 가능한, 이진 검색을 고려한 암호화 및 검색 장치 및 그 방법을 제안한다.
또한, 본 발명의 일 실시예는 키워드(keyword)의 추가 및 삭제가 가능한, 이진 검색을 고려한 암호화 및 검색 장치 및 그 방법을 제안한다.
또한, 본 발명의 일 실시예는 키워드의 길이가 제한되지 않는 것이 가능한, 이진 검색을 고려한 암호화 및 검색 장치 및 그 방법을 제안한다.
본 발명의 일 실시예에서 제안하는 방법은; 암호화 프로세스를 수행하는 방법에 있어서, 키워드(keyword) 암호화 및 파일 암호화에 사용되는, 다수 개의 키들을 생성하는 과정과, 다수 개의 파일들이 저장되어 있는 어드레스(address)들 각각에 대해 제1 암호화 프로세스를 수행하여 어드레스 암호문을 생성하는 과정과, 상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대해 제2 암호화 프로세스를 수행하여 키워드 암호문을 생성하는 과정과, 상기 키워드 암호문들을 기반으로 상기 어드레스 암호문들과 키워드 암호문들을 재정렬하고, 상기 재정렬된 어드레스 암호문들과 키워드 암호문들을 저장하는 과정을 포함함을 특징으로 한다.
본 발명의 일 실시예에서 제안하는 다른 방법은; 검색 프로세스를 수행하는 방법에 있어서, 사용자 디바이스로부터 키워드(keyword)를 수신하는 과정과,상기 키워드에 대해 제1 암호화 프로세스를 수행하여 키워드 암호문을 생성하는 과정과, 다수 개의 파일들이 저장되어 있는 어드레스들 각각에 대한 어드레스 암호문과, 상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대한 키워드 암호문과, 상기 다수 개의 파일들 각각에 대한 파일 암호문이 저장되어 있는 데이터베이스(database)로부터 상기 키워드 암호문과 일치하는 키워드 암호문에 상응하는 파일 암호문을 검색하는 과정을 포함함을 특징으로 한다.
본 발명의 일 실시예에서 제안하는 장치는; 암호화 프로세스를 수행하는 장치에 있어서, 키워드(keyword) 암호화 및 파일 암호화에 사용되는, 다수 개의 키들을 생성하고, 다수 개의 파일들이 저장되어 있는 어드레스(address)들 각각에 대해 제1 암호화 프로세스를 수행하여 어드레스 암호문을 생성하고, 상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대해 제2 암호화 프로세스를 수행하여 키워드 암호문을 생성하고, 상기 키워드 암호문들을 기반으로 상기 어드레스 암호문들과 키워드 암호문들을 재정렬하고, 상기 재정렬된 어드레스 암호문들과 키워드 암호문들을 저장하는 프로세서를 포함함을 특징으로 한다.
본 발명의 다른 측면들과, 이득들 및 핵심적인 특징들은 부가 도면들과 함께 처리되고, 본 발명의 바람직한 실시예들을 개시하는, 하기의 구체적인 설명으로부터 해당 기술 분야의 당업자에게 자명할 것이다.
하기의 본 개시의 구체적인 설명 부분을 처리하기 전에, 이 특허 문서를 통해 사용되는 특정 단어들 및 구문들에 대한 정의들을 설정하는 것이 효과적일 수 있다: 상기 용어들 "포함하다(include)" 및 "포함하다(comprise)"와 그 파생어들은 한정없는 포함을 의미하며; 상기 용어 "혹은(or)"은 포괄적이고, "및/또는"을 의미하고; 상기 구문들 "~와 연관되는(associated with)" 및 "~와 연관되는(associated therewith)"과 그 파생어들은 포함하고(include), ~내에 포함되고(be included within), ~와 서로 연결되고(interconnect with), 포함하고(contain), ~내에 포함되고(be contained within), ~에 연결하거나 혹은 ~와 연결하고(connect to or with), ~에 연결하거나 혹은 ~와 연결하고(couple to or with), ~와 통신 가능하고(be communicable with), ~와 협조하고(cooperate with), 인터리빙하고(interleave), 병치하고(juxtapose), ~로 가장 근접하고(be proximate to), ~로 ~할 가능성이 크거나 혹은 ~와 ~할 가능성이 크고(be bound to or with), 가지고(have), 소유하고(have a property of) 등과 같은 내용을 의미하고; 상기 용어 "제어기"는 적어도 하나의 동작을 제어하는 임의의 디바이스, 시스템, 혹은 그 부분을 의미하고, 상기와 같은 디바이스는 하드웨어, 펌웨어 혹은 소프트웨어, 혹은 상기 하드웨어, 펌웨어 혹은 소프트웨어 중 적어도 2개의 몇몇 조합에서 구현될 수 있다. 어떤 특정 제어기와 연관되는 기능성이라도 집중화되거나 혹은 분산될 수 있으며, 국부적이거나 원격적일 수도 있다는 것에 주의해야만 할 것이다. 특정 단어들 및 구문들에 대한 정의들은 이 특허 문서에 걸쳐 제공되고, 해당 기술 분야의 당업자는 많은 경우, 대부분의 경우가 아니라고 해도, 상기와 같은 정의들이 종래 뿐만 아니라 상기와 같이 정의된 단어들 및 구문들의 미래의 사용들에도 적용된다는 것을 이해해야만 할 것이다.
본 발명의 일 실시예는 이진 검색을 고려한 암호화 및 검색을 가능하게 한다는 효과가 있다.
또한, 본 발명의 일 실시예는 데이터베이스가 변경될 경우에도 적용 가능한, 이진 검색을 고려한 암호화 및 검색을 가능하게 한다는 효과가 있다.
또한, 본 발명의 일 실시예는 키워드의 추가 및 삭제가 가능한, 이진 검색을 고려한 암호화 및 검색을 가능하게 한다는 효과가 있다.
또한, 본 발명의 일 실시예는 키워드의 길이가 제한되지 않는 것이 가능한, 이진 검색을 고려한 암호화 및 검색을 가능하게 한다는 효과가 있다.
또한, 본 발명의 일 실시예는 암호문 상태로 저장되어 있는 데이터베이스에서 효율적인 키워드 검색이 가능하기 때문에 데이터의 기밀성을 보장하면서 효율적인 접근성을 제공할 수 있다는 효과가 있다.
또한, 본 발명의 일 실시예는 deterministic encryption 프로세스를 기반으로 암호화된 키워드 토큰들을 오름차순으로 저장하기 때문에 암호문 데이터베이스에서 이진 검색이 가능하며, 따라서 검색에 소요되는 시간을 감소시키는 것이 가능하도록 암호문 검색을 수행할 수 있다는 효과가 있다.
또한, 본 발명의 일 실시예는 기존의 데이터베이스에서 암호문의 추가 및 삭제가 가능하기 때문에 동적인 데이터베이스에서 적용하는 것이 가능한, 이진 검색을 고려한 암호화 및 검색 프로세스를 수행하는 것을 가능하게 한다는 효과가 있다.
또한, 본 발명의 일 실시예는 임의의 길이의 키워드와, CMAC(cipher-based message authentication code) 및 AES(advanced encryption standard)를 기반으로 토큰을 생성하기 때문에 키워드의 길이에 제한이 없다는 효과가 있다.
또한, 본 발명의 일 실시예는 CMAC 및 AES 등과 같은 범용적으로 사용되는 안전한 암호학적 프리미티브(primitive)를 사용하여 암호화 프로세스를 수행하기 때문에, 비교적 높은 안전성을 보장할 수 있다.
본 발명의 특정한 바람직한 실시예들의 상기에서 설명한 바와 같은 또한 다른 측면들과, 특징들 및 이득들은 첨부 도면들과 함께 처리되는 하기의 설명으로부터 보다 명백하게 될 것이다:
도 1은 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 BuildIndex 프로세스를 개략적으로 도시한 도면이다;
도 2는 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 Search 프로세스를 개략적으로 도시한 도면이다;
도 3은 본 발명의 일 실시예에 따른 이진 검색을 기반으로 하는 암호화 프로세스의 키워드 암호화 프로세스를 개략적으로 도시한 도면이다;
도 4는 도 3의 키워드 암호화 프로세스의 일 예를 개략적으로 도시한 도면이다;
도 5는 도 3의 키워드 암호화 프로세스의 다른 예를 개략적으로 도시한 도면이다;
도 6은 본 발명의 일 실시예에 따른 이진 검색 방식을 기반으로 하는 암호화 프로세스의 파일 암호화 프로세스를 개략적으로 도시한 도면이다;
도 7은 본 발명의 일 실시예에 따른 이진 검색 방식을 기반으로 하는 암호화 프로세스의 검색 프로세스를 개략적으로 도시한 도면이다;
도 8은 본 발명의 일 실시예에 따른 키워드 암호화 프로세스 및 파일 암호화 프로세스를 개략적으로 도시한 도면이다;
도 9는 본 발명의 일 실시예에 따른 검색 프로세스를 개략적으로 도시한 도면이다;
도 10은 본 발명의 일 실시예에 따른 사용자 디바이스의 내부 구조를 개략적으로 도시한 도면이다;
도 11은 본 발명의 일 실시예에 따른 서버의 내부 구조를 개략적으로 도시한 도면이다.
상기 도면들을 통해, 유사 참조 번호들은 동일한 혹은 유사한 엘리먼트들과, 특징들 및 구조들을 도시하기 위해 사용된다는 것에 유의해야만 한다.
첨부되는 도면들을 참조하는 하기의 상세한 설명은 청구항들 및 청구항들의 균등들로 정의되는 본 개시의 다양한 실시예들을 포괄적으로 이해하는데 있어 도움을 줄 것이다. 하기의 상세한 설명은 그 이해를 위해 다양한 특정 구체 사항들을 포함하지만, 이는 단순히 예로서만 간주될 것이다. 따라서, 해당 기술 분야의 당업자는 여기에서 설명되는 다양한 실시예들의 다양한 변경들 및 수정들이 본 개시의 범위 및 사상으로부터 벗어남이 없이 이루어질 수 있다는 것을 인식할 것이다. 또한, 공지의 기능들 및 구성들에 대한 설명은 명료성 및 간결성을 위해 생략될 수 있다.
하기의 상세한 설명 및 청구항들에서 사용되는 용어들 및 단어들은 문헌적 의미로 한정되는 것이 아니라, 단순히 발명자에 의한 본 개시의 명료하고 일관적인 이해를 가능하게 하도록 하기 위해 사용될 뿐이다. 따라서, 해당 기술 분야의 당업자들에게는 본 개시의 다양한 실시예들에 대한 하기의 상세한 설명은 단지 예시 목적만을 위해 제공되는 것이며, 첨부되는 청구항들 및 상기 청구항들의 균등들에 의해 정의되는 본 개시를 한정하기 위해 제공되는 것은 아니라는 것이 명백해야만 할 것이다.
또한, 본 명세서에서 명백하게 다른 내용을 지시하지 않는 "한"과, "상기"와 같은 단수 표현들은 복수 표현들을 포함한다는 것이 이해될 수 있을 것이다. 따라서, 일 예로, "컴포넌트 표면(component surface)"은 하나 혹은 그 이상의 컴포넌트 표현들을 포함한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 별도로 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 이해되어야만 한다.
본 발명의 다양한 실시예들에 따르면, 전자 디바이스는 통신 기능을 포함할 수 있다. 일 예로, 전자 디바이스는 스마트 폰(smart phone)과, 태블릿(tablet) 개인용 컴퓨터(personal computer: PC, 이하 'PC'라 칭하기로 한다)와, 이동 전화기와, 화상 전화기와, 전자책 리더(e-book reader)와, 데스크 탑(desktop) PC와, 랩탑(laptop) PC와, 넷북(netbook) PC와, 개인용 복합 단말기(personal digital assistant: PDA, 이하 'PDA'라 칭하기로 한다)와, 휴대용 멀티미디어 플레이어(portable multimedia player: PMP, 이하 'PMP'라 칭하기로 한다)와, 엠피3 플레이어(mp3 player)와, 이동 의료 디바이스와, 카메라와, 웨어러블 디바이스(wearable device)(일 예로, 헤드-마운티드 디바이스(head-mounted device: HMD, 일 예로 'HMD'라 칭하기로 한다)와, 전자 의류와, 전자 팔찌와, 전자 목걸이와, 전자 앱세서리(appcessory)와, 전자 문신, 혹은 스마트 워치(smart watch) 등이 될 수 있다.
본 발명의 다양한 실시예들에 따르면, 전자 디바이스는 통신 기능을 가지는 스마트 가정용 기기(smart home appliance)가 될 수 있다. 일 예로, 상기 스마트 가정용 기기는 텔레비젼과, 디지털 비디오 디스크(digital video disk: DVD, 이하 'DVD'라 칭하기로 한다) 플레이어와, 오디오와, 냉장고와, 에어 컨디셔너와, 진공 청소기와, 오븐과, 마이크로웨이브 오븐과, 워셔와, 드라이어와, 공기 청정기와, 셋-탑 박스(set-top box)와, TV 박스 (일 예로, Samsung HomeSyncTM, Apple TVTM, 혹은 Google TVTM)와, 게임 콘솔(gaming console)과, 전자 사전과, 캠코더와, 전자 사진 프레임 등이 될 수 있다.
본 발명의 다양한 실시예들에 따르면, 전자 디바이스는 의료 기기(일 예로, 자기 공명 혈관 조영술(magnetic resonance angiography: MRA, 이하 'MRA'라 칭하기로 한다) 디바이스와, 자기 공명 화상법(magnetic resonance imaging: MRI, 이하 "MRI"라 칭하기로 한다)과, 컴퓨터 단층 촬영(computed tomography: CT, 이하 'CT'라 칭하기로 한다) 디바이스와, 촬상 디바이스, 혹은 초음파 디바이스)와, 네비게이션(navigation) 디바이스와, 전세계 위치 시스템(global positioning system: GPS, 이하 'GPS'라 칭하기로 한다) 수신기와, 사고 기록 장치(event data recorder: EDR, 이하 'EDR'이라 칭하기로 한다)와, 비행 기록 장치(flight data recorder: FDR, 이하 'FER'이라 칭하기로 한다)와, 자동차 인포테인먼트 디바이스(automotive infotainment device)와, 항해 전자 디바이스(일 예로, 항해 네비게이션 디바이스, 자이로스코프(gyroscope), 혹은 나침반)와, 항공 전자 디바이스와, 보안 디바이스와, 산업용 혹은 소비자용 로봇(robot) 등이 될 수 있다.
본 발명의 다양한 실시예들에 따르면, 전자 디바이스는 통신 기능을 포함하는, 가구와, 빌딩/구조의 일부와, 전자 보드와, 전자 서명 수신 디바이스와, 프로젝터와, 다양한 측정 디바이스들(일 예로, 물과, 전기와, 가스 혹은 전자기 파 측정 디바이스들) 등이 될 수 있다.
본 발명의 다양한 실시예들에 따르면, 전자 디바이스는 상기에서 설명한 바와 같은 디바이스들의 조합이 될 수 있다. 또한, 본 발명의 바람직한 실시예들에 따른 전자 디바이스는 상기에서 설명한 바와 같은 디바이스에 한정되는 것이 아니라는 것은 당업자에게 자명할 것이다.
본 발명의 일 실시예는 이진 검색(binary search)을 고려한 암호화(encryption) 및 검색(search) 장치 및 그 방법을 제안한다.
또한, 본 발명의 일 실시예는 데이터베이스(database)가 변경될 경우에도 적용 가능한, 이진 검색을 고려한 암호화 및 검색 장치 및 그 방법을 제안한다.
또한, 본 발명의 일 실시예는 키워드(keyword)의 추가 및 삭제가 가능한, 이진 검색을 고려한 암호화 및 검색 장치 및 그 방법을 제안한다.
또한, 본 발명의 일 실시예는 키워드의 길이가 제한되지 않는 것이 가능한, 이진 검색을 고려한 암호화 및 검색 장치 및 그 방법을 제안한다.
한편, 본 발명의 일 실시예에서 제안하는 장치 및 방법은 롱 텀 에볼루션 (long-term evolution: LTE, 이하 "LTE"라 칭하기로 한다) 이동 통신 시스템과, 롱 텀 에볼루션-어드밴스드 (long-term evolution-advanced: LTE-A, 이하 "LTE-A"라 칭하기로 한다) 이동 통신 시스템과, 인가-보조 억세스(licensed-assisted access: LAA, 이하 " LAA"라 칭하기로 한다)-LTE 이동 통신 시스템과, 고속 하향 링크 패킷 접속(high speed downlink packet access: HSDPA, 이하 "HSDPA"라 칭하기로 한다) 이동 통신 시스템과, 고속 상향 링크 패킷 접속(high speed uplink packet access: HSUPA, 이하 "HSUPA"라 칭하기로 한다) 이동 통신 시스템과, 3세대 프로젝트 파트너쉽 2(3rd generation partnership project 2: 3GPP2, 이하 "3GPP2"라 칭하기로 한다)의 고속 레이트 패킷 데이터(high rate packet data: HRPD, 이하 "HRPD"라 칭하기로 한다) 이동 통신 시스템과, 3GPP2의 광대역 코드 분할 다중 접속(wideband code division multiple access: WCDMA, 이하 "WCDMA"라 칭하기로 한다) 이동 통신 시스템과, 3GPP2의 코드 분할 다중 접속(code division multiple access: CDMA, 이하 "CDMA"라 칭하기로 한다) 이동 통신 시스템과, 국제 전기 전자 기술자 협회(institute of electrical and electronics engineers: IEEE, 이하 "IEEE"라 칭하기로 한다) 802.16m 통신 시스템과, IEEE 802.16e 통신 시스템과, 진화된 패킷 시스템(evolved packet system: EPS, 이하 "EPS"라 칭하기로 한다)과, 모바일 인터넷 프로토콜(mobile internet protocol: Mobile IP, 이하 "Mobile IP"라 칭하기로 한다) 시스템과, 디지털 멀티미디어 방송(digital multimedia broadcasting, 이하 "DMB"라 칭하기로 한다) 서비스와, 휴대용 디지털 비디오 방송(digital video broadcasting-handheld: DVP-H, 이하 "DVP-H"라 칭하기로 한다), 및 모바일/휴대용 진화된 텔레비젼 시스템 협회(advanced television systems committee-mobile/handheld: ATSC-M/H, 이하 "ATSC-M/H"라 칭하기로 한다) 서비스 등과 같은 모바일 방송 서비스와, 인터넷 프로토콜 텔레비젼(internet protocol television: IPTV, 이하 "IPTV"라 칭하기로 한다) 서비스와 같은 디지털 비디오 방송 시스템과, 엠펙 미디어 트랜스포트(moving picture experts group (MPEG) media transport: MMT, 이하 "MMT"라 칭하기로 한다) 시스템 등과 같은 다양한 통신 시스템들에 적용 가능하다.
클라우드 스토리지 서비스(cloud storage service)에서와 같이, 사용자 디바이스가 데이터, 일 예로 파일에 대해서 미리 암호화한 후, 상기 암호화된 파일을 서버에 업로드할 경우, 서버는 사용자 디바이스가 업로드한, 암호화된 파일에 대해서 억세스할 수 없다. 따라서, 데이터에 대한 보안은 확실이 보장되지만, 이로 인해 기존에 사용되고 있던 검색 프로세스들을 사용하는 것은 불가능해진다.
따라서, 이와 같은 이슈(issue)를 해결하기 위해 기존에 사용되고 있던 검색 프로세스들을 암호화된 데이터에 대해서도 적용할 수 있도록 하는 검색 가능 암호화(searchable encryption, 이하 "searchable encryption"라 칭하기로 한다) 프로세스에 대한 연구가 활발하게 진행되고 있다.
상기 searchable encryption 프로세스는 암호문 전체를 디코딩하지 않고도 사용자 디바이스가 생성한 키워드(keyword)를 포함하는 암호문을 검색할 수 있는 프로세스며, 이에 대해서 구체적으로 설명하면 다음과 같다.
먼저, 상기 searchable encryption 프로세스는 3개의 프로세스들, 즉 인덱스 생성(BuildIndex, 이하 "BuildIndex"라 칭하기로 한다) 프로세스와, 검색 토큰 생성(Trapdoor, 이하 "Trapdoor"라 칭하기로 한다) 프로세스와, 검색(Search, 이하 " Search"라 칭하기로 한다) 프로세스를 포함한다. 상기 BuildIndex 프로세스와, Trapdoor 프로세스와, Search 프로세스 각각에 대해서 설명하면 다음과 같다.
첫 번째로, 상기 BuildIndex 프로세스에 대해서 설명하면 다음과 같다.
상기 BuildIndex 프로세스에서, 사용자 디바이스는 평문의 데이터베이스 DB = (M1, ... , Mn) 와 데이터베이스의 키워드 집합 W = w1, ... , wm을 입력으로 하며, 비밀키(secret key) K를 기반으로 암호문 검색에 필요한 정보를 포함하는 인덱스 I를 생성한다.
두 번째로, 상기 Trapdoor 프로세스에 대해서 설명하기로 한다.
상기 Trapdoor 프로세스에서, 사용자 디바이스는 검색하고자 하는 키워드 W를 기반으로 생성된 술어 f를 입력으로 하고, 비밀키 K를 기반으로 검색 토큰 T ( T = TrapdoorK(f))을 생성한다.
세 번째로, 상기 Search 프로세스에 대해서 설명하기로 한다.
상기 Search 프로세스에서, 서버는 사용자 디바이스로부터 제공받은 검색 토큰 T와 인덱스 I를 입력으로 하고, 해당 검색 토큰의 술어를 포함하는 암호문의 위치 정보 id를 생성한다.
따라서, 사용자 디바이스는 상기 BuildIndex 프로세스에서 생성된 인덱스와 암호화된 데이터를 클라우드 스토리지 서버에 업로드한다. 이후, 상기 사용자 디바이스는 상기 Trapdoor프로세스에서 생성된 검색 토큰을 쿼리(query)를 통해 상기 클라우드 스토리지 서버로 송신하고, 상기 클라우드 스토리지 서버는 상기 사용자 디바이스로부터 수신한 검색 토큰과 상기 사용자 디바이스가 업로드한 인덱스를 기반으로 Search 프로세스를 수행한다. 상기 클라우드 스토리지 서버는 상기 Search 프로세스를 수행함에 따라 암호문의 위치 정보를 검출할 수 있으며, 상기 위치 정보를 기반으로 해당 암호문을 검출하고, 상기 검출한 암호문을 상기 사용자 디바이스로 송신한다.
그러면 여기서 상기 BuildIndex 프로세스와 Search 프로세스를 도 1 및 도 2를 참조하여 설명하기로 한다.
먼저, 도 1을 참조하여 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 BuildIndex 프로세스에 대해서 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 BuildIndex 프로세스를 개략적으로 도시한 도면이다.
도 1을 참조하면, 먼저 인덱스는 어레이(array) A와 테이블(table) T를 포함한다. 상기 어레이 A는 각각 키워드를 포함하는 암호문들의 식별자(identifier, 이하, "identifier"라 칭하기로 한다)를 암호화한 후, 상기 암호화된 식별자를 어레이 형태로 저장하고 있다. 또한, 상기 테이블 T는 상기 어레이 A에 포함되어 있는 첫 번째 노드(node)의 위치와 복호화 키(decryption key) Ki를 저장하고 있다.
상기 테이블 T에서는 해당 키워드에 대해 의사 랜덤 순열(pseudo random permutation: PRP, 이하 "PRP"라 칭하기로 한다)을 적용하여 계산된 값을 어드레스(address) 값으로 갖는 위치에 상기 어레이 A가 포함하는 첫 번째 노드의 어드레스 값과 복호화 키가 저장된다. 상기 어레이 A는 각 키워드에 대해 링크되는 리스트(linked list) 형태로 구성되며, 각 노드에는 암호문의 identifier Di와, 다음 노드의 복호화 키와, 다음 노드의 어드레스 값이 저장된다.
도 1에는 일 예로 3개의 키워드들, 일 예로 "Austin"과, "Baltimore"와, "Washington"과 같은 3개의 키워드들이 사용될 경우의 BuildIndex 프로세스가 도시되어 있는 것이며, 테이블 T는 상기 3개의 키워들 각각에 대한, 어레이 A가 포함하는 첫 번째 노드의 어드레스 값과 복호화 키를 저장하며, 상기 어레이 A는 상기 3개의 키워들 각각에 대한 암호문의 identifier Di와, 다음 노드의 복호화 키와, 다음 노드의 어드레스 값을 저장한다.
또한, 도 1에서 "P"는 PRP를 나타내며, "F"는 의사 랜덤 함수(Pseudo Random Function: PRF, 이하 "PRF"라 칭하기로 한다)를 나타낸다.
도 1에서는 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 BuildIndex 프로세스에 대해서 설명하였으며, 다음으로 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 Trapdoor 프로세스에 대해서 설명하기로 한다.
먼저, 상기 Trapdoor 프로세스에서 Trapdoor는 해당 키워드에 대한 PRP 값 및 PRF 값이 된다. 따라서, 사용자 디바이스가 검색 동작을 수행할 경우, 검색하고자 하는 키워드에 대한 PRP 값 및 PRF값을 검출하고, 상기 검출한 PRP 값 및 PRF값을 서버로 송신한다.
상기에서는 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 Trapdoor 프로세스에 대해서 설명하였으며, 다음으로 도 2를 참조하여 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 Search 프로세스에 대해서 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 searchable encryption 프로세스의 Search 프로세스를 개략적으로 도시한 도면이다.
도 2를 참조하면, 먼저 서버는 테이블 T에서 Trapdoor 중 PRP값을 어드레스 값으로 가지는 노드를 검색하고, PRF값을 복호화 키로 사용하여 복호화 한다. 상기 복호화된 노드에는 어레이 A의 노드 어드레스 값과 복호화 키가 저장되어 있다. 따라서, 상기 노드 어드레스 값에 상응하는 노드를 상기 복호화 키를 기반으로 복호화하면 암호문 identifier, 다음 노드의 어드레스 값, 복호화 키가 저장되어 있다.
이와 같은 방식으로 다음 노드가 존재하지 않을 때까지 암호문 identifier들을 검색하고, 해당 암호문들을 사용자 디바이스로 송신한다.
도 2에는 사용자 디바이스(211)가 키워드로 "Baltimore"를 사용할 경우의 Search 프로세스가 도시되어 있는 것이다. 상기 사용자 디바이스(211)는 상기 키워드 "Baltimore"에 상응하는 어드레스 값, 일 예로 상기 키워드 "Baltimore"에 대한 PRP 값과, 상기 키워드 "Baltimore"에 상응하는 복호화 키, 일 예로 상기 키워드 "Baltimore"에 대한 PRF 값을 기반으로 Trapdoor 프로세스를 수행하고, 이에 따라 생성된 검색 토큰을 클라우드 스토리지 서버(213)으로 송신한다. 상기 클라우드 스토리지 서버(213)는 상기 사용자 디바이스(211)로부터 수신한 검색 토큰을 기반으로 Search 프로세스를 수행하고, 상기 Search 프로세스에 따른 결과, 즉 검출된 암호문들을 상기 사용자 디바이스(211)로 송신한다.
상기에서 설명한 바와 같은 searchable encryption 프로세스는 고정된 데이터베이스에 적용될 수 있으며, 따라서 데이터베이스에 새로운 암호문을 추가하거나 혹은 데이터베이스로부터 기존의 암호문을 삭제하고자 할 경우, 사용자 디바이스는 인덱스를 새롭게 생성해야만 한다. 즉, 상기 사용자 디바이스는 암호문이 추가되거나 혹은 암호문이 삭제된 데이터베이스에 대해 BuildIndex 프로세스를 다시 수행해야 한다.
또한, 상기 searchable encryption 프로세스에서는, 키워드의 길이와 테이블 T가 포함하는 노드의 어드레스 값 길이가 동일하도록 규정되어 있으며, 따라서 상기 키워드의 길이에 대한 제한이 존재한다.
따라서, 본 발명의 일 실시예에서는 이진 검색을 고려한 암호화 및 검색 프로세스를 제안하며, 이에 대해서 간략하게 설명하면 다음과 같다.
먼저, 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스는 키 생성 프로세스와, 키워드 암호화 프로세스와, 파일 암호화 프로세스 및 검색 프로세스를 포함한다. 상기 키 생성 프로세스와, 키워드 암호화 프로세스와, 파일 암호화 프로세스 및 검색 프로세스 각각에 대해서 설명하면 다음과 같다.
첫 번째로, 상기 키 생성 프로세스에 대해서 설명하면 다음과 같다.
먼저, 상기 키 생성 프로세스에서, 사용자 디바이스는 키워드 암호화 및 파일 암호화에 사용되는 키들을 생성한다. 또한, 검색 프로세스에서, 상기 사용자 디바이스는 상기 키 생성 프로세스에서 생성된 키들을 기반으로 Trapdoor를 생성하고 암호문을 복호화 할 수 있다.
두 번째로, 상기 키워드 암호화 프로세스에 대해서 설명하면 다음과 같다.
먼저, 데이터베이스에 파일 이름과 파일이 저장된 어드레스와, 상기 파일이 포함하는 키워드들이 저장되어 있을 경우, 상기 키워드 암호화 프로세스에서 사용자 디바이스는 상기 키워드들과 어드레스에 대한 새로운 테이블을 생성한 후, 상기 키워드들에 대해서는 결정적 암호화(deterministic encryption, 이하 "deterministic encryption"라 칭하기로 한다) 프로세스를 적용하여 암호화하고, 어드레스에 대해서는 확률적 암호화(probabilistic encryption, 이하 "probabilistic encryption"라 칭하기로 한다) 프로세스를 적용하여 암호화한다. 그리고 나서, 상기 사용자 디바이스는 상기 키워드들과 어드레스 각각에 대한 암호문을 상기 데이터베이스에 저장한다. 이때, 상기 사용자 디바이스는 상기 키워드들에 대한 암호문들을 일 예로 오름차순으로 재정렬한 후 상기 데이터베이스에 저장한다. 여기서, 상기 키워드들에 대한 암호문들을 재정렬하는 다양한 방식들이 존재할 수도 있음은 물론이며, 본 발명의 일 실시예에서는 일 예로 오름차순으로 상기 키워드들에 대한 암호문들을 재정렬하는 것임에 유의하여야만 할 것이다.
세 번째로, 상기 파일 암호화 프로세스에 대해서 설명하면 다음과 같다.
먼저, 데이터베이스에 저장되는 파일에 대한 암호화 프로세스는 무결성(integrity)과 기밀성(confidentiality)을 동시에 제공하기 위해 인증 암호화(authenticated encryption) 프로세스를 기반으로 한다. 상기 파일 암호화 프로세스에서 인증 암호는 평문 및 암호문에 연관된 데이터를 함께 패키징(packaging)함으로써 상기 연관된 데이터를 위조 및 변조하지 못하도록 하는 AEAD(authenticated encryption with associated data)가 될 수 있다.
네 번째로, 상기 검색 프로세스에 대해서 설명하면 다음과 같다.
먼저, 서버, 일 예로 클라우드 스토리지 서버는 사용자 디바이스로부터 키워드를 수신하면, 상기 수신한 키워드에 대해 deterministic encryption 프로세스를 적용하여 암호화함으로써 재정렬된 키워드들과 어드레스 테이블에서 이진 검색 프로세스를 기반으로 검색 동작을 수행한다.
상기 검색 동작 수행 결과, 키워드 암호문과 일치하는 저장된 키워드 암호문이 존재할 경우, 상기 클라우드 스토리지 서버는 해당하는 어드레스 암호문을 복호화하여 파일의 어드레스를 검출하고, 상기 검출한 어드레스에 저장되어 있는 파일의 암호문을 상기 사용자 디바이스로 송신한다.
한편, 상기 키 생성 프로세스와, 키워드 암호화 프로세스와, 파일 암호화 프로세스 및 검색 프로세스 각각에 대해서 다시 한번 구체적으로 설명하면 다음과 같다.
첫 번째로, 상기 키 생성 프로세스에서 사용자 디바이스는 CMAC(cipher-based message authentication code) 키인 키 1(Key 1, 이하 "Key 1"이라 칭하기로 한다)과 AES(advanced encryption standard) 키들인 키 2(Key 2, 이하 "Key 2"라 칭하기로 한다)와, 키 3(Key 3, 이하 "Key 3"이라 칭하기로 한다)과, 키 4(Key 4, 이하 "Key 4"이라 칭하기로 한다)를 생성한다.
두 번째로, 도 3을 참조하여 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 키워드 암호화 프로세스에 대해서 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 키워드 암호화 프로세스를 개략적으로 도시한 도면이다.
먼저, 상기 키워드 암호화 프로세스에서, 사용자 디바이스는 데이터베이스에 저장된 파일의 어드레스 값과, 파일 및 상기 파일이 포함하는 키워드들로부터 키워드와 어드레스 값에 대한 새로운 테이블을 생성한다. 그리고 나서, 상기 사용자 디바이스는 키워드에 대해서는 deterministic encryption 프로세스를 적용하여 암호화하고, 어드레스에 대해서는 probabilistic encryption 프로세스를 적용하여 암호화한다. 그리고 나서, 상기 사용자 단말기는 생성된 키워드 암호문들을 일 예로 오름차순으로 정렬하여 새로운 데이터베이스에 저장한다. 여기서, 상기 키워드들에 대한 암호문들을 재정렬하는 다양한 방식들이 존재할 수도 있음은 물론이며, 본 발명의 일 실시예에서는 일 예로 오름차순으로 상기 키워드들에 대한 암호문들을 재정렬하는 것임에 유의하여야만 할 것이다.
도 3에는 일 예로 데이터베이스에 n개의 파일들, 일 예로 파일 1 내지 파일 n이 존재할 경우의 키워드 암호화 프로세스가 도시되어 있으며, 상기 파일 1 내지 파일 n의 어드레스는 각각 어드레스 1(addr1) 내지 어드레스 n(addrn)이다. 또한, 도 3에는 파일 1에 대한 키워드들이 3개이고, 파일 2에 대한 키워드가 1개이고, 파일 3에 대한 키워드가 1개이고, ... , 파일 n에 대한 키워드가 1개일 경우의 키워드 암호화 프로세스가 도시되어 있는 것이다.
상기 파일 1 내지 파일 n에 대해, 사용자 디바이스가 키워드에 대해서는 deterministic encryption 프로세스를 적용하여 암호화하고, 어드레스에 대해서는 probabilistic encryption 프로세스를 적용하여 암호화함에 따라, 상기 파일 1에 대한 3개의 키워드 암호문들은 144544와, 875451과, 975945가 되며, 상기 파일 2에 대한 1개의 키워드 암호문은 474272가 되며, 상기 파일 3에 대한 1개의 키워드 암호문은 144544가 되며, ... , 이런 식으로 마지막 파일인 파일 n에 대한 1개의 키워드 암호문은 975945가 된다.
그리고 나서, 상기 사용자 단말기는 생성된 키워드 암호문들을 오름차순으로 정렬하여 새로운 데이터베이스에 저장하므로, 키워드 암호문 144544와 어드레스 1이 상기 데이터베이스의 첫 번째 노드에 저장되고, 키워드 암호문 144544와 어드레스 3이 상기 데이터베이스의 두 번째 노드에 저장되고, 키워드 암호문 474272와 어드레스 2가 상기 데이터베이스의 세 번째 노드에 저장되고, 키워드 암호문 875451과 어드레스 1이 상기 데이터베이스의 네 번째 노드에 저장되고, ... , 이런 식으로 마지막 키워드 암호문인 975945와 어드레스 n이 상기 데이터베이스의 마지막 노드에 저장된다.
도 3에서는 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 키워드 암호화 프로세스에 대해서 설명하였으며, 다음으로 도 4를 참조하여 도 3의 키워드 암호화 프로세스의 일 예에 대해서 설명하기로 한다.
도 4는 도 3의 키워드 암호화 프로세스의 일 예를 개략적으로 도시한 도면이다.
도 4를 참조하면, 먼저 도 4에 도시되어 있는 키워드 암호화 프로세스는 키워드에 적용되는 deterministic encryption 프로세스를 나타내며, 상기 deterministic encryption 프로세스는 CMAC-then-Encrypt 프로세스를 기반으로 한다.
상기 CMAC-then-Encrypt 프로세스를 기반으로 하는 deterministic encryption 프로세스는 임의의 길이를 가지는 키워드를 입력으로 하며, 키 Key1를 사용하여 128비트(bit)의 CMAC값을 계산한다. 상기 CMAC값은 다시 키 Key2를 이용하여 AES 알고리즘을 기반으로 암호화되고, 따라서 키워드 암호문 Token으로 생성된다. 여기서, 상기 키워드 암호문 Token은 128비트 길이를 가진다.
도 4에서는 도 3의 키워드 암호화 프로세스의 일 예에 대해서 설명하였으며, 다음으로 도 5를 참조하여 도 3의 키워드 암호화 프로세스의 다른 예에 대해서 설명하기로 한다.
도 5는 도 3의 키워드 암호화 프로세스의 다른 예를 개략적으로 도시한 도면이다.
도 5를 참조하면, 먼저 도 5에 도시되어 있는 키워드 암호화 프로세스는 어드레스에 적용되는 probabilistic encryption 프로세스를 나타낸다. 상기 probabilistic encryption 프로세스는 일정한 길이를 갖는 파일의 어드레스를 입력으로 하고, 키 Key3을 사용하여 AES 알고리즘으로 암호화하여 상기 어드레스의 암호문 Ciphertexts을 초기 벡터 값(IV)과 함께 출력한다.
도 5에서는 도 3의 키워드 암호화 프로세스의 다른 예에 대해서 설명하였으며, 다음으로 도 6을 참조하여 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 파일 암호화 프로세스에 대해서 설명하기로 한다.
도 6은 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 파일 암호화 프로세스를 개략적으로 도시한 도면이다.
도 6을 참조하면, 먼저 데이터베이스에 저장되어 있는 파일들은 무결성과 기밀성을 함께 보장해 줄 수 있는 인증 암호를 사용하여 암호화되어야 하며, 따라서 상기 파일들에 대해서는 파일 암호화 프로세스가 적용된다. 상기 파일 암호화 프로세스는 AEAD 암호화 알고리즘을 기반으로 하며, 상기 AEAD 암호화 알고리즘은 암호화 알고리즘과 복호화 알고리즘을 포함한다. 상기 암호화 알고리즘은 AEAD_Encrypt (K, N, A, M)으로 표현될 수 있으며, 따라서 총 4개의 입력 값들을 필요로 한다. 여기서, 상기 4개의 입력 값들 K, N, A, M 각각에 대해서 설명하면 다음과 같다.
첫 번째로, K는 파일 암호화에 사용되는 비밀키를 나타낸다. 여기서, 비밀키를 생성하는 다양한 방식들이 존재할 수 있으며, 이에 대한 구체적인 설명은 생략하기로 한다.
두 번째로, N은 넌스(nonce, 이하 "nonce"라 칭하기로 한다)를 나타내며, 상기 nonce는 일회성 숫자(one-time number)로서, 암호화 알고리즘마다 중복되지 않도록 사용된다.
세 번째로, A는 연관 데이터(associated data)를 나타내며, 상기 연관 데이터는 인터넷 프로토콜(internet protocol: IP, 이하 "IP"라 칭하기로 한다) 어드레스나 혹은 패킷 정보 등과 같이 노출되는 것이 무방한 데이터를 나타낸다.
네 번째로, M은 실제로 암호화되는 메시지를 나타낸다.
사용자 단말기는 데이터베이스에 저장되는 파일에 대해 파일 암호화 프로세스를 적용하기 위해서는 각 파일에 독립적인 파일 번호를 부여하고, 상기 각 파일에 부여되는 파일 번호가 상기 N값이 된다.
또한, 상기 사용자 단말기는 해당 파일에 대한 어드레스와 같이 노출되어도 무방한 값을 상기 A 값으로 할당한다. 여기서, 상기 A값에 대응되는 값을 생성하는 것이 어렵다면, 상기 A 값의 경우 널(null)로 간주할 수도 있음은 물론이다. 또한, 상기 사용자 단말기는 실제로 암호화되는 메시지에 상기 M값을 적용할 수 있다.
한편, 상기 사용자 단말기는 파일 암호화 프로세스에서 암호화 모드로 AES-GCM(Galois-Counter Mode) 모드를 사용하여 데이터베이스를 암호화한다.
따라서, 도 6을 참조하여 본 발명의 일 실시예에 따른 파일 암호화 프로세스에 대해서 구체적으로 설명하면 다음과 같다.
먼저, 파일 암호화 프로세스에서 파일 번호 N과, 어드레스 값 A와, 파일 M이 입력된다. 도 6에서, 상기 파일 번호 N은 "1"이고, 상기 어드레스 값 A는 "addr1"이고, 파일 M은 "파일 1"이라고 가정하기로 한다.
그러면, 상기 파일 암호화 프로세스는 상기 입력된 파일 번호 N과, 어드레스 값 A와, 파일 M과 키 Key4를 AES-GCM 모드에 상응하게 암호화하여 상기 파일 M을 암호화하고, 상기 암호화된 파일 M을 데이터베이스에 저장한다.
도 6에서는 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 파일 암호화 프로세스에 대해서 설명하였으며, 다음으로 도 7을 참조하여 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 검색 프로세스에 대해서 설명하기로 한다.
도 7은 본 발명의 일 실시예에 따른 이진 검색을 고려한 암호화 및 검색 프로세스의 검색 프로세스를 개략적으로 도시한 도면이다.
도 7을 참조하면, 먼저 서버, 일 예로 클라우드 스토리지 서버는 사용자 디바이스로부터 검색하고자 하는 키워드를 수신하면, 상기 수신한 키워드에 대해 deterministic encryption 프로세스를 적용하여 암호화함으로써 상기 키워드에 대한 토큰을 생성하고, 데이터베이스에서 이진 검색 프로세스를 기반으로 상기 키워드에 대한 토큰과 동일한 토큰에 매핑되어 있는 어드레스 값에 상응하는 암호문들을 검색한다. 이렇게 검색된 암호문들을 복호화하고, 상기 복호화된 어드레스에 해당하는 암호문들을 상기 사용자 디바이스로 송신한다.
도 7에 도시되어 있는 본 발명의 일 실시예에 따른 검색 프로세스는 키워드에 대해 deterministic encryption 프로세스가 적용되어 생성된 키워드 암호문, 즉 토큰이 875451일 경우의 검색 프로세스임에 유의하여야만 할 것이다. 즉, 서버가 사용자 디바이스로부터 키워드를 수신하면, 상기 서버는 상기 수신된 키워드에 대해 deterministic encryption 프로세스를 적용하고, 상기 deterministic encryption 프로세스에 따라 생성된 키워드 암호문이 875451가 되는 것이다.
그러면, 상기 서버는 상기 서버의 데이터베이스에서 상기 키워드 암호문 875451와 일치하는 키워드 암호문을 가지는 어드레스들을 검색하고, 상기 검색한 어드레스들에 대해 복호화하여 원래의 어드레스 값을 검출한다. 여기서, 상기 데이터베이스에 저장되어 있는 어드레스 값들은 원래의 어드레스 값들에 비해 probabilistic encryption 프로세스가 적용되어 있는 것이므로 상기 서버는 복호화 동작을 수행하는 것이다. 상기 서버는 상기 검출한 원래의 어드레스에 상응하는 파일에 대해서 다시 복호화한 후 상기 복호화된 파일을 상기 사용자 디바이스로 송신한다.
한편, 본 발명의 일 실시예에서는 사용자 디바이스와 서버가 별도의 엔터티들로 구현된 경우에서 이진 검색을 고려하는 암호화 및 검색 프로세스에 대해서 설명하고 있으며, 또한 상기 사용자 디바이스가 상기 서버에 데이터 베이스를 저장하는 경우를 일 예로 하여 설명하고 있으나, 이와는 달리 사용자 디바이스와 서버는 동일한 엔터티에 구현될 수도 있음은 물론이다.
도 7에서는 본 발명의 일 실시예에 따른 이진 검색을 고려하는 암호화 및 검색 프로세스의 검색 프로세스에 대해서 설명하였으며, 다음으로 도 8을 참조하여 본 발명의 일 실시예에 따른 키워드 암호화 프로세스 및 파일 암호화 프로세스에 대해서 설명하기로 한다.
도 8은 본 발명의 일 실시예에 따른 키워드 암호화 프로세스 및 파일 암호화 프로세스를 개략적으로 도시한 도면이다.
도 8을 참조하면, 먼저 사용자 디바이스(810)는 키 생성 프로세스를 기반으로 키를 키워드 암호화 및 파일 암호화에 사용되는 키들을 생성하며(811단계), 이에 대해서는 상기에서 구체적으로 설명하였으므로 여기서는 그 상세한 설명을 생략하기로 한다. 여기서, 상기 사용자 디바이스(810)는 총 4개의 키들, 일 예로 Key 1과, Key 2와, Key 3 및 Key 4를 생성한다고 가정하기로 한다.
상기 사용자 디바이스(810)는 데이터베이스에 파일 이름과 파일이 저장된 어드레스와, 상기 파일이 포함하는 키워드들이 저장되어 있을 경우, 상기 키워드들과 어드레스에 대한 새로운 테이블을 생성한 후, 상기 키워드들에 대해서는 deterministic encryption 프로세스를 적용하여 암호화하고(813단계), 어드레스에 대해서는 probabilistic encryption 프로세스를 적용하여 암호화한다(815단계). 여기서, 상기 키워드 암호화 프로세스 및 파일 암호화 프로세스에 대해서는 상기에서 구체적으로 설명하였으므로 여기서는 그 상세한 설명을 생략하기로 한다.
그리고 나서, 상기 사용자 디바이스(810)는 상기 키워드들과 어드레스 각각에 대한 암호문을 상기 데이터베이스에 저장한다. 이때, 상기 사용자 디바이스는 상기 키워드들에 대한 암호문들을 일 예로 오름차순으로 재정렬한 후 상기 데이터베이스에 저장한다. 즉, 상기 사용자 디바이스(810)는 키워드들 및 어드레스들에 대한 암호문들이 저장되어 있는 키워드 암호화 데이터베이스(database: DB)를 생성한다(817단계).
그리고 나서, 상기 사용자 디바이스(810)는 인증 암호화 프로세스를 기반으로 파일에 대한 암호화 프로세스를 수행하여 파일들에 대한 암호문들을 생성하고, 상기 파일들에 대한 암호문들이 저장되어 있는 파일 암호문 데이터베이스를 생성한다(819단계).상기 사용자 디바이스(810)는 상기 생성된 키워드 암호문 데이터베이스와 파일 암호문 데이터 베이스를 서버(850)로 업로드(upload)한다(830단계).
상기 서버(850)는 상기 사용자 디바이스(810)로부터 수신한 키워드 암호문 데이터베이스와 파일 암호문 데이터 베이스를 저장한다(851단계, 853단계).
도 8에서는 본 발명의 일 실시예에 따른 키워드 암호화 프로세스 및 파일 암호화 프로세스에 대해서 설명하였으며, 다음으로 도 9를 참조하여 본 발명의 일 실시예에 따른 검색 프로세스에 대해서 설명하기로 한다.
도 9는 본 발명의 일 실시예에 따른 검색 프로세스를 개략적으로 도시한 도면이다.
도 9를 참조하면, 먼저 사용자 디바이스(810)는 검색하고자 하는 키워드가 발생함을 검출하면, 상기 키워드에 대한 검색 토큰을 생성한 후, 상기 검색 토큰을 서버(850)로 송신한다(911단계). 상기 서버(850)는 상기 사용자 디바이스(810)로부터 수신한 검색 토큰에 상응하게 검색 프로세스를 수행하여(913단계), 해당하는 암호문을 검색하고, 상기 검색한 암호문을 상기 사용자 디바이스(810)로 송신한다(915단계). 여기서, 상기 검색 프로세스에 대해서는 상기에서 구체적으로 설명하였으므로 여기서는 그 상세한 설명을 생략하기로 한다.
도 9에서는 본 발명의 일 실시예에 따른 검색 프로세스에 대해서 설명하였으며, 다음으로 도 10을 참조하여 본 발명의 일 실시예에 따른 사용자 디바이스의 내부 구조에 대해서 설명하기로 한다.
도 10은 본 발명의 일 실시예에 따른 사용자 디바이스의 내부 구조를 개략적으로 도시한 도면이다.
도 10을 참조하면, 사용자 디바이스(1000)는 송신기(1011)와, 제어기(1013)와, 수신기(1015)와, 저장 유닛(1017)을 포함한다.
먼저, 상기 제어기(1013)는 상기 사용자 디바이스(1000)의 전반적인 동작을 제어하며, 특히 본 발명의 일 실시예에 따른 이진 검색을 고려하는 암호화 및 검색 프로세스를 수행하는 동작과 관련된 동작을 제어한다. 본 발명의 일 실시예에 따른 이진 검색을 고려하는 암호화 및 검색 프로세스를 수행하는 동작과 관련된 동작에 대해서는 도 1 내지 도 9에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
상기 송신기(1011)는 상기 제어기(1013)의 제어에 따라 다른 디바이스, 일 예로 서버, 일 예로 클라우드 스토리지 서버 등으로 각종 신호들 및 각종 메시지들을 송신한다. 여기서, 상기 송신기(1011)가 송신하는 각종 신호들 및 각종 메시지들은 도 1 내지 도 9에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
또한, 상기 수신기(1015)는 상기 제어기(1013)의 제어에 따라 다른 디바이스, 일 예로 서버, 일 예로 클라우드 스토리지 서버 등으로부터 각종 신호들 및 각종 메시지들을 수신한다. 여기서, 상기 수신기(1015)가 수신하는 각종 신호 및 각종 메시지들은 도 1 내지 도 9에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
상기 저장 유닛(1017)은 상기 제어기(1013)의 제어에 따라 상기 사용자 디바이스(1000)가 수행하는 본 발명의 일 실시예에 따른 이진 검색을 고려하는 암호화 및 검색 프로세스를 수행하는 동작과 관련된 프로그램과 각종 데이터 등을 저장한다.
또한, 상기 저장 유닛(1017)은 상기 수신기(1015)가 상기 서버 등으로부터 수신한 각종 신호 및 각종 메시지들을 저장한다.
한편, 도 10에는 상기 사용자 디바이스(1000)가 상기 송신기(1011)와, 제어기(1013)와, 수신기(1015)와, 저장 유닛(1017)과 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 사용자 디바이스(1000)는 상기 송신기(1011)와, 제어기(1013)와, 수신기(1015)와, 저장 유닛(1017) 중 적어도 두 개가 통합된 형태로 구현 가능함은 물론이다.
또한, 상기 사용자 디바이스(1000)는 1개의 프로세서로 구현될 수도 있음은 물론이다.
도 10에서는 본 발명의 일 실시예에 따른 사용자 디바이스의 내부 구조에 대해서 설명하였으며, 다음으로 도 11을 참조하여 본 발명의 일 실시예에 따른 서버의 내부 구조에 대해서 설명하기로 한다.
도 11은 본 발명의 일 실시예에 따른 서버의 내부 구조를 개략적으로 도시한 도면이다.
도 11을 참조하면, 서버(1100)는 송신기(1111)와, 제어기(1113)와, 수신기(1115)와, 저장 유닛(1117)을 포함한다.
먼저, 상기 제어기(1113)는 상기 서버(1100)의 전반적인 동작을 제어하며, 특히 본 발명의 일 실시예에 따른 이진 검색을 고려하는 암호화 및 검색 프로세스를 수행하는 동작과 관련된 동작을 제어한다. 본 발명의 일 실시예에 따른 이진 검색을 고려하는 암호화 및 검색 프로세스를 수행하는 동작과 관련된 동작에 대해서는 도 1 내지 도 9에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
상기 송신기(1111)는 상기 제어기(1113)의 제어에 따라 다른 디바이스, 일 예로 사용자 디바이스 등으로 각종 신호들 및 각종 메시지들을 송신한다. 여기서, 상기 송신기(1111)가 송신하는 각종 신호들 및 각종 메시지들은 도 1 내지 도 9에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
또한, 상기 수신기(1115)는 상기 제어기(1113)의 제어에 따라 다른 디바이스, 일 예로 사용자 디바이스 등으로부터 각종 신호들 및 각종 메시지들을 수신한다. 여기서, 상기 수신기(1115)가 수신하는 각종 신호 및 각종 메시지들은 도 1 내지 도 9에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
상기 저장 유닛(1117)은 상기 제어기(1113)의 제어에 따라 상기 서버(1100)가 수행하는 본 발명의 일 실시예에 따른 이진 검색을 고려하는 암호화 및 검색 프로세스를 수행하는 동작과 관련된 프로그램과 각종 데이터 등을 저장한다.
또한, 상기 저장 유닛(1117)은 상기 수신기(1115)가 상기 사용자 디바이스 등으로부터 수신한 각종 신호 및 각종 메시지들을 저장한다.
한편, 도 11에는 상기 서버(1100)가 상기 송신기(1111)와, 제어기(1113)와, 수신기(1115)와, 저장 유닛(1117)과 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 서버(1100)는 상기 송신기(1111)와, 제어기(1113)와, 수신기(1115)와, 저장 유닛(1117) 중 적어도 두 개가 통합된 형태로 구현 가능함은 물론이다.
또한, 상기 서버(1100)는 1개의 프로세서로 구현될 수도 있음은 물론이다.
본 발명의 특정 측면들은 또한 컴퓨터 리드 가능 기록 매체(computer readable recording medium)에서 컴퓨터 리드 가능 코드(computer readable code)로서 구현될 수 있다. 컴퓨터 리드 가능 기록 매체는 컴퓨터 시스템에 의해 리드될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 상기 컴퓨터 리드 가능 기록 매체의 예들은 리드 온니 메모리(Read-Only Memory: ROM)와, 랜덤-접속 메모리(Random-Access Memory: RAM)와, CD-ROM들과, 마그네틱 테이프(magnetic tape)들과, 플로피 디스크(floppy disk)들과, 광 데이터 저장 디바이스들, 및 캐리어 웨이브(carrier wave)들(상기 인터넷을 통한 데이터 송신과 같은)을 포함할 수 있다. 상기 컴퓨터 리드 가능 기록 매체는 또한 네트워크 연결된 컴퓨터 시스템들을 통해 분산될 수 있고, 따라서 상기 컴퓨터 리드 가능 코드는 분산 방식으로 저장 및 실행된다. 또한, 본 발명을 성취하기 위한 기능적 프로그램들, 코드, 및 코드 세그먼트(segment)들은 본 발명이 적용되는 분야에서 숙련된 프로그래머들에 의해 쉽게 해석될 수 있다.
또한 본 발명의 일 실시예에 따른 장치 및 방법은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 발명의 일 실시예에 따른 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의해 구현될 수 있고, 상기 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다.
따라서, 본 발명은 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다
또한 본 발명의 일 실시예에 따른 장치는 유선 또는 무선으로 연결되는 프로그램 제공 장치로부터 상기 프로그램을 수신하여 저장할 수 있다. 상기 프로그램 제공 장치는 상기 프로그램 처리 장치가 기 설정된 컨텐츠 보호 방법을 수행하도록 하는 지시들을 포함하는 프로그램, 컨텐츠 보호 방법에 필요한 정보 등을 저장하기 위한 메모리와, 상기 그래픽 처리 장치와의 유선 또는 무선 통신을 수행하기 위한 통신부와, 상기 그래픽 처리 장치의 요청 또는 자동으로 해당 프로그램을 상기 송수신 장치로 전송하는 제어부를 포함할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형할 수 있음은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 암호화 프로세스를 수행하는 방법에 있어서,
    키워드(keyword) 암호화 및 파일 암호화에 사용되는, 다수 개의 키들을 생성하는 과정과,
    다수 개의 파일들이 저장되어 있는 어드레스(address)들 각각에 대해 제1 암호화 프로세스를 수행하여 어드레스 암호문을 생성하는 과정과,
    상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대해 제2 암호화 프로세스를 수행하여 키워드 암호문을 생성하는 과정과,
    상기 키워드 암호문들을 기반으로 상기 어드레스 암호문들과 키워드 암호문들을 재정렬하고, 상기 재정렬된 어드레스 암호문들과 키워드 암호문들을 저장하는 과정을 포함함을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  2. 제1항에 있어서,
    상기 다수 개의 파일들 각각에 대해 제3 암호화 프로세스를 수행하여 파일 암호문들을 생성하고, 상기 생성된 파일 암호문들을 저장하는 과정을 더 포함함을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  3. 제1항에 있어서,
    상기 제2 암호화 프로세스가 결정적 암호화(deterministic encryption) 프로세스임을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  4. 제1항에 있어서,
    상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대해 제2 암호화 프로세스를 수행하여 키워드 암호문을 생성하는 과정은:
    상기 제2 암호화 프로세스가 결정적 암호화(deterministic encryption) 프로세스이고, 상기 결정적 암호화 프로세스가 CMAC(cipher-based message authentication code)-then-Encrypt 프로세스를 기반으로 할 경우, 상기 다수 개의 키워드들 각각과, 상기 다수 개의 키들 중 제1 키를 기반으로 CMAC 값을 검출하는 과정과;
    상기 CMAC 값들 각각과 상기 다수 개의 키들 중 제2 키에 대해 AES(advanced encryption standard) 알고리즘을 적용하여 키워드 암호문을 생성하는 과정을 포함함을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  5. 제1항에 있어서,
    상기 제1 암호화 프로세스가 확률적 암호화(probabilistic encryption) 프로세스임을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  6. 제1항에 있어서,
    상기 다수 개의 파일들이 저장되어 있는 어드레스들 각각에 대해 제1 암호화 프로세스를 수행하여 어드레스 암호문을 생성하는 과정은:
    상기 제1 암호화 프로세스가 확률적 암호화(probabilistic encryption) 프로세스일 경우, 상기 어드레스들 각각과, 상기 다수 개의 키들 중 제3 키에 대해 AES(advanced encryption standard) 알고리즘을 적용하여 어드레스 암호문을 생성하는 과정을 포함함을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  7. 제1항에 있어서,
    상기 제3 암호화 프로세스는 AEAD(authenticated encryption with associated data) 알고리즘을 기반으로 함을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  8. 제1항에 있어서,
    상기 다수 개의 파일들 각각에 대해 제3 암호화 프로세스를 수행하여 파일 암호문들을 생성하는 과정은:
    상기 제3 암호화 프로세스가 AEAD(authenticated encryption with associated data) 알고리즘을 기반으로 할 경우, 상기 다수 개의 키들 중 제4키와, 넌스(nonce)와, 연관 데이터(associated data)와, 상기 다수 개의 파일들 각각을 기반으로 상기 다수 개의 파일들 각각에 대한 파일 암호문을 생성하는 과정을 포함함을 특징으로 하는 암호화 프로세스를 수행하는 방법.
  9. 검색 프로세스를 수행하는 방법에 있어서,
    사용자 디바이스로부터 키워드(keyword)를 수신하는 과정과,상기 키워드에 대해 제1 암호화 프로세스를 수행하여 키워드 암호문을 생성하는 과정과,
    다수 개의 파일들이 저장되어 있는 어드레스들 각각에 대한 어드레스 암호문과, 상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대한 키워드 암호문과, 상기 다수 개의 파일들 각각에 대한 파일 암호문이 저장되어 있는 데이터베이스(database)로부터 상기 키워드 암호문과 일치하는 키워드 암호문에 상응하는 파일 암호문을 검색하는 과정을 포함함을 특징으로 하는 검색 프로세스를 수행하는 방법.
  10. 제9항에 있어서,
    상기 키워드에 대해 제1 암호화 프로세스를 수행하여 키워드 암호문을 생성하는 과정은:
    상기 제1 암호화 프로세스가 결정적 암호화(deterministic encryption) 프로세스이고, 상기 결정적 암호화 프로세스가 CMAC(cipher-based message authentication code)-then-Encrypt 프로세스를 기반으로 할 경우, 상기 키워드와 키워드 암호화 및 파일 암호화에 사용되는, 다수 개의 키들 중 제1 키를 기반으로 CMAC 값을 검출하는 과정과;
    상기 CMAC 값과 상기 다수 개의 키들 중 제2 키에 대해 AES(advanced encryption standard) 알고리즘을 적용하여 키워드 암호문을 생성하는 과정을 포함함을 특징으로 하는 검색 프로세스를 수행하는 방법.
  11. 제9항에 있어서,
    상기 키워드 암호문과 일치하는 키워드 암호문에 상응하는 파일 암호문을 검색하는 과정은:
    이진 검색(binary search) 방식을 기반으로 상기 데이터베이스에 저장되어 있는 키워드 암호문들 중 상기 키워드 암호문과 일치하는 키워드 암호문을 검출하는 과정과;
    상기 검출한 키워드 암호문에 상응하는 파일 암호문을 검색하는 과정을 포함함을 특징으로 하는 검색 프로세스를 수행하는 방법.
  12. 제9항에 있어서,
    상기 데이터베이스에 저장되어 있는 어드레스 암호문들과 키워드 암호문들은 키워드 암호문들을 기반으로 재정렬된 것임을 특징으로 하는 검색 프로세스를 수행하는 방법.
  13. 암호화 프로세스를 수행하는 장치에 있어서,
    키워드(keyword) 암호화 및 파일 암호화에 사용되는, 다수 개의 키들을 생성하고, 다수 개의 파일들이 저장되어 있는 어드레스(address)들 각각에 대해 제1 암호화 프로세스를 수행하여 어드레스 암호문을 생성하고, 상기 다수 개의 파일들 각각이 포함하는, 다수 개의 키워드들 각각에 대해 제2 암호화 프로세스를 수행하여 키워드 암호문을 생성하고, 상기 키워드 암호문들을 기반으로 상기 어드레스 암호문들과 키워드 암호문들을 재정렬하고, 상기 재정렬된 어드레스 암호문들과 키워드 암호문들을 저장하는 프로세서를 포함함을 특징으로 하는 암호화 프로세스를 수행하는 장치.
  14. 제13항에 있어서,
    상기 프로세서는:
    상기 다수 개의 파일들 각각에 대해 제3 암호화 프로세스를 수행하여 파일 암호문들을 생성하고, 상기 생성된 파일 암호문들을 저장함을 특징으로 하는 암호화 프로세스를 수행하는 장치.
  15. 제13항에 있어서,
    상기 제2 암호화 프로세스가 결정적 암호화(deterministic encryption) 프로세스임을 특징으로 하는 암호화 프로세스를 수행하는 장치.
  16. 제13항에 있어서,
    상기 프로세서는:
    상기 제2 암호화 프로세스가 결정적 암호화(deterministic encryption) 프로세스이고, 상기 결정적 암호화 프로세스가 CMAC(cipher-based message authentication code)-then-Encrypt 프로세스를 기반으로 할 경우, 상기 다수 개의 키워드들 각각과, 상기 다수 개의 키들 중 제1 키를 기반으로 CMAC 값을 검출하고, 상기 CMAC 값들 각각과 상기 다수 개의 키들 중 제2 키에 대해 AES(advanced encryption standard) 알고리즘을 적용하여 키워드 암호문을 생성함을 특징으로 하는 암호화 프로세스를 수행하는 장치.
  17. 제13항에 있어서,
    상기 제1 암호화 프로세스가 확률적 암호화(probabilistic encryption) 프로세스임을 특징으로 하는 암호화 프로세스를 수행하는 장치.
  18. 제13항에 있어서,
    상기 프로세서는:
    상기 제1 암호화 프로세스가 확률적 암호화(probabilistic encryption) 프로세스일 경우, 상기 어드레스들 각각과, 상기 다수 개의 키들 중 제3 키에 대해 AES(advanced encryption standard) 알고리즘을 적용하여 어드레스 암호문을 생성함을 특징으로 하는 암호화 프로세스를 수행하는 장치.
  19. 제13항에 있어서,
    상기 제3 암호화 프로세스는 AEAD(authenticated encryption with associated data) 알고리즘을 기반으로 함을 특징으로 하는 암호화 프로세스를 수행하는 장치.
  20. 제13항에 있어서,
    상기 프로세서는:
    상기 제3 암호화 프로세스가 AEAD(authenticated encryption with associated data) 알고리즘을 기반으로 할 경우, 상기 다수 개의 키들 중 제4키와, 넌스(nonce)와, 연관 데이터(associated data)와, 상기 다수 개의 파일들 각각을 기반으로 상기 다수 개의 파일들 각각에 대한 파일 암호문을 생성함을 특징으로 하는 암호화 프로세스를 수행하는 장치.
KR1020160035697A 2016-03-25 2016-03-25 암호화 및 검색 장치 및 그 방법 KR102449816B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160035697A KR102449816B1 (ko) 2016-03-25 2016-03-25 암호화 및 검색 장치 및 그 방법
US15/468,931 US10523417B2 (en) 2016-03-25 2017-03-24 Apparatus for encryption and search and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160035697A KR102449816B1 (ko) 2016-03-25 2016-03-25 암호화 및 검색 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20170111022A true KR20170111022A (ko) 2017-10-12
KR102449816B1 KR102449816B1 (ko) 2022-10-04

Family

ID=59896549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160035697A KR102449816B1 (ko) 2016-03-25 2016-03-25 암호화 및 검색 장치 및 그 방법

Country Status (2)

Country Link
US (1) US10523417B2 (ko)
KR (1) KR102449816B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108759026A (zh) * 2018-06-07 2018-11-06 广州市奥因环保科技有限公司 智能空气管理系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019011A (zh) * 2017-11-20 2019-07-16 中移(杭州)信息技术有限公司 一种密文检索方法及设备
JP6840692B2 (ja) * 2018-02-22 2021-03-10 株式会社日立製作所 計算機システム、接続装置、及びデータ処理方法
CN112042150B (zh) * 2018-05-08 2024-02-23 三菱电机株式会社 登记装置、服务器装置、隐匿检索系统、隐匿检索方法及计算机可读取的记录介质
CN108718334B (zh) * 2018-05-11 2020-06-26 电子科技大学 一种基于车联网群体感知的网络感知数据安全上传方法
CN111726404A (zh) * 2020-06-14 2020-09-29 深圳市赛宇景观设计工程有限公司 一种基于物联网的数据采集的方法与系统
CN113795023B (zh) * 2021-09-26 2024-03-19 深圳市芯中芯科技有限公司 一种基于混沌序列和分组加密的蓝牙数据传输加密方法
CN114826733B (zh) * 2022-04-19 2024-01-05 中国工商银行股份有限公司 文件传输方法、装置、系统、设备、介质以及程序产品
CN116779003B (zh) * 2023-06-21 2023-12-08 广州市动易网络科技有限公司 用于硬盘数据销毁和安全性评估的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004140757A (ja) * 2002-10-21 2004-05-13 Toshiba Corp コンテンツの暗号化方法及び暗号化されたデータを復号化する復号化方法並びにその装置
JP2010061103A (ja) * 2008-05-30 2010-03-18 Nec (China) Co Ltd 高速検索可能な暗号化のための方法、装置およびシステム
KR20120069387A (ko) * 2010-12-20 2012-06-28 고려대학교 산학협력단 공개키 기반의 키워드 검색 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770462A (zh) * 2008-12-30 2010-07-07 日电(中国)有限公司 用于密文索引和检索的装置和方法
US8930691B2 (en) * 2011-08-16 2015-01-06 Microsoft Corporation Dynamic symmetric searchable encryption
KR101398216B1 (ko) 2012-10-19 2014-05-22 숭실대학교산학협력단 검색 가능한 암호화 방법 및 암호화된 데이터 검색방법
US20140223010A1 (en) * 2013-02-01 2014-08-07 David Alan Hayner Data Compression and Encryption in Sensor Networks
US9342705B1 (en) * 2014-01-13 2016-05-17 Symantec Corporation Systems and methods for searching shared encrypted files on third-party storage systems
US9769664B1 (en) * 2014-09-04 2017-09-19 Sensys Networks Nonce silent and replay resistant encryption and authentication wireless sensor network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004140757A (ja) * 2002-10-21 2004-05-13 Toshiba Corp コンテンツの暗号化方法及び暗号化されたデータを復号化する復号化方法並びにその装置
JP2010061103A (ja) * 2008-05-30 2010-03-18 Nec (China) Co Ltd 高速検索可能な暗号化のための方法、装置およびシステム
KR20120069387A (ko) * 2010-12-20 2012-06-28 고려대학교 산학협력단 공개키 기반의 키워드 검색 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108759026A (zh) * 2018-06-07 2018-11-06 广州市奥因环保科技有限公司 智能空气管理系统
CN108759026B (zh) * 2018-06-07 2020-07-03 广州市奥因环保科技有限公司 智能空气管理系统

Also Published As

Publication number Publication date
US10523417B2 (en) 2019-12-31
KR102449816B1 (ko) 2022-10-04
US20170279605A1 (en) 2017-09-28

Similar Documents

Publication Publication Date Title
KR102449816B1 (ko) 암호화 및 검색 장치 및 그 방법
US10645430B2 (en) Reducing time to first encrypted frame in a content stream
US9537918B2 (en) File sharing with client side encryption
KR101883816B1 (ko) 클라이언트 디바이스 상에서의 다수의 디지털 저작권 관리 프로토콜 지원 기술
CN104113534A (zh) 应用程序app的登录系统及方法
KR101697868B1 (ko) 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치
WO2018054144A1 (zh) 对称密钥动态生成方法、装置、设备及系统
CN111767550A (zh) 数据存储方法和装置
US11387984B1 (en) Sharing grouped data in an organized storage system
US11770243B2 (en) Grouping data in an organized storage system
KR101812311B1 (ko) 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법
US11502826B1 (en) Stateless system to encrypt and decrypt data
CN108985109A (zh) 一种数据存储方法及装置
US11528131B1 (en) Sharing access to data externally
US11818109B1 (en) Secure synchronization of data
Lee et al. Hybrid app security protocol for high speed mobile communication
US20240070294A1 (en) Secure synchronization of data
US11646874B2 (en) Organized data storage system
US11526281B1 (en) Sharing data in an organized storage system
US11983419B2 (en) Sharing data in an organized storage system
KR102244764B1 (ko) 데이터 저장장치 및 데이터 저장장치의 동작 방법
CN114599032A (zh) 基于盐值加密的短信传输方法、装置、设备和介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant