KR101302137B1 - 대칭 키 기반 검색 가능 암호 방법 - Google Patents

대칭 키 기반 검색 가능 암호 방법 Download PDF

Info

Publication number
KR101302137B1
KR101302137B1 KR1020090125540A KR20090125540A KR101302137B1 KR 101302137 B1 KR101302137 B1 KR 101302137B1 KR 1020090125540 A KR1020090125540 A KR 1020090125540A KR 20090125540 A KR20090125540 A KR 20090125540A KR 101302137 B1 KR101302137 B1 KR 101302137B1
Authority
KR
South Korea
Prior art keywords
data
index
encryption
stored
keyword
Prior art date
Application number
KR1020090125540A
Other languages
English (en)
Other versions
KR20110068542A (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 KR1020090125540A priority Critical patent/KR101302137B1/ko
Priority to US12/962,047 priority patent/US8812867B2/en
Publication of KR20110068542A publication Critical patent/KR20110068542A/ko
Application granted granted Critical
Publication of KR101302137B1 publication Critical patent/KR101302137B1/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
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Abstract

본 발명의 대칭 키 기반 검색 가능 암호 방법은, 필요한 모든 변수를 설정하고 암호화에 필요한 비밀키를 준비하는 단계; 비밀키와 주어진 자료를 이용하여 자료를 암호화하고 향후 검색에 사용될 인덱스를 생성하여 암호화된 자료와 인덱스를 저장하는 단계; 비밀키와 검색하고자 하는 키워드를 이용하여 암호화된 자료의 검색에 사용될 트랩도어를 생성하는 단계; 및 주어진 트랩도어와 저장하고 있는 인덱스를 이용하여 원하는 자료를 검색하는 단계를 포함한다.
검색 가능 암호(Searchable Encryption), 키워드 검색(Keyword Search), 범위 검색(Range Search), 링크드 리스트(Linked list), 링크드 그래프(Linked Graph)

Description

대칭 키 기반 검색 가능 암호 방법{Method for Searchable Symmetric Encryption}
본 발명은 대칭 키 기반 검색 가능 암호 방법에 관한 것으로, 보다 상세하게는, 링크드 그래프를 이용하여 효율적인 범위 검색을 제공하는 대칭 키 기반 검색 가능 암호 방법에 관한 것이다.
본 발명은 지식경제부의 유비쿼터스원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2005-Y-001-05, 과제명:차세대 시큐리티 기술 개발].
현대 사회는 모든 정보를 디지털화하여 저장하고 저장된 정보를 네트워크를 통해 공유하여 사용하는 사회로 변화하고 있다. 또한, 처리하는 자료의 양이 증가하고 다양한 서비스에 대한 요구가 늘어나면서 특화된 외부 저장 공간의 활용이 늘고 있다.
이와 더불어 이러한 외부 저장 공간에 저장된 정보에 대한 보안 문제가 이슈가 되고 있다. 외부 저장 공간에서의 보안 문제는 과거 개인이 독립된 저장 공간을 이용하여 스스로 정보를 관리하던 때와는 차이를 보인다. 이는 근본적으로 정보의 소유자와 저장 공간을 관리하는 주체가 서로 다르기 때문이다. 데이터 베이스 등에서 정보를 보호하기 위해 주로 사용되는 접근 제어나 키 관리 기법들은 외부 침입자를 막는데 유효한 방법이지만 저장 공간의 관리자가 저장되어 있는 자료를 열람하는 것을 근본적으로 방지하지 못한다.
정보를 안전하게 저장하기 위한 방법으로 자료의 암호화를 생각할 수 있다. 즉, 외부 저장 공간에 저장할 정보를 안전성이 증명된 암호 시스템을 이용하여 암호화하는 것이다. 안전성이 증명된 암호 시스템은 복호화 키를 소유하지 못한 공격자가 암호문으로부터 저장된 정보를 얻을 수 없다는 것을 보장한다. 따라서, 외부 침입자 또는 저장 공간의 관리자가 저장된 암호문에 접근했다 하더라도 실제 의미 있는 정보를 얻지는 못한다는 것을 의미한다. 정보의 암호화는 저장된 정보의 기밀성을 완벽하게 보장하는 방법이지만, 기존 데이터베이스가 제공하는 많은 부가 기능 또한 적용할 수 없도록 만든다. 저장된 정보의 양이 많을수록 이를 효율적으로 활용하고 관리하기 위해서는 다양한 데이터베이스 기능이 요구되기 때문에 정보를 단순히 암호화하여 저장하는 방법은 적당한 해법이라 보기 힘들다.
검색 가능 암호 기술은 기존의 암호 기술과 같이 암호화된 정보에 대한 기밀성을 보장하면서 동시에 특정 키워드를 포함하는 자료를 검색할 수 있도록 고안된 암호 기술이다. 데이터베이스에서 제공되는 다양한 기능 중 많은 경우가 특정 키워드를 포함하는 정보에 대한 검색을 바탕으로 이루어지기 때문에 검색 가능 암호 시스템은 앞에서 제기된 문제에 대한 해결 방안 중 하나로 여겨지고 있다.
검색 가능 암호 시스템에서 자료의 검색은 키워드 단위로 이루어진다. 즉, 특정 키워드와 사용자의 비밀 키를 바탕으로 하여 트랩도어(trapdoor)를 생성하고, 이 트랩도어를 이용하여 특정 키워드를 포함하고 있는 자료를 검색하는 방식이다. 검색은 서버에 의해서 이루어지며, 서버가 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 해당 키워드를 포함하고 있는지의 여부를 확인한다.
범위 검색이란 사용자가 원하는 범위에 포함되는 키워드에 대한 검색을 동시에 수행하는 것을 의미한다. 이는 주어진 범위에 포함되는 각각의 키워드에 대한 개별적인 검색을 반복적으로 수행하는 것과는 근본적인 차이가 있다. 우선, 각각의 키워드에 대한 검색을 별도로 수행하는 것은 비효율적인데, 검색하고자 하는 범위가 클 경우 각각의 키워드에 대한 트랩도어의 계산 및 전송 그리고 검색하는 과정 등을 고려하면 이러한 비효율성은 더욱 두드러진다. 또한, 각각의 키워드에 대한 개별 검색은 사용자가 원하는 것보다 많은 정보를 서버가 알게 되는 안전성의 문제도 야기한다. 즉, [a,b]에 대한 검색을 수행하여 {I1,I2,...,In}의 결과를 얻은 경우, 서버는 여기에서 사용자가 질의한 범위에 n개의 자료가 포함된다는 사실만을 알게 되지만, [a,b]의 질의를 각각의 키워드로 수행한 경우, 범위에 대한 정보와 추가적으로 n개의 자료 사이의 상관관계를 알게 된다.
현재까지 범위 검색에 대한 연구 결과는 많지 않다. 미국 공개특허 제2005-014724호(System and Method for fast querying of encrypted databases)에는 암호화된 자료에 대한 범위 검색을 지원하는 검색 가능 암호 시스템이 개시되어 있다. 이 방법에서는 자료를 임의의 크기를 지니는 세그먼트로 나누고 세그먼트 단위로 암호화하는 방식(동일 세그먼트에 포함되는 자료는 같은 암호문으로 암호화)을 사용한다. 이러한 방법은 검색 결과에 포함된 폴스 히트(false hit)를 제거하기 위한 후처리 과정이 추가로 필요하며, 암호학적 방법에 비해 낮은 안전성 지니는 단점이 있다.
Boneh 등에 의한 「"Conjunctive, Subset and Range Queries on Encrypted Data", TCC 2007, LNCS 4392, pp. 535-554, 2007」에는 결합 키워드 검색, 서브세트(subset) 검색, 범위 검색에 대한 안전성 모델을 소개하고 그 모델에 의해 안전성이 증명된 다양한 형태의 검색을 지원하는 검색 가능 암호 시스템이 개시되어 있다. 이러한 방법은 공개키 기반의 설계로 증명 가능한 안전성을 제공하지만 겹선형 및 공개키 연산에 많은 시간이 소요된다는 단점이 있다.
Reza 등에 의한「"Searchable Symmetric Encryption Improved Definitions and Efficient Constructions", Proc. of the ACMCCS, Proc. of the 13th ACMCCS 2006, pp. 79 - 88, 2006」에는 링크드 체인(Linked chain)을 바탕으로 한 검색 가능 암호 시스템에 대하여 개시되어 있다. 이 방식은 검색 속도에 있어서 매우 효율적이지만 범위 검색 등의 추가 기능에 대해서는 제시하고 있지 않은 문제가 있다.
본 발명은 상기한 종래 문제점을 해결하기 위하여 발명된 것으로, 해쉬 함수 등의 간단한 일방향 함수의 계산만을 사용하여 링크드 그래프에 의한 효율적인 범 위 검색을 제공하는 대칭 키 기반의 검색 가능 암호 방법을 제공하고자 함에 그 목적이 있다.
검색 가능 암호 기술은 암호화된 자료에 대한 키워드 검색을 가능하게 하는 암호 응용 기술로, 자료들이 암호화되어 저장되기 때문에 자료의 기밀성을 유지할 수 있으면서 원하는 자료를 쉽게 검색할 수 있다는 장점을 지니고 있다.
검색 가능 암호 기술은 기반하는 암호 시스템의 특성에 따라 검색 가능 대칭키 암호 시스템과 검색 가능 공개키 암호 시스템으로 구분할 수 있다.
검색 가능 대칭키 암호 방법은 대칭키 암호를 바탕으로 설계되어 암호화와 검색이 공개키 방식에 비해 효율적이기 때문에 대용량의 데이터베이스에 적합한 방식이다. 단, 대칭키 방식을 사용하기 때문에 비밀키의 소유자(사용자)만이 자료의 암호화 및 검색을 수행할 수 있다는 단점을 지니고 있으며 공개키 암호 방식에 기반한 다양한 부가 기능을 제공할 수 없다는 한계를 지니고 있다. 현재 검색 가능 공개키 암호 방법에서 제공하는 다양한 부가 기능을 제공하는 대칭키 기반 검색 가능 암호 방법에 대한 연구 및 개발이 활발히 진행 중이며, 본 특허에서는 그 중에서 범위 검색기능을 제공하는 대칭키 기반의 검색 가능 암호 방법을 제안한다.
대칭 키 기반 검색 가능 암호 방법은 사전 준비 단계, 암호화 및 인덱스 생성 단계, 트랩도어 생성 단계, 검색 단계의 네 단계로 구성된다.
사전 준비 단계는 사용자가 시스템에 필요한 모든 변수를 설정하고 암호화에 필요한 비밀키를 준비하는 단계이다.
암호화 및 인덱스 생성 단계는 사용자가 자신의 비밀키와 주어진 자료를 이용하여 자료를 암호화하고 향후 검색에 사용될 인덱스를 생성하는 단계이다. 이때, 생성된 암호문과 인덱스는 외부 서버(데이터베이스)에 저장된다.
트랩도어 생성 단계는 사용자가 자신의 비밀키와 검색하고자 하는 키워드를 이용하여 자료의 검색에 사용될 트랩도어를 생성하는 단계로, 서버가 트랩도어로부터 검색하고자 하는 키워드에 대한 정보를 얻을 수 없도록 설계된다. 마지막 검색 단계에서는 서버가 주어진 트랩도어와 저장하고 있는 인덱스를 이용하여 사용자가 원하는 자료를 검색하는 단계이다.
검색 단계에서 서버는 저장된 자료가 사용자가 원하는 자료인지의 여부만을 알 수 있고, 사용자가 검색한 키워드나 저장된 자료의 내용에 대해서는 어떠한 정보도 알 수 없도록 설계된다.
인덱스 생성과 검색이 수행되는 정보의 단위를 키워드라 부르며, 범위 검색은 주어진 범위에 포함되는 모든 키워드와 일치하는 자료를 한 번의 질의로 동시에 검색하는 것을 의미한다. 사용자가 범위 검색을 수행하는 가장 간단한 해결 방법은, 범위에 포함된 각각의 키워드들 사용하여 여러 번 검색을 수행하는 것이지만, 이것은 우선 비효율적이며 또한 각각의 키워드에 대한 결과와 추가 정보를 서버가 알게 되므로 안전성 측면에서도 문제가 있는 방법이다. 이러한 문제를 해결하기 위해서 제안된 방법이 범위 검색(Range Query)이다.
본 발명에서는 2006년 Curtmola 등이 제안한 링크드 리스트(linked list)를 링크드(linked graph)로 확장하여 이를 이용한 범위 검색이 가능한 검색 가능 대칭 키 암호 시스템을 제안한다.
본 발명에 의하면, 기존 범위 검색 방법에서 일반적으로 사용되는 복잡한 공개키 연산을 사용하지 않고 해쉬 함수 등의 간단한 일방향 함수 계산만을 사용하고 있기 때문에 암호화와 트랩도어(Trapdoor) 생성, 검색에 필요한 계산량이 획기적으로 줄어든다. 또한, 기존 방법들이 모든 인덱스에 대한 검사를 수행하는 데에 비해, 링크드 그래프(linked graph) 구조를 사용하여 검색하고자 하는 범위에 포함되는 자료의 인덱스만을 검사하기 때문에 대용량의 데이터베이스에 보다 적합한 검색 가능 암호 방법이라 할 수 있다.
즉, 본 발명은 검색 시간과 계산량이 효율적으로 개선된 범위 검색 기능을 제공한다.
또한, 본 발명은 대용량의 데이터베이스에 적합한 검색 가능 암호 시스템을 제공한다.
또한, 본 발명은 암호학적으로 안전함이 증명된 기법이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 대칭 키 기반 검색 가능 암호 방법에 대하여 상세히 설명한다.
본 발명에 따른 대칭 키 기반 검색 가능 암호 방법(Searchable Symmetric Encryption)의 기본 구조도는 도 1에 나타나 있으며, 사용자의 비밀키 생성 및 사전 준비 단계(S100), 사용자가 자료의 암호화 및 인덱스 생성하고 데이터베이스에 저장하는 단계(S200), 사용자가 주어진 키워드를 사용하여 트랩도어(Trapdoor)를 생성하는 단계(S300), 서버(컴퓨팅 장치)에 의한 검색 단계(S400)로 구성된다.
본 발명에서는 사용자가 서버에 저장하려고 하는 자료의 수를N으로 정의하고, 각각의 자료에 포함된 키워드를 1에서 사이의 정수 값(모든 키워드는 결국 일정한 길이를 지닌 bit string으로 생각할 수 있기 때문에)으로 정의한다. 편의상, 어떤 정수
Figure 112009077852899-pat00001
이 존재하여
Figure 112009077852899-pat00002
을 만족한다고 가정한다. 또한, 각각의 자료는 1부터 사이의 정수를 자료의 구별자(identifier)로 갖는 것으로 가정한다.
또한, 각각의 자료는 1부터 N사이의 정수를 자료의 구별자(identifier)로 갖는 것으로 가정한다.
사용자의 사전 준비 단계(100)에서는 안전성이 증명된 대칭키 암호 시스템 E(λ비트 길이의 비밀키를 사용)와 자료를 암호화할 때 사용할 비밀키k, 그리고 일방향 함수
Figure 112009077852899-pat00003
를 결정한다. 여기에서 비밀키 k와 일방향 함수 f,h 는 사용자만이 아는 비밀 정보이며,
Figure 112009077852899-pat00004
이 다.
암호화 및 인덱스 생성 단계(200)에서 생성되는 인덱스(A)는
Figure 112009077852899-pat00005
×(N+R) 개의 원소로 이루어진 배열이며, A[i] = (IDi, (LDi, LKi), (RDi, RKi))의 형태를 지닌다. IDi는 이 원소에 저장된 구별자(identifier)이며, (LDi, LKi)와 (RDi, RKi)는 다음 원소를 지시하는 두 개의 링크(link)이다. 인덱스 A의 구성 방법은 다음과 같다. 편의상, S를 모든 자료의 집합, Si를 키워드 i (i ∈{1,2, ..., R} )를 포함하는 자료의 집합으로 정의한다.
1. 사용자는 배열 A를 구성하고 각 원소의 모든 값을 'EMPTY' 또는 0로 초기화한다.
2. 사용자는 A와 원소의 개수가 동일한 배열 B를 생성한다. B 의 각각의 원소는 λ비트의 크기를 가지며, 암호화 키를 저장하기 위한 임시 배열로, 'EMPTY'로 초기화한다.
3. 구간의 분할
- 구간 R0,0 = [1, R]을 정의한다.
-
Figure 112009077852899-pat00006
에 대해 t=1부터 t =
Figure 112009077852899-pat00007
까지 다음 작업을 수행한다. 단, d = 0,...,2t-1 이다.
ⅰ) Rt-1,d = [a,b]에 대해서, Et-1,d =
Figure 112009077852899-pat00008
를 계산하고, Rt-1,d 를 두 개의 부분 구간 Rt,2d = [a, Et-1,d] 과 Rt, 2d+1 = [Et-1,d+1, b]로 나눈다.
4. 시작점의 표시: 각각의 t, i (1= t =
Figure 112009077852899-pat00009
, 1= i = R )에 대해 f(t, i)를 계산하고, A[f(t, i)]를 찾는다. A[f(t, i)]를 키워드 i의 t-번째layer에 대한 시작점으로 예약한다, 즉 IDf(t,i)의 값을 'EMPTY'에서 'NONE'으로 변경하고 h(t, i)를 B[f(t, i)]에 저장한다.
5. 각각의 t, i (1= t =
Figure 112009077852899-pat00010
, 1= i = R )에 대해 St,i = Si 로 정의하고 다음의 과정을 수행한다.
- St,i 에서 자료 D를 하나 임의로 선택하여 IDf(t, i)에 저장하고 St,j 에서 자료 D를 삭제한다. 만약, St,i가 공집합이라면, 아래의 모든 과정을 생략하고 다음 t와 i로 넘어간다.
- St,i가 공집합이 될 때까지 다음을 반복한다.
ⅰ) St,i에서 자료 D를 임의로 선택하고, D를 St,i에서 삭제한다.
ⅱ) 배열 A의 원소 중에서 'EMPTY' 원소 A[j]를 임의로 선택하고, 임의의 λ비트 키 kj를 생성한다.
ⅲ) D의 구별자를 IDj 에 저장하고, kj를 B[j]에 저장한다.
ⅳ) A[f(t, i)]에서 시작된 링크드 트리에서 'EMPTY' 링크를 하나 찾아 링크의 값을 (j, kj)로 변경한다.
- 편의를 위해서 위의 방법으로 생성된 링크드 트리를 각각의 t, i에 대해서 Gt,i 로 정의한다.
6. 외부 링크의 연결: 사용자는 모든 Rt,d = [a,b] (1= t =
Figure 112009077852899-pat00011
, 0 = d = 2t-1)에 대해 다음 과정을 수행한다.
- d가 짝수인 경우, Gt,a를 시작점으로 하여, Gt,a, Gt,a+1,...,Gt,b를 오름차순으로 연결한다. 즉, Gt,i의 링크 중, 'EMPTY'인 링크를 찾아 (f(t,i+1), h(t,i+1))을 저장한다.
- d가 홀수인 경우, Gt,b를 시작점으로 하여 Gt,b, Gt,b-1,..., Gt,a를 반대로 내림차순으로 연결한다. 즉, Gt,i의 링크 중, 'EMPTY'인 링크를 찾아 (f(t,i-1), h(t,i-1))을 저장한다.
7. 배열 A와 B원소 중, 비어있는 원소를 임의의 값으로 채운다. 마지막으로, A의 원소 A[j]를 각각 B[j]를 비밀키로 암호화한다. 즉, EB[j](A[j])를 계산한다. A[j]를 EB[j](A[j])로 대체한다.
8. 배열 B를 삭제한다.
각각의 자료 Gi 는 인덱스와 별도로 사용자의 비밀키 k를 이용하여 암호화하고 인덱스와 암호문은 서버에 전송되어 저장된다.
트랩도어 생성 단계(300)에서 사용자는 임의의 검색 범위 [a,b]에 대한 트랩 도어를 생성한다.
1. 사용자는 우선 [a,b]에 적합한
Figure 112009077852899-pat00012
를 다음과 같이 찾는다.
- t=1, R0=[1,R]=[a0, b0]로 초기화한다.
-
Figure 112009077852899-pat00013
를 계산하고, 라면 t값을 저장하고 종료한다.
- Et<a라면 at=Et, bt=bt-1 로, Et>a라면 at=at-1, bt=Et-1로 설정하고 t=t+1로 변경한 후 위 단계로 돌아간다.
2. 상기 단계 1에서 얻어진 t를 가지고 사용자는 트랩도어를 계산한다.
Figure 112009077852899-pat00014
3. 위에서 얻어진 t는 다음과 같은 성질을 갖는다.
- [a,b]를 두 개의 부분 구간[a, Et],[Et+1,b]로 나눌 때, 각각의 부분 구간은
Figure 112009077852899-pat00015
와 같이 연속된 두 구간에 포함된다. (Rt,d, Rt,d+1은 인덱스 생성 단계에서 정의된 구간이다.) 또한, Rt,d 는 오른쪽 방향의 링크드 체인(linked chain)이, Rt,d+1에는 왼쪽 방향의 링크드 체인이 정의되어 있으며, 각각 Et 와 Et+1를 엔드 포인트(end point)로 갖는다.
따라서 a와 b에서 시작해서 Et 와 Et+1에서 끝나는 두 링크드 체인의 값을 검색하면, [a,b]에 포함된 모든 자료를 검색할 수 있다.
검색 단계(400)에서 서버가 사용자로부터 트랩도어
Figure 112009077852899-pat00016
를 전송 받았다고 가정하자.
서버는 우선 배열 A에서 A[f(t,a)]를 찾아, A[f(t,a)]를 h(t,a)를 이용하여 복호화한다.
복호화 결과를
Figure 112009077852899-pat00017
라 할 때, IDV를 검색 결과에 포함시키고 각각의 링크에 대해 검색을 수행한다.
즉, A[LDV]를 찾아서, A[LDV]를 LKV로 복호화하고 저장되어 있는 구별자를 결과 목록에 포함시킨다. 이 과정은 A[v]에서 출발한 모든 링크가 'EMPTY'값을 가질 때까지 계속한다. 마찬가지로 A[f(t,b)]에서 출발한 링크드 체인에 대한 검색도 수행한다. 마지막으로 검색된 모든 자료의 인덱스를 사용자에 전송한다.
본 발명의 일부 단계들은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, CD-RW, 자기 테이프, 플로피디스크, HDD, 광 디스크, 광자기 저장장치 등이 있을 수 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명에 따른 대칭 키 기반 검색 가능 암호 방법의 흐름도이다.
도 2는 본 발명에 사용된 인터벌 트리(interval tree)의 정의를 나타낸 도면이다.
도 3은 본 발명에 사용된 링크드 트리(linked tree)의 구조이다.

Claims (10)

  1. 필요한 모든 변수를 설정하고 암호화에 필요한 비밀키를 준비하는 제1단계;
    상기 비밀키와 주어진 자료를 이용하여 자료를 암호화하고 향후 검색에 사용될 인덱스를 생성하여 상기 암호화된 자료와 상기 인덱스를 저장하는 제2단계;
    상기 비밀키와 검색하고자 하는 키워드를 이용하여 상기 암호화된 자료의 검색에 사용될 트랩도어를 생성하는 제3단계; 및
    상기 주어진 트랩도어와 저장하고 있는 인덱스를 이용하여 원하는 자료를 검색하는 제4단계를 포함하고,
    상기 제2단계에서 생성되는 인덱스(A)는,
    Figure 112013031842556-pat00029
    ×(N+R)(여기서, N은 암호화될 자료의 수이고, R은 각각의 자료에 포함된 키워드를 정의할 최대 정수값이며,
    Figure 112013031842556-pat00030
    Figure 112013031842556-pat00031
    을 만족하는 정수)개의 원소로 이루어진 배열이며, A[i] = (IDi, (LDi, LKi), (RDi, RKi)) [여기서, IDi 는 이 원소에 저장된 구별자이며, (LDi, LKi), 와 (RDi, RKi)는 다음 원소를 지시하는 두 개의 링크(link)]의 형태를 지니는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  2. 청구항 1에 있어서,
    제2단계에서 상기 암호화된 자료와 상기 생성된 인덱스는 데이터베이스에 저장되고,
    제3단계에서 컴퓨팅 장치가 상기 생성된 트랩도어로부터 검색하고자 하는 키워드에 대한 정보를 얻을 수 없도록 설계되는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  3. 청구항 1에 있어서,
    상기 제4단계에서 컴퓨팅 장치는 저장된 암호화된 자료가 사용자가 원하는 자료인지의 여부만을 알 수 있고, 사용자가 검색한 키워드나 저장된 암호화된 자료의 내용에 대해서는 어떠한 정보도 알 수 없는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  4. 삭제
  5. 청구항 1에 있어서,
    상기 인덱스(A)를 생성하는 단계는,
    사용자에 의해 구성된 배열 A 와 원소의 개수가 동일한 배열 B를 생성하는 단계; 및
    상기 배열 A와 B에 대하여 각 원소의 모든 값을 초기화하는 단계를 포함하는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  6. 청구항 5에 있어서,
    상기 B 배열 의 각각의 원소는 λ비트의 크기를 가지며, 암호화 키를 저장하기 위한 임시 배열인 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  7. 청구항 5에 있어서,
    구간 R0,0 = [1, R]을 정의하는 단계; 및
    Figure 112009077852899-pat00021
    에 대해 t=1부터 t =
    Figure 112009077852899-pat00022
    까지, Rt-1,d = [a,b](여기서, d = 0,...,2t-1)에 대해서, Et-1,d =
    Figure 112009077852899-pat00023
    를 계산하고, Rt-1,d 를 두 개의 부분 구간 Rt,2d = [a, Et-1,d] 과 Rt, 2d+1 = [Et-1,d+1, b]로 분할하는 단계를 더 포함하는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  8. 청구항 7에 있어서,
    각각의 t, i (1= t =
    Figure 112009077852899-pat00024
    , 1= i = R )에 대해 f(t, i)를 계산하고 A[f(t, i)]를 찾는 단계; 및
    상기 A[f(t, i)]를 키워드 i의 t-번째layer에 대한 시작점으로 예약하는 단계를 더 포함하는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  9. 청구항 8에 있어서,
    각각의 t, i (1= t =
    Figure 112013031842556-pat00025
    , 1= i = R )에 대해 St,i = Si 로 정의하는 단계; 및
    상기 St,i 에서 자료 D를 하나 임의로 선택하여 IDf(t, i)에 저장하고, 상기 St,i 에서 자료 D를 삭제하는 단계를 더 포함하는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
  10. 청구항 9에 있어서,
    상기 St,i가 공집합이 아닐 경우,
    상기 St,i에서 자료 D를 임의로 선택하고, 자료 D를 상기 St,i에서 삭제하는 단계;
    상기 배열 A의 원소 중에서 초기화된 원소 A[j]를 임의로 선택하는 단계;
    임의의 λ비트 키 kj를 생성하는 단계;
    상기 자료 D의 구별자를 IDj 에 저장하고, kj를 B[j]에 저장하는 단계; 및
    상기 A[f(t, i)]에서 시작된 링크드 트리에서 초기화된 링크를 하나 찾아 링크의 값을 (j, kj)로 변경하는 단계를 더 포함하는 것을 특징으로 하는, 검색 가능 암호화 및 암호화된 자료의 검색 방법.
KR1020090125540A 2009-12-16 2009-12-16 대칭 키 기반 검색 가능 암호 방법 KR101302137B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090125540A KR101302137B1 (ko) 2009-12-16 2009-12-16 대칭 키 기반 검색 가능 암호 방법
US12/962,047 US8812867B2 (en) 2009-12-16 2010-12-07 Method for performing searchable symmetric encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090125540A KR101302137B1 (ko) 2009-12-16 2009-12-16 대칭 키 기반 검색 가능 암호 방법

Publications (2)

Publication Number Publication Date
KR20110068542A KR20110068542A (ko) 2011-06-22
KR101302137B1 true KR101302137B1 (ko) 2013-09-16

Family

ID=44144240

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090125540A KR101302137B1 (ko) 2009-12-16 2009-12-16 대칭 키 기반 검색 가능 암호 방법

Country Status (2)

Country Link
US (1) US8812867B2 (ko)
KR (1) KR101302137B1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5799635B2 (ja) * 2011-07-25 2015-10-28 日本電気株式会社 暗号データ検索システム、装置、方法及びプログラム
KR20130039175A (ko) * 2011-10-11 2013-04-19 한국전자통신연구원 내부자 위협 탐지 장치 및 방법
US9256762B1 (en) 2011-12-20 2016-02-09 Amazon Technologies, Inc. Securing a remote database
US9197613B2 (en) 2011-12-20 2015-11-24 Industrial Technology Research Institute Document processing method and system
US8819408B2 (en) * 2011-12-20 2014-08-26 Industrial Technology Research Institute Document processing method and system
WO2013145627A1 (ja) * 2012-03-29 2013-10-03 日本電気株式会社 暗号化データベースシステム、クライアント端末、データベースサーバ、データ結合方法、および、プログラム
US8832427B2 (en) 2012-03-30 2014-09-09 Microsoft Corporation Range-based queries for searchable symmetric encryption
EP2885732B1 (en) 2012-08-15 2018-04-04 Visa International Service Association Searchable encrypted data
US10007803B2 (en) * 2012-10-26 2018-06-26 Infosys Limited Searching over encrypted keywords in a database
CN102945356B (zh) * 2012-12-12 2015-11-18 上海交通大学 云环境下搜索引擎的访问控制方法及系统
US20140188626A1 (en) * 2012-12-29 2014-07-03 Nokia Corporation Method and apparatus for secure advertising
WO2014114987A1 (en) * 2013-01-25 2014-07-31 Nokia Corporation Personal device encryption
US9852306B2 (en) 2013-08-05 2017-12-26 International Business Machines Corporation Conjunctive search in encrypted data
US9646166B2 (en) * 2013-08-05 2017-05-09 International Business Machines Corporation Masking query data access pattern in encrypted data
IN2014CH00681A (ko) 2014-02-13 2015-08-14 Infosys Ltd
KR20150108516A (ko) * 2014-03-18 2015-09-30 한국전자통신연구원 범위 검색을 위한 복호화가능 인덱스 생성 방법, 검색 방법, 및 복호화 방법
EP3149651B1 (en) * 2014-06-02 2020-04-29 Robert Bosch GmbH System and method for secure review of audit logs
US10361840B2 (en) * 2014-10-21 2019-07-23 Mitsubishi Electric Corporation 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
US9740879B2 (en) * 2014-10-29 2017-08-22 Sap Se Searchable encryption with secure and efficient updates
CN104852801B (zh) * 2015-02-13 2018-02-13 陕西师范大学 一种可搜索的公钥加密方法
CN104899517B (zh) * 2015-05-15 2017-03-29 陕西师范大学 基于短语的可搜索对称加密方法
KR101697868B1 (ko) * 2015-05-19 2017-01-19 포항공과대학교 산학협력단 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치
WO2018039481A1 (en) * 2016-08-24 2018-03-01 Robert Bosch Gmbh Searchable symmetric encryption system and method of processing inverted index
DE112017006020T5 (de) * 2016-12-30 2019-08-14 Robert Bosch Gmbh Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
US10831911B2 (en) 2017-12-19 2020-11-10 Industrial Technology Research Institute Method, computer program product and processing system for generating secure alternative representation
CN108200063B (zh) * 2017-12-29 2020-01-03 华中科技大学 一种可搜索公钥加密方法、采用该方法的系统和服务器
CN108471405A (zh) * 2018-03-07 2018-08-31 中山大学 一种基于云盘的正向保密动态可搜索加密的协议设计方法
CN108595291B (zh) * 2018-04-01 2021-08-31 山东协和学院 一种医疗数据备份系统
CN108768990A (zh) * 2018-05-18 2018-11-06 浙江工商大学 一种基于区块链的可搜索加密方法
US10958415B2 (en) * 2018-07-11 2021-03-23 Informatica Llc Method, apparatus, and computer-readable medium for searching polymorphically encrypted data
US11042650B2 (en) * 2018-12-06 2021-06-22 International Business Machines Corporation Sargable query-predicate evaluation for encrypted databases
US10909261B2 (en) 2018-12-12 2021-02-02 Industrial Technology Research Institute Method and computer program product for generating secure alternative representation for numerical datum
CN109672525B (zh) * 2018-12-14 2020-10-02 华中科技大学 一种具有前向索引的可搜索公钥加密方法及系统
CN109858263B (zh) * 2019-01-21 2021-05-14 北京城市网邻信息技术有限公司 数据存储检索方法、装置、电子设备及存储介质
CN110602064A (zh) * 2019-08-29 2019-12-20 河海大学 一种支持多关键字搜索的基于身份加密方法与系统
CN110765469B (zh) * 2019-09-12 2021-04-20 华中科技大学 一种高效且健壮的动态可搜索对称加密方法及系统
CN111835731B (zh) * 2020-06-19 2021-06-22 北京航空航天大学 新型抗文件注入攻击的动态对称可搜索加密方法和装置
CN116996281B (zh) * 2023-07-21 2024-02-06 华中科技大学 支持密文分享的动态可搜索对称加密方法、系统及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080035295A (ko) * 2006-10-19 2008-04-23 고려대학교 산학협력단 암호화된 데이터베이스 검색 방법 및 그 시스템
KR20090041545A (ko) * 2007-10-24 2009-04-29 한국전자통신연구원 암호화된 수치 데이터 검색 시스템 및 그 방법
KR20090056078A (ko) * 2007-11-29 2009-06-03 주식회사 케이티 사전 공격의 방지를 위한 키 생성 방법과, 그를 이용한검색 가능 암호문 생성 방법 및 데이터 검색 방법
KR20100068042A (ko) * 2008-12-12 2010-06-22 한국전자통신연구원 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395437B2 (en) 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
US8291509B2 (en) * 2008-10-17 2012-10-16 Sap Ag Searchable encryption for outsourcing data analytics
US20100146299A1 (en) * 2008-10-29 2010-06-10 Ashwin Swaminathan System and method for confidentiality-preserving rank-ordered search

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080035295A (ko) * 2006-10-19 2008-04-23 고려대학교 산학협력단 암호화된 데이터베이스 검색 방법 및 그 시스템
KR20090041545A (ko) * 2007-10-24 2009-04-29 한국전자통신연구원 암호화된 수치 데이터 검색 시스템 및 그 방법
KR20090056078A (ko) * 2007-11-29 2009-06-03 주식회사 케이티 사전 공격의 방지를 위한 키 생성 방법과, 그를 이용한검색 가능 암호문 생성 방법 및 데이터 검색 방법
KR20100068042A (ko) * 2008-12-12 2010-06-22 한국전자통신연구원 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법

Also Published As

Publication number Publication date
KR20110068542A (ko) 2011-06-22
US20110145594A1 (en) 2011-06-16
US8812867B2 (en) 2014-08-19

Similar Documents

Publication Publication Date Title
KR101302137B1 (ko) 대칭 키 기반 검색 가능 암호 방법
Kuzu et al. Efficient similarity search over encrypted data
KR101174058B1 (ko) 데이터베이스의 암호화된 데이터 저장 및 검색 방법
KR101190059B1 (ko) 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
KR101190061B1 (ko) 결합 키워드를 이용한 데이터 암호화 방법 및 데이터 검색방법
KR100903599B1 (ko) 내적을 이용한 암호화된 데이터 검색 방법 및 이를 위한단말 장치와 서버
KR101282281B1 (ko) 프라이버시를 보장하는 가중치 기반의 키워드 검색을 위한 방법 및 장치
CN109145079B (zh) 基于个人兴趣用户模型的云端可搜索加密方法
CN112328606B (zh) 基于区块链的关键字可搜索加密方法
US20150270958A1 (en) Decryptable index generation method for range search, search method, and decryption method
CN110457915A (zh) 高效且具有前后向安全性的可搜索对称加密方法及系统
KR101489876B1 (ko) 암호화 문서 검색 시스템 및 방법
KR100899450B1 (ko) 암호화된 문서의 근사 스트링 매칭 방법, 이를 기록한기록매체 및 그 시스템
Wang et al. An efficient and privacy-preserving range query over encrypted cloud data
CN107294701B (zh) 具有高效密钥管理的多维密文区间查询装置及查询方法
Cuzzocrea et al. An effective and efficient technique for supporting privacy-preserving keyword-based search over encrypted data in clouds
CN115412233A (zh) 区块链上基于属性的具有前向和后向隐私的可搜索加密方法及系统
KR101232385B1 (ko) 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
Xue et al. Cuckoo-filter based privacy-aware search over encrypted cloud data
Aritomo et al. A privacy-preserving similarity search scheme over encrypted word embeddings
Pramanick et al. Searchable encryption with pattern matching for securing data on cloud server
Nepolean et al. Privacy preserving ranked keyword search over encrypted cloud data
Ray et al. A public key encryption scheme for string identification
Madane et al. Comparison of privacy preserving single-keyword search and multi-keyword ranked search techniques over encrypted cloud data
Poon et al. A combined solution for conjunctive keyword search, phrase search and Auditing for encrypted cloud storage

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
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20160726

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170727

Year of fee payment: 5