KR20180028226A - Encrypted index based range query processing method and range query processing system - Google Patents

Encrypted index based range query processing method and range query processing system Download PDF

Info

Publication number
KR20180028226A
KR20180028226A KR1020160115636A KR20160115636A KR20180028226A KR 20180028226 A KR20180028226 A KR 20180028226A KR 1020160115636 A KR1020160115636 A KR 1020160115636A KR 20160115636 A KR20160115636 A KR 20160115636A KR 20180028226 A KR20180028226 A KR 20180028226A
Authority
KR
South Korea
Prior art keywords
query
encryption
area
cloud
protocol
Prior art date
Application number
KR1020160115636A
Other languages
Korean (ko)
Other versions
KR101942763B1 (en
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 KR1020160115636A priority Critical patent/KR101942763B1/en
Publication of KR20180028226A publication Critical patent/KR20180028226A/en
Application granted granted Critical
Publication of KR101942763B1 publication Critical patent/KR101942763B1/en

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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F17/30979
    • 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/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

Abstract

The present invention discloses a method and a system for processing an encryption index-based region query, which prevent exposure of additional information and support all data protection and user query protection as well as data access pattern protection in a query processing procedure. According to an embodiment of the present invention, the method for processing an encryption index-based region query comprises the following steps of: encrypting an index tree, and generating an encryption index tree; storing the encryption index tree in a first cloud maintaining an encryption database and an encryption key; storing a decryption key corresponding to the encryption key in a second cloud different from the first cloud; and processing a user query by performing a secure multiparty computation (SMC) between the first cloud and the second cloud based on a selected encryption calculation protocol, when the user query is received from an authorized terminal.

Description

암호화 인덱스 기반 영역 질의 처리 방법 및 영역 질의 처리 시스템{ENCRYPTED INDEX BASED RANGE QUERY PROCESSING METHOD AND RANGE QUERY PROCESSING SYSTEM}TECHNICAL FIELD [0001] The present invention relates to an encryption index based area query processing method and an area query processing system,

본 발명은 클라우드에 아웃소싱된 암호화 데이터베이스 상에서의 영역 질의 처리 알고리즘에 관한 것으로, 암호화 데이터베이스에 대한 사용자 질의를 처리하는 과정에서 노출될 우려가 있는 데이터 접근 패턴의 보호를 지원하기 위한 것이다.Field of the Invention The present invention relates to an area query processing algorithm on an outsourced cryptographic database in a cloud, and is intended to support protection of a data access pattern that may be exposed in processing a user query for an encrypted database.

최근 클라우드 컴퓨팅에 대한 관심이 고조됨에 따라, 클라우드(cloud)에 데이터베이스를 위탁하고, 위탁한 데이터베이스 상에서 사용자로부터 요청된 질의와 관련 있는 데이터를 추출해 주는 데이터 아웃소싱에 관한 연구가 활성화 되고 있다.As interest in cloud computing continues to grow in recent years, research on data outsourcing, which entrusts databases to the cloud and extracts data related to the queries requested from users on a commissioned database, is being activated.

한편, 클라우드의 접근이 비교적 자유롭다는 점에서 공격자는 클라우드에 유지된 데이터를 열람하거나 악용할 우려가 있고, 사용자가 클라우드에 전달하는 질의를 통해 사용자의 개인정보를 유추할 수 있다는 문제점에 따라, 데이터베이스와 사용자 질의의 내용이 드러나지 않도록 암호화하고, 암호화된 데이터베이스 상에서의 질의 처리를 지원하기 위한 연구가 진행되고 있다.On the other hand, the accessibility of the cloud is relatively free. As a result, the attacker may view or misuse the data held in the cloud, and the user may infer the user's personal information through the query transmitted to the cloud. Research is underway to encrypt the database and user queries so that they are not exposed, and to support query processing on encrypted databases.

그러나, 기존에 암호화된 데이터베이스 상에서 질의 처리를 수행하는 연구에서는, 사용자가 인덱스 탐색을 통해 질의와 관련이 있는 노드를 클라우드에게 요청하고 있어, 인증되지 않은 사용자에게 질의 결과의 식별자 또는 순서 정보를 노출하거나, 각 차원에서의 데이터 값에 대한 정보를 유추 가능하게 하는 등, 데이터 접근 패턴이 노출될 수 있다.However, in a research for performing query processing on an existing encrypted database, a user requests a node related to a query through an index search to the cloud, and exposes an identifier or order information of a query result to an unauthorized user , The information on the data values in each dimension can be inferred, and the data access pattern can be exposed.

이에 따라, 추가적인 정보의 노출을 방지하여 데이터 보호와 사용자 질의 보호 뿐만 아니라, 데이터 접근 패턴 보호를 모두 지원 가능한 암호화 데이터베이스 상에서의 영역 질의 처리 기술이 요구되고 있다.Accordingly, there is a demand for an area query processing technique on an encrypted database that can support both data protection and user query protection as well as data access pattern protection by preventing exposure of additional information.

본 발명의 실시예는 클라우드에 아웃소싱된 암호화 데이터베이스에 대한 인증된 사용자로부터의 영역 질의를 처리 시, 암호화 인덱스 트리를 기반으로 SBN(Secure Bit-Not) 프로토콜, SCMP(Secure Compare) 프로토콜 및 SRO(Secure Range Overlapping) 프로토콜 중 적어도 하나의 암호화 연산 프로토콜을 수행 함으로써 추가적인 정보의 노출을 방지하여, 데이터 보호와 사용자 질의 보호 뿐만 아니라, 질의 처리 과정에서의 데이터 접근 패턴 보호를 모두 지원하는 것을 목적으로 한다.The embodiments of the present invention are based on an encryption index tree, a Secure Bit-Not (SBN) protocol, an Secure SCMP (Secure Compare) protocol, and an SRO Range Overlapping) protocol, thereby protecting both data protection and user query protection as well as data access pattern protection during query processing by preventing additional information from being exposed.

본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 방법은, 인덱스 트리를 암호화하여, 암호화 인덱스 트리를 생성하는 단계와, 상기 암호화 인덱스 트리를, 암호화 데이터베이스, 및 암호화 키를 유지하는 제1 클라우드에 보관하는 단계와, 상기 암호화 키에 대응한 복호화 키를, 상기 제1 클라우드와 상이한 제2 클라우드에 보관하는 단계, 및 인증된 단말로부터 사용자 질의가 수신되면, 선정된 암호화 연산 프로토콜을 기반으로, 상기 제1 클라우드와 상기 제2 클라우드 간에 다자간 계산(SMC, Secure Multiparty Computation)을 수행하여, 상기 사용자 질의를 처리하는 단계를 포함한다.The encryption index-based area query processing method according to an embodiment of the present invention includes the steps of generating an encryption index tree by encrypting an index tree, encrypting the encryption index tree with an encryption database and a first cloud Storing a decryption key corresponding to the encryption key in a second cloud different from the first cloud; and transmitting, when a user query is received from the authenticated terminal, And performing a Secure Multiparty Computation (SMC) between the first cloud and the second cloud to process the user query.

또한, 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템은, 인덱스 트리를 암호화하여, 암호화 인덱스 트리를 생성하고, 상기 암호화 인덱스 트리를, 암호화 데이터베이스, 및 암호화 키를 유지하는 제1 클라우드에 보관하고, 상기 암호화 키에 대응한 복호화 키를, 상기 제1 클라우드와 상이한 제2 클라우드에 보관하고, 인증된 단말로부터 사용자 질의가 수신되면, 선정된 암호화 연산 프로토콜을 기반으로, 상기 제1 클라우드와 상기 제2 클라우드 간에 다자간 계산을 수행하여, 상기 사용자 질의를 처리한다.The encryption index-based area query processing system according to an embodiment of the present invention encrypts an index tree to generate an encryption index tree, and the encryption index tree is divided into an encryption database and a first cloud And stores the decryption key corresponding to the encryption key in a second cloud different from the first cloud. When a user query is received from an authenticated terminal, based on the selected encryption operation protocol, And the second cloud to process the user query.

본 발명의 일실시예에 따르면, 클라우드에 아웃소싱된 암호화 데이터베이스에 대한 인증된 사용자로부터의 영역 질의를 처리 시, 암호화 인덱스 트리를 기반으로 SBN 프로토콜, SCMP 프로토콜 및 SRO 프로토콜 중 적어도 하나의 암호화 연산 프로토콜을 수행 함으로써 추가적인 정보의 노출을 방지하여, 데이터 보호와 사용자 질의 보호 뿐만 아니라, 질의 처리 과정에서의 데이터 접근 패턴 보호를 모두 지원할 수 있다.According to one embodiment of the present invention, when processing an area query from an authenticated user for an outsourced cryptographic database in the cloud, at least one of the SBN protocol, the SCMP protocol, and the SRO protocol, based on the cryptographic index tree, By doing so, it is possible to protect both data protection and user query protection as well as data access pattern protection during query processing.

도 1은 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템에서, 두 영역 간에 겹침 여부를 판단하는 일례를 도시한 도면이다.
도 3은 암호화 인덱스 트리의 단말 노드와 연관된 노드 영역과, 사용자 질의와 연관된 질의 영역을 좌표평면에 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템에서, 암호화 인덱스 트리를 탐색하는 과정을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템에서, 질의 영역 내 데이터를 탐색하는 과정을 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 방법의 순서를 도시한 흐름도이다.
1 is a diagram illustrating a cryptographic index-based area query processing system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of determining overlap between two regions in an encryption index-based area query processing system according to an embodiment of the present invention.
3 is a diagram showing a node area associated with a terminal node of an encryption index tree and a query area associated with a user query in a coordinate plane.
FIG. 4 is a diagram illustrating a process of searching an encryption index tree in a cryptographic index-based area query processing system according to an embodiment of the present invention.
5 is a diagram illustrating a process of searching for data in a query area in an encryption index-based area query processing system according to an embodiment of the present invention.
6 is a flowchart illustrating a procedure of an encryption index-based area query processing method according to an embodiment of the present invention.

이하, 첨부된 도면들을 참조하여 본 발명의 일실시예에 따른 응용프로그램 업데이트 장치 및 방법에 대해 상세히 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, an apparatus and method for updating an application program according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

본 발명에서 "영역 질의"는, "영역"으로 주어지는 "사용자 질의"를 지칭할 수 있다. 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템은, 암호화 인덱스 트리를 기반으로 "영역 질의" 내에 존재하는 데이터를 탐색하여 인증된 단말에 반환함으로써 암호화 데이터베이스 상에서 사용자 질의를 처리할 수 있다.In the present invention, "region query" may refer to "user query " given as" region ". The encryption index-based area query processing system according to an embodiment of the present invention can search for data existing in the "area query" based on the encryption index tree and return the data to the authenticated terminal to process the user query on the encryption database .

도 1은 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템을 도시한 도면이다. 1 is a diagram illustrating a cryptographic index-based area query processing system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템(100)은, 데이터베이스(110)(T), 인덱스 트리(120), 암호화 키(130)(pk), 복호화 키(140)(sk), 제1 클라우드(150)(CA), 암호화 데이터베이스(160), 암호화 인덱스 트리(170) 및 제2 클라우드(180)(CB)를 포함하여 구성될 수 있다.1, an encryption index based area query processing system 100 according to an embodiment of the present invention includes a database 110 (T), an index tree 120, an encryption key 130 (pk), a decryption Key 140 (sk), a first cloud 150 (C A ), an encryption database 160, an encryption index tree 170, and a second cloud 180 (C B ).

영역 질의 처리 시스템(100)은 데이터베이스(110)에 저장된 데이터를 선정된 개수(예를 들어, F개) 단위로 분할하고, 분할된 데이터를 포함하는 단말 노드를, 복수로 가지는 인덱스 트리(120)를 구축한다.The region query processing system 100 divides the data stored in the database 110 into a predetermined number of units (for example, F units) and stores the index tree 120 having a plurality of terminal nodes including the divided data, .

일례로, 영역 질의 처리 시스템(100)은 레벨이 h이고, 총 2h-1개의 단말 노드를 가지는 인덱스 트리(120)를 데이터베이스(110)로부터 구축할 수 있으며, 각 단말 노드는 최대 F(FanOut)개의 데이터를 저장할 수 있다.For example, the area query processing system 100 may build an index tree 120 from the database 110 having a total of 2 h-1 end nodes with a level h, each end node having a maximum F (FanOut) ) ≪ / RTI > data.

인덱스 트리(120)의 각 단말 노드는, 자신이 담당하는 노드 영역에 관한 영역 정보와, 노드 영역 내에 포함되는 데이터에 대한 데이터ID를 평문 형태로 저장할 수 있다. 여기서, 상기 영역 정보는 노드 영역에 대한 하한점(lbz,m) 및 상한점(ubz,m)(1=z≤=numnode, 1≤j≤m)을 속성(m) 별로 포함할 수 있다.Each terminal node in the index tree 120 can store the area information about the node area that it is responsible for and the data ID for the data contained in the node area in a plain text form. Here, the area information includes a lower limit point (lb z, m ) and an upper limit point (ub z, m ) (1 = z ? = Num node , 1? .

예를 들어, 도 3을 참조하면, 인덱스 트리(120)의 단말 노드 'node 1'은, 속성 m이 1인 경우, 단말 노드 'node 1'과 연관된 노드 영역에 대한 하한점 '(lb1 ,0, lb1,1)' 및 상한점 '(ub1 ,0, ub1 ,1)'과, 상기 노드 영역에 포함되는 데이터에 대한 데이터ID 't1', 't2'를 저장할 수 있다.For example, referring to FIG. 3, when the attribute m is 1, the leaf node 'node 1' of the index tree 120 stores the leaf node 'lb 1 , 0, 1,1 lb), and the upper limit '(ub 1, 0, ub 1, 1) may store ", a data ID of the data included in the node region" t 1 "," t 2 " .

영역 질의 처리 시스템(100)은 데이터베이스(110)로부터 구축한 인덱스 트리(120)를 암호화하여, 암호화 인덱스 트리(170)를 생성한다.The area query processing system 100 encrypts the index tree 120 constructed from the database 110 to generate an encryption index tree 170.

구체적으로, 영역 질의 처리 시스템(100)은 각 단말 노드와 연관된 노드 영역에 포함되는 데이터에 대한 데이터ID를, 속성 별로 더 암호화하여 암호화 인덱스 트리(170)를 생성할 수 있다.Specifically, the area query processing system 100 can further generate a cryptographic index tree 170 by further encrypting data IDs for data included in a node region associated with each terminal node, for each attribute.

예를 들어, 영역 질의 처리 시스템(100)은 인덱스 트리(120)의 단말 노드 'node 1'에 포함되는 데이터ID 't1', 't2'를, 속성 m 별로 암호화하고, 나머지 단말 노드에 포함된 데이터ID를 속성 m 별로 암호화하여, 암호화 인덱스 트리(170)를 생성할 수 있다.For example, the area query processing system 100 encrypts the data ID 't 1 ', 't 2 ' included in the terminal node 'node 1' of the index tree 120 for each attribute m, And encrypts the included data ID by attribute m to generate the encryption index tree 170. [

이때, 영역 질의 처리 시스템(100)은 암호화 데이터베이스(160)의 생성 시 이용한 동일 암호화 키(130)로, 인덱스 트리(120)에 포함되는 각 단말 노드를 암호화 하여 암호화 인덱스 트리(170)를 생성할 수 있다.At this time, the area query processing system 100 encrypts each terminal node included in the index tree 120 with the same encryption key 130 used in creating the encryption database 160 to generate an encryption index tree 170 .

영역 질의 처리 시스템(100)은 원본 데이터가 유지되는 데이터베이스(110)를, 패일러(Paillier) 암호화 시스템을 기반으로 암호화하여 암호화 데이터베이스(160)를 생성할 수 있다.The area query processing system 100 can generate the encryption database 160 by encrypting the database 110 in which the original data is maintained based on a Paillier encryption system.

구체적으로, 영역 질의 처리 시스템(100)은 암호화 키(130)를 공개 키로 생성하고, 암호화 키(130)로 데이터베이스(110) 내의 데이터를 암호화 함으로써 데이터베이스(110)의 아웃소싱으로 인한 데이터 노출을 방지할 수 있다.Specifically, the area query processing system 100 generates an encryption key 130 with a public key and encrypts the data in the database 110 with the encryption key 130 to prevent data exposure due to outsourcing of the database 110 .

여기서, 패일러(Paillier) 암호화 시스템은 복호화의 과정 없이 암호화 데이터의 합 연산(아래의 수식 (1) 참조)과 곱 연산(아래의 수식 (2) 참조)을 처리할 수 있는 대표적인 준동형 암호화 기법으로, 동일한 평문이더라도 암호화 값을 상이하게 함으로써 의미적 보안(semantic security)을 지원할 수 있다.Here, the Paillier cryptosystem is a typical cryptosystem which can process the summation of encryption data (see Equation (1) below) and multiplication (see Equation (2) below) , It is possible to support semantic security by making encryption values different even if they are the same plain text.

E(a+b) = E(a)*E(b) mod N2 (1) E (a + b) = E (a) * E (b) mod N 2 (1)

E(a*b) = E(a)b mod N2 (2)E (a * b) = E (a) b mod N 2 (2)

본 발명에서, 데이터베이스(110)는 m개('m'은 '1' 이상)의 속성(attribute) 혹은 차원(column)으로 구성되는 적어도 하나의 레코드로 구성되며, 영역 질의 처리 시스템(100)은 각 레코드의 속성 단위로 데이터베이스(110)의 암호화를 수행할 수 있다.In the present invention, the database 110 is composed of at least one record composed of m ('m' is more than 1) attribute or a column, and the area query processing system 100 The encryption of the database 110 can be performed on the attribute basis of each record.

예를 들어, 영역 질의 처리 시스템(100)은 암호화 키(130)를 이용하여, 데이터ID 't1'을 'E(t1,1),…,E(t1,m)'와 같이 암호화하고, 데이터ID 't2'를 'E(t2,1),…,E(t2,m)'와 같이 암호화하고, 데이터ID 'tn'을 'E(tn,1),…,E(tn,m)'와 같이 암호화하여, 암호화 데이터베이스(160)를 생성할 수 있다.For example, the area query processing system 100 uses the encryption key 130 to set the data ID 't 1 ' to 'E (t 1,1 ), ... , E (t 1, m ) ', and encrypts the data ID' t 2 'as' E (t 2,1 ) , E (t 2, m ) ', and data ID' t n 'as E (t n, 1 ) , E (t n, m ) 'to generate the encryption database 160.

이와 같이, 영역 질의 처리 시스템(100)은 데이터베이스(110)의 암호화를 통해, 외부에 아웃소싱되는 데이터베이스(110)에 유지되는 데이터의 보호를 지원할 수 있다.In this manner, the area query processing system 100 can support the protection of data held in the database 110 that is outsourced to the outside, through the encryption of the database 110.

영역 질의 처리 시스템(100)은 서로 결탁하지 않는 (non-colluding) 제1 클라우드(150), 제2 클라우드(180)를 마련할 수 있다.The region query processing system 100 may provide a first cloud 150 and a second cloud 180 that are non-colluding with each other.

본 발명에서, 각 클라우드(150, 180)는 사용자 질의를 처리하기 위해 암호화 프로토콜을 수행 시, 질의 처리 과정 중에 획득한 정보를 바탕으로, 추가적인 정보를 획득하기 위해 다른 클라우드와 결탁하여 데이터 및 정보를 주고 받지 않도록 할 수 있다.In the present invention, each cloud 150 and 180, when performing an encryption protocol to process a user query, may associate data and information with other clouds in order to acquire additional information based on the information acquired during the query processing You can not send or receive.

영역 질의 처리 시스템(100)은 암호화 인덱스 트리(170)를, 암호화 데이터베이스(160), 및 암호화 키(130)를 유지하는 제1 클라우드(150)에 보관한다(단계 101).The region query processing system 100 stores the cryptographic index tree 170 in the first cloud 150 holding the cryptographic database 160 and the cryptographic key 130 (step 101).

또한, 영역 질의 처리 시스템(100)은 상기 암호화 키(130)에 대응한 복호화 키(140)를, 제1 클라우드(150)와 상이한 제2 클라우드(180)에 보관한다(단계 102).The area query processing system 100 stores the decryption key 140 corresponding to the encryption key 130 in the second cloud 180 different from the first cloud 150 (step 102).

다시 말해, 영역 질의 처리 시스템(100)은 암호화 인덱스 트리(170)를, 암호화 데이터베이스(160) 및 암호화 키(130)와 함께 제1 클라우드(150)에 보관하고, 비밀 키로 생성한 복호화 키(140)를, 다른 제2 클라우드(180)에 보관할 수 있다.In other words, the area query processing system 100 stores the encryption index tree 170 together with the encryption database 160 and the encryption key 130 in the first cloud 150, and decrypts the decryption key 140 Can be stored in another second cloud 180. [

또한, 영역 질의 처리 시스템(100)은 데이터베이스(110)의 암호화 시 이용한 동일 암호화 키(130)를 인증된 단말(190)로 제공할 수 있다(단계 103). 단말(190)에서는 데이터를 획득하기 위해 제1 클라우드(150)로 질의를 요청 시, 상기 제공된 암호화 키(130)를 이용하여 사용자 질의를 암호화할 수 있다(단계 104).In addition, the area query processing system 100 may provide the same encryption key 130 used in the encryption of the database 110 to the authenticated terminal 190 (step 103). When the terminal 190 requests a query to the first cloud 150 to acquire data, the user query may be encrypted using the provided encryption key 130 (step 104).

예를 들어, 단말(190)에서는 사용자 질의와 연관된 질의 영역을 구성하는 하한점 및 상한점을, 예컨대 'E(q.lbj), E(q.ubj)(1=j≤=m)'와 같이 암호화 키(130)로 암호화하여 사용자 질의를 요청할 수 있다.For example, in the terminal 190, 'E (q.lb j ), E (q.ub j ) (1 = j ? = M) is set as a lower limit point and an upper limit point constituting the query area associated with the user query, The user can inquire the user by encrypting it with the encryption key 130 as shown in FIG.

이와 같이, 영역 질의 처리 시스템(100)은 암호화된 질의를 기반으로 서비스를 제공하여 데이터 보호 및 사용자 질의 보호를 지원할 수 있다.As described above, the area query processing system 100 can support data protection and user query protection by providing a service based on an encrypted query.

영역 질의 처리 시스템(100)은 인증된 단말(190)로부터 사용자 질의가 수신되면, 선정된 암호화 연산 프로토콜을 기반으로, 제1 클라우드(150)와 제2 클라우드(180) 간에 다자간 계산(SMC, Secure Multiparty Computation)을 수행하여, 상기 사용자 질의를 처리한다(단계 105).The area query processing system 100 receives the user query from the authenticated terminal 190 and performs a multiparametric calculation (SMC, Secure) between the first cloud 150 and the second cloud 180 based on the selected cryptographic operation protocol. Multiparty Computation) to process the user query (step 105).

또한, 영역 질의 처리 시스템(100)은 제1 클라우드(150) 및 제2 클라우드(180)와 함께 사용자 질의를 처리한 결과를 단말(190)에 전송할 수 있다(단계 106).The region query processing system 100 may also transmit the result of processing the user query together with the first cloud 150 and the second cloud 180 to the terminal 190 (step 106).

여기서, 다자간 계산이란, 데이터 소유자가 보유하고 있는 원본 데이터를 노출하지 않은 채, 다른 개체(제1 클라우드(150)와 제2 클라우드(180))를 통해 프로토콜 및 연산을 안전하게 수행하는 것을 지칭할 수 있다.Here, the multiparameter calculation can refer to safely performing the protocol and the operation via another entity (the first cloud 150 and the second cloud 180) without exposing the original data held by the data owner have.

이를 위해, 영역 질의 처리 시스템(100)은 암호화 인덱스 트리(170), 암호화 데이터베이스(160) 및 암호화 키(130)를 보관하는 제1 클라우드(150)와 다른 제2 클라우드(180)에 복호화 키(140)를 보관하고, 이를 바탕으로, 제1 클라우드(150)와 제2 클라우드(180) 간에 다자간 계산을 통해 영역 질의를 처리할 수 있다.To this end, the area query processing system 100 includes a first cloud 150 storing an encryption index tree 170, an encryption database 160 and an encryption key 130, and a decryption key 140, and based on this, the area query can be processed between the first cloud 150 and the second cloud 180 by multi-way calculation.

이를 통해, 영역 질의 처리 시스템(100)은 데이터 보호를 지원하면서, 암호화 인덱스 트리(170)를 기반으로, 암호화 데이터베이스(160) 상에서의 사용자 질의를 안전하게 처리할 수 있다.In this way, the area query processing system 100 can securely process user queries on the encryption database 160, based on the encryption index tree 170, while supporting data protection.

일례로, 영역 질의 처리 시스템(100)은 SBN(Secure Bit-Not) 프로토콜, SCMP(Secure Compare) 프로토콜, SRO(Secure Range Overlapping) 프로토콜, SM(Secure Multiplication) 프로토콜, SBD(Secure Bit Decomposition) 프로토콜, 및 SMIN(Secure Minimum) 프로토콜 중 적어도 하나의 암호화 연산 프로토콜을 기반으로, 상기 사용자 질의를 처리할 수 있다.For example, the area query processing system 100 may include a Secure Bit-Not Protocol (SBN) protocol, a Secure Compare Protocol (SCMP) protocol, a Secure Range Overlapping (SRO) protocol, a Secure Multiplication (SM) And an SMIN (Secure Minimum) protocol, based on at least one cryptographic operation protocol.

일례로, 영역 질의 처리 시스템(100)은 제1 클라우드(150) 단독으로 "SBN 프로토콜"을 수행하여, 1비트의 암호화 데이터 E(a)에 대해, 'Not 연산'을 수행할 수 있다. 예를 들어, 영역 질의 처리 시스템(100)은 SBN 프로토콜의 수행 결과 입력 값이 'E(0)'인 경우에는 'E(1)'을 반환하고, 입력 값이 'E(1)'인 경우에는 'E(0)'을 결과로 반환할 수 있다.In one example, the area query processing system 100 can perform "Not operation" on 1 bit of encrypted data E (a) by performing "SBN protocol" on the first cloud 150 alone. For example, the area query processing system 100 returns 'E (1)' when the input result of the SBN protocol is 'E (0)', Can return 'E (0)' as a result.

또한, 영역 질의 처리 시스템(100)은 "SCMP 프로토콜"을 수행하여, 두 개의 암호화 된 수(예, 'E(3)', 'E(5)') 중 첫 번째 암호화 값('E(3)')이 두 번째 암호화 값('E(5)')보다 작거나 같으면, 'E(1)'을 반환하고, 그렇지 않으면 'E(0)'을 반환할 수 있다.The area query processing system 100 also performs the " SCMP protocol "to determine the first encryption value (E (3), E (5) ) ') Is less than or equal to the second encryption value (' E (5) '), it returns' E (1)', otherwise it returns' E (0) '.

구체적으로, 영역 질의 처리 시스템(100)은 제1 클라우드(150)에 이진수로 변환된 두 개의 암호화 데이터 [u]와 [v]가 주어진 경우, SCMP 프로토콜을 수행하여, 'u≤v'를 만족하는 경우 'E(1)'을 반환하고, 'u>v'인 경우 'E(0)'을 반환할 수 있다.Specifically, when two encrypted data [u] and [v] are converted into binary numbers in the first cloud 150, the area query processing system 100 performs an SCMP protocol to satisfy 'u v' E (1) 'if it is' u> v' and 'E (0)' if it is' u> v '

영역 질의 처리 시스템(100)은 점이 영역에 포함되는지를 확인하거나, 두 영역이 서로 겹치는지를 확인하기 위해 SCMP 프로토콜을 수행할 수 있다. 예를 들어, 영역 질의 처리 시스템(100)은 점 'p1(p1,x, p1,y)'이 단말 노드 'node1'의 노드 영역 '(lb1,x, lb1,y), (ub1,x, ub1,y)'에 속하는지를 확인하기 위해 SCMP 프로토콜을 수행할 수 있다.The area query processing system 100 can check whether a point is included in the area or can perform the SCMP protocol to check whether the two areas overlap each other. For example, the region query processing system 100 determines whether the node 'p1 (p 1, x , p 1, y )' is the node region 'lb 1, x , lb 1, ub 1, x , ub 1, y ) '.

영역 질의 처리 시스템(100)은 SCMP 프로토콜의 수행 결과, 점 'p1'이 4개 조건 'ⅰ) lb1,x≤p1,x, ⅱ) lb1,y≤p1,y, ⅲ) p1,x≤ub1,x, ⅳ) p1,y≤ub1,y'을 모두 만족 시, 단말 노드 'node1'의 노드 영역에 점 'p1'이 속하는 것으로 판단하고, 결과값으로 'E(1)'을 반환할 수 있다. 또는, 영역 질의 처리 시스템(100)은 하기의 4개 조건 중 어느 하나라도 만족하지 않으면, 노드 영역에 점 'p1'이 속하지 않는 것으로 판단하고, 결과값으로 'E(0)'을 반환할 수 있다.The region query processing system 100 determines that the point 'p1' satisfies four conditions' i 1 ) lb 1, x ≤ p 1, x , ⅱ) lb 1, y ≤p 1, y , iii) p 1, x ≤ub 1, x, ⅳ) p 1, y ≤ub 1, y ' both satisfied when a terminal node' as determined to be within this, and the result "" in the node region of the point "node1 p1 E (1) '. Alternatively, the area query processing system 100 may determine that the point 'p1' does not belong to the node area and return 'E (0)' as the result value if any of the following four conditions is not satisfied have.

이와 같이, 본 발명에서 SCMP 프로토콜은 데이터 접근 패턴 노출을 방지하는 암호화 인덱스 탐색 및 질의 처리 알고리즘 수행을 위한 핵심 프로토콜로 사용될 수 있다.As described above, in the present invention, the SCMP protocol can be used as a core protocol for performing an encryption index search and a query processing algorithm to prevent data access pattern exposure.

또한, 영역 질의 처리 시스템(100)은 SRO 프로토콜을 수행하여, 두 개의 영역이 서로 겹치면 'E(1)', 그렇지 않으면 'E(0)'을 결과값으로 반환할 수 있다. 본 발명에서, SRO 프로토콜은, 데이터 접근 패턴 노출을 방지하는 암호화 인덱스 탐색에 사용될 수 있다. 일례로, 한 영역의 하한점 및 상한점을 모두 점의 좌표로 설정하면 영역의 형태로 표현되지만 실제로는 점을 나타내기 때문에, 영역 질의 처리 시스템(100)은 SRO 프로토콜을 통해 영역 안에 점이 포함되는지 여부를 판단할 수 있다.In addition, the area query processing system 100 may perform the SRO protocol and return 'E (1)' if the two areas overlap each other, or 'E (0)' as the result value. In the present invention, the SRO protocol can be used for cryptographic index searches to prevent data access pattern exposure. For example, if both the lower limit point and the upper limit point of an area are set as the coordinates of the point, the area query processing system 100 displays the points in the area through the SRO protocol Can be determined.

이하, 도 2를 참조하여, SRO 프로토콜을 수행하는 과정을 설명한다.Hereinafter, a process of performing the SRO protocol will be described with reference to FIG.

도 2는 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템에서, 두 영역 간에 겹침 여부를 판단하는 일례를 도시한 도면이다.FIG. 2 is a diagram illustrating an example of determining overlap between two regions in an encryption index-based area query processing system according to an embodiment of the present invention.

도 2를 참조하면, 영역 질의 처리 시스템(100)은 제1 클라우드(150)에서 SRO 프로토콜을 수행하여 두 암호화 영역(210, 220)의 상한점 및 하한점 간에 겹침 조건(230)을 모두 만족하는지 확인할 수 있다.2, the region query processing system 100 performs an SRO protocol in the first cloud 150 to determine whether the overlapping conditions 230 are satisfied between the upper and lower points of the two encryption regions 210 and 220 Can be confirmed.

즉, 영역 질의 처리 시스템(100)은 암호화 영역(210)의 하한점(lb1,x, lb1,y)이, 암호화 영역(220)의 상한점(ub2,x와 ub2,y) 보다 작은지 비교하고, 암호화 영역(220)의 하한점(lb2,x, lb2,y)이 암호화 영역(210)의 상한점(ub1,x와 ub1,y) 보다 작은지 비교하여, 두 암호화 영역(210, 220)이 겹치는지 판단할 수 있다.That is, the area query processing system 100 determines that the lower limit point (lb 1, x , lb 1, y ) of the encrypted area 210 is the upper limit point (ub 2, x and ub 2, y ) And compares whether the lower limit point (lb 2, x , lb 2, y ) of the encrypted area 220 is smaller than the upper limit point (ub 1, x and ub 1, y ) of the encrypted area 210 , It can be determined whether the two encryption areas 210 and 220 overlap.

영역 질의 처리 시스템(100)은 SRO 프로토콜의 수행 결과, 두 암호화 영역(210, 220)의 상한점 및 하한점 간에 겹침 조건(230)을 모두 만족하는 경우 두 암호화 영역(210, 220)이 겹치는 것으로 판단하고, 결과값으로 'E(1)'을 반환할 수 있다.The area query processing system 100 may overlap the two encryption areas 210 and 220 when the overlapping condition 230 is satisfied between the upper and lower points of the two encryption areas 210 and 220 as a result of the SRO protocol , And return 'E (1)' as the result value.

이때, 영역 질의 처리 시스템(100)은 겹침 조건(230) 중 어느 하나라도 만족하지 않으면, 두 암호화 영역(210, 220)이 겹치지 않는 것으로 판단하고, 결과값으로 'E(0)'을 반환할 수 있다.At this time, if any one of the overlapping conditions 230 is not satisfied, the area query processing system 100 determines that the two encryption areas 210 and 220 do not overlap and returns 'E (0)' as a result value .

실시예에 따라, 영역 질의 처리 시스템(100)은 두 암호화 영역(210, 220)의 겹침 여부를 확인하기 위해 2×m회(m은 속성 또는 차원)의 비교 연산을 수행할 수 있다.According to the embodiment, the area query processing system 100 can perform a comparison operation of 2 占 m times (m is an attribute or a dimension) to check whether the two encryption areas 210 and 220 overlap each other.

다시 말해, 영역 질의 처리 시스템(100)은 암호화 영역(210)의 하한점이 암호화 영역(220)의 상한점 보다 모든 차원에서 작은지 비교하고(m회), 또한 암호화 영역(220)의 하한점이 암호화 영역(210)의 상한점 보다 모든 차원에서 작은지 비교하여(m회), 두 암호화 영역(210, 220)이 겹치는지 판단할 수 있다.In other words, the area query processing system 100 compares (m times) whether the lower limit of the encryption area 210 is smaller than the upper limit of the encryption area 220 in all dimensions (m times), and the lower limit of the encryption area 220 is encrypted It is possible to determine whether the two encryption areas 210 and 220 are overlapped with each other by comparing the upper limit of the area 210 in all dimensions (m times).

영역 질의 처리 시스템(100)은 상기 SRO 프로토콜의 수행 결과로서 'E(1)'을 반환하는 단말 노드를, 질의 영역과 겹치는 제1 단말 노드로서 탐색할 수 있다.The area query processing system 100 can search a terminal node that returns 'E (1)' as a result of the execution of the SRO protocol as a first terminal node overlapping a query area.

일례로, 영역 질의 처리 시스템(100)은 SCMP 프로토콜을 통해 '≤' 연산을 수행한 결과를 바탕으로 SM 프로토콜을 수행하는 것에 의해 SRO 프로토콜을 수행할 수 있으며, SCMP 프로토콜의 수행 결과가 모두 'E(1)'인 경우에만 최종적으로 'E(1)' 값이 유지될 수 있다.For example, the area query processing system 100 can perform the SRO protocol by performing the SM protocol based on the result of performing the operation "? &Quot; through the SCMP protocol. If the result of the SCMP protocol is' E (1) ', the value of' E (1) 'can be finally maintained.

여기서, SM 프로토콜은 제1 클라우드(150)에 암호화된 두 데이터 'E(a)'와 'E(b)'가 주어지는 경우, a*b의 암호화 값 E(a*b)를 계산하는 프로토콜일 수 있다.Here, the SM protocol is a protocol for calculating the encrypted value E (a * b) of a * b when two encrypted data 'E (a)' and 'E (b)' are given to the first cloud 150 .

도 1로 돌아가면, 영역 질의 처리 시스템(100)은 SBD 프로토콜을 수행하여, 단말(190)로부터 수신된 암호화된 질의 영역 및 암호화 인덱스 트리(170)의 각 단말 노드의 영역 정보(상한점 및 하한점)를, 암호화된 이진수로 변환할 수 있다.1, the area query processing system 100 performs the SBD protocol and searches the encrypted query area received from the terminal 190 and the area information (upper limit and lower limit) of each terminal node of the encryption index tree 170 Point) into an encrypted binary number.

예를 들어, 영역 질의 처리 시스템(100)은 SBD 프로토콜을 통해, 암호화된 질의 영역 'E(q) = (E(q.lbj), E(q.ubj))'를, '[q] = ([q.lbj], [q.ubj])'(1≤j≤m)로 변환할 수 있다.For example, the area query processing system 100 transmits an encrypted query area 'E (q) = (E (q.lb j ), E (q.ub j ) ] = ([q.lb j ], [q.ub j ]) '(1? j? m).

또한, 영역 질의 처리 시스템(100)은 SBD 프로토콜을 통해, 암호화 노드 영역 'E(nodez)=(E(nodez.lbj), E(nodez.ubj))'를, '[nodez] = ([nodez.lbj], [nodez.ubj])'(1≤z≤numnode, 1≤j≤m)로 변환할 수 있다. 여기서, numnode는 단말 노드의 총 수(2h-1)를 의미할 수 있다.In addition, the area query processing system 100 transmits an encrypted node region E (node z ) = (E (node z .lb j ), E (node z .ub j ) z ] = ([node z .lb j ], [node z .ub j ]) (1? z ? node , 1? j? Here, num node may mean the total number of terminal nodes (2 h-1 ).

또한, 영역 질의 처리 시스템(100)은 SMIN 프로토콜을 수행하여, u, v 중 작은 수에 대한 정보를 암호문 형태로 저장하거나, u, v 중 작은 수에 대한 정보를 바탕으로, u, v 중 실제 min 값(최소값)을 추출할 수 있다.In addition, the area query processing system 100 performs a SMIN protocol to store information on a small number of u and v as a ciphertext, or to calculate a real number of u and v based on information on a small number of u and v The min value (minimum value) can be extracted.

이하, 도 3을 참조하여 사용자 질의를 처리하는 과정을 설명한다.Hereinafter, a process of processing a user query will be described with reference to FIG.

도 3은 암호화 인덱스 트리의 단말 노드와 연관된 노드 영역과, 사용자 질의와 연관된 질의 영역을 좌표평면에 도시한 도면이다.3 is a diagram showing a node area associated with a terminal node of an encryption index tree and a query area associated with a user query in a coordinate plane.

도 3을 참조하면, 암호화 인덱스 트리(170)는 4개의 단말 노드(node 1, node2, node3, node4)를 포함하고, 각 단말 노드는 하한점과 상한점으로 구성되는 노드 영역(310, 320, 330, 340)을 가질 수 있다.3, the encryption index tree 170 includes four terminal nodes (node 1, node 2, node 3, node 4), and each terminal node includes node areas 310, 320, 330, and 340, respectively.

영역 질의 처리 시스템(100)은 각 노드 영역(310, 320, 330, 340) 중에서 사용자가 전송한 질의 영역(350)과 겹치는 제1 단말 노드를 탐색하고, 해당 제1 단말 노드 내에 존재하는 데이터를 접근 패턴 노출 없이 안전하게 탐색할 수 있다.The region query processing system 100 searches for a first terminal node overlapping a query region 350 transmitted from a user among the respective node regions 310, 320, 330, and 340, and searches for data existing in the corresponding first terminal node You can safely browse without exposing your access patterns.

영역 질의 처리 시스템(100)은 사용자 질의와 겹치는 암호화 인덱스 트리(170) 내 제1 단말 노드를 탐색하고, 제1 단말 노드로부터 추출된 데이터 중, 사용자 질의와 연관된 질의 영역(350) 내에 포함되는 데이터를 탐색하고, 상기 탐색한 데이터에 기초하여, 사용자 질의에 대한 결과를 단말(190)에 반환할 수 있다.The region query processing system 100 searches for a first terminal node in the cryptographic index tree 170 that overlaps with the user query and selects data included in the query region 350 associated with the user query, And return the result of the user query to the terminal 190 based on the retrieved data.

이하, 도 4를 참조하여, 사용자 질의를 처리하기 위해 암호화 인덱스 트리를 탐색하는 과정을 설명한다.Hereinafter, a process of searching an encrypted index tree for processing a user query will be described with reference to FIG.

도 4는 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템에서, 암호화 인덱스 트리를 탐색하는 과정을 도시한 도면이다.FIG. 4 is a diagram illustrating a process of searching an encryption index tree in a cryptographic index-based area query processing system according to an embodiment of the present invention.

도 4를 참조하면, 영역 질의 처리 시스템(100)은, 사용자 질의와 연관된 질의 영역 및 암호화 인덱스 트리(170) 내 각 단말 노드와 연관된 노드 영역을 기반으로, SRO 프로토콜을 수행할 수 있다(단계 410).4, the region query processing system 100 may perform an SRO protocol based on a query region associated with a user query and a node region associated with each terminal node in the cryptographic index tree 170 (Step 410 ).

여기서, 영역 질의 처리 시스템(100)은, 상기 질의 영역을 구성하는 제1 하한점이, 노드 영역을 구성하는 제2 상한점보다 작고, 노드 영역을 구성하는 제2 하한점이 상기 질의 영역을 구성하는 제1 상한점보다 작은 경우(겹침 조건), 상기 질의 영역과 상기 노드 영역이 겹치는 것으로 판단하고, 상기 SRO 프로토콜의 수행 결과로서 'E(1)'을 반환할 수 있다.Here, the region query processing system 100 is configured such that the first lower limit point constituting the query region is smaller than the second upper limit point constituting the node region, and the second lower limit point constituting the node region constitutes the query region (Overlapping condition), it is determined that the query area overlaps with the node area, and 'E (1)' is returned as a result of performing the SRO protocol.

영역 질의 처리 시스템(100)은, 상기 SRO 프로토콜의 수행 결과로서 'E(1)'을 반환하는 단말 노드를, 상기 질의 영역과 겹치는 제1 단말 노드로서 탐색할 수 있다.The area query processing system 100 can search a terminal node that returns 'E (1)' as a result of the execution of the SRO protocol as a first terminal node overlapping the query area.

이때, 영역 질의 처리 시스템(100)은, 상기 질의 영역과 상기 노드 영역이 겹치지 않는 것으로 판단되면, 상기 SRO 프로토콜의 수행 결과로서 'E(0)'을 반환할 수 있다. 영역 질의 처리 시스템(100)은, 상기 SRO 프로토콜의 수행 결과로서 'E(0)'을 반환하는 단말 노드를, 상기 질의 영역과 겹치지 않는 제2 단말 노드로서 필터링하여 상기 제1 단말 노드를 탐색할 수도 있다.At this time, the area query processing system 100 may return 'E (0)' as a result of the execution of the SRO protocol if it is determined that the query area and the node area do not overlap. The area query processing system 100 searches for the first terminal node by filtering the terminal node returning 'E (0)' as a result of the execution of the SRO protocol as a second terminal node that does not overlap the query area It is possible.

영역 질의 처리 시스템(100)은, 상기 SRO 프로토콜을 통해 탐색한 상기 제1 단말 노드에 저장되는 데이터를, 질의 결과 후보 'E(cand)'로서 추출할 수 있다.The area query processing system 100 can extract data stored in the first terminal node searched through the SRO protocol as a query result candidate 'E (cand)'.

예를 들어, 영역 질의 처리 시스템(100)은, 제1 클라우드(150)에서 SBD 프로토콜을 이용하여 단말(190)로부터 수신된 암호화된 질의 영역 'E(q)'를, 암호화된 이진수 '[q]'로 변환하고, 암호화 인덱스 트리(170)의 각 단말 노드의 영역 정보 'E(nodez)'를, '[nodez]'로 변환하고, 암호화된 이진수 '[q]'와 '[nodez]'를 기반으로 SRO 프로토콜을 수행하고, SRO 프로토콜 수행 결과 'E(α) = {E(0), E(0), E(1), E(1)}' 중에서 반환된 'E(α)'의 값이 'E(1)'인 노드를, 질의 영역과 겹치는 제1 단말 노드로 탐색할 수 있다.For example, the area query processing system 100 may convert the encrypted query area 'E (q)' received from the terminal 190 using the SBD protocol in the first cloud 150 into an encrypted binary number '[q ], 'Transforms the area information' E (node z ) 'of each terminal node in the encryption index tree 170 into' [node z ] ', and outputs the encrypted binary numbers' [q] z] "is returned from the""do the SRO protocol based and, SRO protocol execution result 'E (α) = {E (0), E (0), E (1), E (1)} E ( α) 'is' E (1)' to the first terminal node overlapping the query region.

영역 질의 처리 시스템(100)은, 제1 클라우드(150)에서 순서 변경 함수 'π'를 생성하여 'E(α)'를, 'E(α') = {E(1), E(1), E(0), E(0)}'와 같이 역순으로 변환한 후 제2 클라우드(180)로 전송할 수 있다(단계 420).The region query processing system 100 generates a reordering function '?' In the first cloud 150 and outputs' E (?) 'To E (?') = {E (1) , E (0), E (0)} ', and then transmits the result to the second cloud 180 (step 420).

영역 질의 처리 시스템(100)은, 제2 클라우드(180)에서 복호화 키(140)를 이용하여 'E(α')'를, 'α'={1, 1, 0, 0}'와 같이 복호화하고(단계 430), '1'의 개수(c='2')만큼의 노드 그룹을 생성한 후, 각 노드 그룹에 α'=1인 노드 1개와, α'=0인 노드 (N/c)-1개(상기 N은 전체 단말 노드 수)를 할당하고(단계 440), 할당된 노드의 순서를 임의로 변환한 후 제1 클라우드(150)로 전송할 수 있다(단계 450).The region query processing system 100 decodes' E (α ')' in the second cloud 180 using the decryption key 140 and 'α' = {1, 1, 0, 0} (N / c (n) = 0) is generated for each node group (step 430), and node groups corresponding to the number of '1' ) -1 (N is the total number of terminal nodes) (step 440), arbitrarily transforms the order of the allocated nodes, and transmits them to the first cloud 150 (step 450).

본 단계(430 내지 450)에서, 영역 질의 처리 시스템(100)은 제2 클라우드(180)의 관점에서 단말 노드 'node 1' 및 'node 2'가 질의 영역과 겹치는 것으로 판단하고, '노드 그룹 1 = {2, 4}', '노드 그룹 2 = {1, 3}'와 같이 두 개의 노드 그룹을 생성 후 각 노드 그룹에 α' 값에 따라 노드를 1개씩 할당하고, 각 노드 그룹을 '노드 그룹 1 = {4, 2}', '노드 그룹 2 = {1, 3}'와 같이 램덤하게 순서 변환 후 제1 클라우드(150)로 전송할 수 있다.In this step 430 to 450, the area query processing system 100 judges that the node nodes 'node 1' and 'node 2' overlap with the query area from the viewpoint of the second cloud 180, Node group 2 = {2, 4} 'and' node group 2 = {1, 3} '. Then, one node is assigned to each node group according to the value of α' Group 1 = {4, 2} 'and' node group 2 = {1, 3} ', and then transmitted to the first cloud 150.

영역 질의 처리 시스템(100)은, 제1 클라우드(150)에서, 상기 순서 변경 함수의 역변경 함수 'π-1'을 이용하여 각 노드 그룹에 속한 단말 노드들의 식별 번호를 '{4, 2}→{1, 3}', '{1, 3}→{4, 2}'와 같이 역변경하고(단계 460), 노드 그룹 별 노드에 저장된 데이터 및 SRO 프로토콜을 통해 반환된 각 노드의 E(α)를 이용해 SM 프로토콜을 수행하고, SM 프로토콜을 수행한 결과를 모두 더하여, 질의와 관련된 노드 내에 존재하는 데이터를 E(cand)에 저장하고, 질의 영역과 겹치는 노드가 저장하고 있는 모든 데이터 E(cand)를, 질의 결과 후보 'E(cand)'로서 추출할 수 있다(단계 470).Range query processing system 100 includes a first cloud 150, the inverse function of the change in order to change the function using a "π -1" to the identification number of the terminal nodes in each group of nodes, {4, 2} in (Step 460), the data stored in each node group and the E (1, 3) of each node returned through the SRO protocol are reversed α), and adds all the results of the SM protocol, stores the data in the node related to the query in E (cand), and stores all data E (cand) stored in the node overlapping the query area cand) as the query result candidate E (cand) (step 470).

영역 질의 처리 시스템(100)은 질의 결과 후보로서 추출한 데이터와 질의 영역을 기반으로 SRO 프로토콜을 수행하여, 질의 영역에 속하는 데이터를 탐색할 수 있다.The area query processing system 100 can search for data belonging to the query area by executing the SRO protocol based on the extracted data and the query area as the query result candidates.

이하, 도 5를 참조하여, 사용자 질의를 처리하기 위해 질의 영역 내 데이터를 탐색하고, 최종 질의 결과를 단말(190)에 제공하는 과정을 설명한다.Hereinafter, a process of searching data in a query area to process a user query and providing a final query result to the terminal 190 will be described with reference to FIG.

도 5는 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 시스템에서, 질의 영역 내 데이터를 탐색하는 과정을 도시한 도면이다.5 is a diagram illustrating a process of searching for data in a query area in an encryption index-based area query processing system according to an embodiment of the present invention.

도 5를 참조하면, 영역 질의 처리 시스템(100)은, 제1 클라우드(510)에서, 추출된 질의 결과 후보 'E(cand) = {E(t5), E(t6), E(t7), E(t8)}'에 대해 SBD 프로토콜을 수행하여 암호화 이진수 [cand]로 변환하고(단계 510), [cand]와 [q]를 기반으로 SRO 프로토콜을 수행하여, SRO 수행 결과 반환된 E(α)의 값이 'E(1)'인 데이터를, 질의 영역 내에 존재하는 데이터로서 탐색할 수 있다(단계 520).Referring to FIG. 5, the region query processing system 100 receives the extracted query result candidates E (cand) = {E (t 5 ), E (t 6 ), E 7), E (t 8) } ' do the SBD protocol for converted into encrypted binary number [cand] (step 510), [cand] and [q], based in performing the SRO protocol, SRO performed result returned The data having the value E (alpha) of 'E (1)' can be searched as data existing in the query area (step 520).

예를 들어, 영역 질의 처리 시스템(100)은 SRO 수행 결과 'E(α) = {E(0), E(1), E(1), E(0)}'으로 계산되는 경우, 'E(1)'로 반환되는 데이터 't6' 및 't7'을, 질의 영역 내에 존재하는 데이터로서 탐색할 수 있다. 여기서, SRO 수행 결과 반환된 E(α)의 값이 'E(1)'인 데이터는 사용자 질의에 대한 최종 질의 결과일 수 있다.For example, if the area query processing system 100 calculates' S (α) = {E (0), E (1), E (1), E T 6 'and' t 7 ', which are returned to (1)', as data existing in the query area. Here, the data whose E (α) value is 'E (1)' as a result of the SRO execution may be the final query result for the user query.

또한, 영역 질의 처리 시스템(100)은 질의 영역에 속하는 데이터와 임의의 난수를 기반으로 SRO 프로토콜을 수행한 결과값을, 임의의 순서 변경 함수에 따라 복수의 결과값으로 변경할 수 있다. 영역 질의 처리 시스템(100)은 상기 복수의 결과값 중 제1 결과값을 단말(190)로 반환하고, 복수의 결과값 중 제2 결과값을 제2 클라우드(180)로 전송하여 제2 클라우드(180)에 의해 복호화된 제2 결과값을 단말(190)로 반환할 수 있다(단계 530).In addition, the area query processing system 100 can change the result of performing the SRO protocol based on the data belonging to the query area and an arbitrary random number to a plurality of result values according to an arbitrary order change function. The region query processing system 100 returns the first result value among the plurality of result values to the terminal 190 and transmits the second result value among the plurality of result values to the second cloud 180, 180) to the terminal 190 (step 530).

예를 들어, 영역 질의 처리 시스템(100)은 제1 결과값 'r'을, 순서 변경 후 단말(190)에 전송하고, 제2 결과값 'E(result+r)' 및 'E(α)'을, 제1 결과값 'r'과 동일한 방법으로 순서 변경한 후 제2 클라우드(180)로 전송할 수 있다. 이에 따라, 제2 클라우드(180)에서는 도 5의 표(501)와 같은 정보를 확인할 수 있게 된다.For example, the area query processing system 100 transmits the first result 'r' to the terminal 190 after changing the order, and outputs the second result 'E (result + r)' and 'E (α) 'May be changed in the same manner as the first result value' r ', and then transmitted to the second cloud 180. Accordingly, the second cloud 180 can confirm the same information as the table 501 of FIG.

영역 질의 처리 시스템(100)은 제2 클라우드(180)에서 복호화를 통해, 'α', 'cand+r'를 획득하고, 'α=1'인 'cand+r' 및 'α'를 단말(190)로 전송할 수 있다(단계 540). 이에 따라, 단말(190)에서는 도 5의 표(502)와 같은 정보를 확인할 수 있게 된다.The region query processing system 100 acquires '?' And 'cand + r' through decryption in the second cloud 180 and transmits 'cand + r' and '?' 190 (step 540). Accordingly, the terminal 190 can confirm the same information as the table 502 of FIG.

단말(190)은 상기 제1 결과값과 상기 복호화된 제2 결과값과의 차를 이용하여 상기 사용자 질의에 대한 최종 질의 결과를 계산하여 획득할 수 있다(단계 550).The terminal 190 may calculate a final query result for the user query using the difference between the first result value and the decoded second result value (step 550).

예를 들어, 단말(190)에서는 제1 결과값과 상기 복호화된 제2 결과값과의 차('cand+r' - 'r')를 계산하여 최종 질의 결과를 도출할 수 있게 된다.For example, the terminal 190 can calculate the final query result by calculating the difference ('cand + r' - 'r') between the first resultant value and the decoded second resultant value.

이와 같이, 영역 질의 처리 시스템(100)은 단말(190)에 복호화된 질의 결과를 전송하면서도, 질의 결과가 클라우드에 모두 노출되지 않도록 방지 함으로써 단말(190)에서의 질의 처리 비용을 최소화할 수 있다.In this manner, the area query processing system 100 can minimize the query processing cost in the terminal 190 by preventing the query result from being exposed to the cloud while transmitting the decoded query result to the terminal 190. [

실시예에 따라, 영역 질의 처리 시스템(100)은 상기 사용자 질의와 연관된 질의 영역을 구성하는 하한점 및 상한점이, 단말(190)에 제공한 암호화키(130)로 암호화되어 단말(190)로부터 수신되면, 제1 클라우드(150)에서, 암호화 연산 프로토콜을 수행하여 암호화 인덱스 트리(170)를 탐색한 단말 노드를 제2 클라우드(180)로 전달하는 제1 단계와, 제2 클라우드(180)에서, 복호화 키(140)로 상기 단말 노드로부터 획득한 데이터에 대해 암호화 연산 프로토콜을 수행한 결과를 제1 클라우드(150)로 전달하는 제2 단계, 및 상기 사용자 질의에 대한 결과가 도출될 때까지, 상기 제1 및 제2 단계를 반복하여, 상기 사용자 질의를 처리할 수도 있다.According to an embodiment, the area query processing system 100 is configured such that a lower limit and an upper limit point constituting a query area associated with the user query are encrypted with an encryption key 130 provided to the terminal 190, A first step of performing a cryptographic operation protocol in the first cloud 150 and transferring the terminal node searching the cryptographic index tree 170 to the second cloud 180. In the second cloud 180, A second step of transmitting a result of performing an encryption operation protocol on data acquired from the terminal node to the decryption key 140 to the first cloud 150, The first and second steps may be repeated to process the user query.

이와 같이, 본 발명의 일실시예에 따르면, 클라우드에 아웃소싱된 암호화 데이터베이스(160)에 대한 인증된 사용자로부터의 영역 질의를 처리 시, 암호화 인덱스 트리(170)를 기반으로 SBN 프로토콜, SCMP 프로토콜 및 SRO 프로토콜 중 적어도 하나의 암호화 연산 프로토콜을 수행 함으로써 추가적인 정보의 노출을 방지하여, 데이터 보호와 사용자 질의 보호 뿐만 아니라, 질의 처리 과정에서의 데이터 접근 패턴 보호를 모두 지원할 수 있다.As described above, according to one embodiment of the present invention, when processing an area query from an authenticated user for an encryption outsourced database 160 in the cloud, the SBN protocol, the SCMP protocol, and the SRO Protocol, thereby protecting both the data protection and the user query protection as well as the data access pattern protection in the query processing.

이하, 도 6에서는 본 발명의 실시예들에 따른 영역 질의 처리 시스템(100)의 작업 흐름을 상세히 설명한다.Hereinafter, FIG. 6 illustrates in detail the operation flow of the area query processing system 100 according to the embodiments of the present invention.

도 6은 본 발명의 일실시예에 따른 암호화 인덱스 기반 영역 질의 처리 방법의 순서를 도시한 흐름도이다.6 is a flowchart illustrating a procedure of an encryption index-based area query processing method according to an embodiment of the present invention.

본 실시예에 따른 영역 질의 처리 방법은 상술한 영역 질의 처리 시스템(100)에 의해 수행될 수 있다.The region query processing method according to the present embodiment can be performed by the above-described region query processing system 100. [

도 6을 참조하면, 단계(610)에서, 영역 질의 처리 시스템(100)은 인덱스 트리(120)를 암호화하여, 암호화 인덱스 트리(130)를 생성한다.Referring to FIG. 6, in step 610, the area query processing system 100 encrypts the index tree 120 to generate an encrypted index tree 130.

본 단계(610)에서, 영역 질의 처리 시스템(100)은 암호화 데이터베이스(160)의 생성 시 이용한 동일 암호화 키(130)로, 인덱스 트리(120)에 포함되는 각 단말 노드를 암호화 하여 암호화 인덱스 트리(170)를 생성할 수 있다.The area query processing system 100 encrypts each terminal node included in the index tree 120 with the same encryption key 130 used when the encryption database 160 is created, 170 < / RTI >

일례로, 영역 질의 처리 시스템(100)은 원본 데이터가 유지되는 데이터베이스(110)를, 패일러(Paillier) 암호화 시스템을 기반으로 암호화하여 암호화 데이터베이스(160)를 생성할 수 있으며, 이를 통해, 데이터베이스(110)의 아웃소싱으로 인한 데이터 노출을 방지할 수 있다.In one example, the area query processing system 100 may encrypt the database 110 where the original data is maintained, based on a Paillier cryptographic system to generate an encryption database 160, 110 can be prevented from being exposed to data.

여기서, 패일러(Paillier) 암호화 시스템은 복호화의 과정 없이 암호화 데이터의 합 연산(아래의 수식 (1) 참조)과 곱 연산(아래의 수식 (2) 참조)을 처리할 수 있는 대표적인 준동형 암호화 기법으로, 동일한 평문이더라도 암호화 값을 상이하게 함으로써 의미적 보안(semantic security)을 지원할 수 있다.Here, the Paillier cryptosystem is a typical cryptosystem which can process the summation of encryption data (see Equation (1) below) and multiplication (see Equation (2) below) , It is possible to support semantic security by making encryption values different even if they are the same plain text.

E(a+b) = E(a)*E(b) mod N2 (1) E (a + b) = E (a) * E (b) mod N 2 (1)

E(a*b) = E(a)b mod N2 (2)E (a * b) = E (a) b mod N 2 (2)

또한, 영역 질의 처리 시스템(100)은 레벨이 h이고, 총 2h-1개의 단말 노드를 가지는 인덱스 트리(120)를 데이터베이스(110)로부터 구축할 수 있으며, 인덱스 트리(120)의 각 단말 노드는, 자신이 담당하는 노드 영역에 관한 영역 정보와, 노드 영역 내에 포함되는 데이터에 대한 데이터ID를 평문 형태로 저장할 수 있다. 여기서, 상기 영역 정보는 노드 영역에 대한 하한점(lbz,m) 및 상한점(ubz,m)(1=z≤=numnode, 1≤j≤m)을 속성(m) 별로 포함할 수 있다.The area query processing system 100 can construct an index tree 120 having a level h and a total of 2 h-1 terminal nodes from the database 110, Can store the area information about the node area that it is responsible for and the data ID for the data contained in the node area in a plain text form. Here, the area information includes a lower limit point (lb z, m ) and an upper limit point (ub z, m ) (1 = z ? = Num node , 1? .

영역 질의 처리 시스템(100)은 각 단말 노드와 연관된 노드 영역에 포함되는 데이터에 대한 데이터ID를, 속성 별로 더 암호화하여 암호화 인덱스 트리(170)를 생성할 수 있다.The area query processing system 100 may further encrypt the data IDs of the data included in the node area associated with each terminal node by attribute to generate the encryption index tree 170. [

예를 들어, 영역 질의 처리 시스템(100)은 인덱스 트리(120)의 단말 노드 'node 1'에 포함되는 데이터ID 't1', 't2'를, 속성 m 별로 암호화하고, 나머지 단말 노드에 포함된 데이터ID를 속성 m 별로 암호화하여, 암호화 인덱스 트리(170)를 생성할 수 있다.For example, the area query processing system 100 encrypts the data ID 't 1 ', 't 2 ' included in the terminal node 'node 1' of the index tree 120 for each attribute m, And encrypts the included data ID by attribute m to generate the encryption index tree 170. [

단계(620)에서, 영역 질의 처리 시스템(100)은 암호화 인덱스 트리(130)를, 암호화 데이터베이스(110), 및 암호화 키(130)를 유지하는 제1 클라우드(150)에 보관하고, 단계(630)에서, 영역 질의 처리 시스템(100)은 암호화 키(130)에 대응한 복호화 키(140)를, 제1 클라우드(150)와 상이한 제2 클라우드(180)에 보관한다.In step 620, the area query processing system 100 stores the cryptographic index tree 130 in the first cloud 150 holding the cryptographic database 110 and the cryptographic key 130, and in step 630 The region query processing system 100 stores the decryption key 140 corresponding to the encryption key 130 in the second cloud 180 which is different from the first cloud 150. [

다시 말해, 영역 질의 처리 시스템(100)은 암호화 인덱스 트리(170)를, 암호화 데이터베이스(160) 및 암호화 키(130)와 함께 제1 클라우드(150)에 보관하고, 비밀 키로 생성한 복호화 키(140)를, 다른 제2 클라우드(180)에 보관 함으로써, 사용자 질의를 처리하기 위해 암호화 프로토콜을 수행 시, 질의 처리 과정 중에 획득한 정보를 바탕으로, 추가적인 정보를 획득하기 위해 다른 클라우드와 결탁하여 데이터 및 정보를 주고 받지 않도록 할 수 있다.In other words, the area query processing system 100 stores the encryption index tree 170 together with the encryption database 160 and the encryption key 130 in the first cloud 150, and decrypts the decryption key 140 ) Is stored in the second cloud 180, and when an encryption protocol is executed to process the user query, data and data are concatenated with other clouds to obtain additional information based on the information acquired during the query processing Information can not be exchanged.

단계(640)에서, 영역 질의 처리 시스템(100)은 인증된 단말(190)로부터 사용자 질의가 수신되는지 판단한다. 본 단계(640)에서, 영역 질의 처리 시스템(100)은 인증된 단말(190)로부터, 데이터베이스(110)의 암호화 시 이용한 암호화 키(130)를 이용하여 암호화된 사용자 질의가 수신되는지 판단할 수 있다.In step 640, the area query processing system 100 determines whether a user query is received from the authenticated terminal 190. [ In this step 640, the area query processing system 100 can determine whether an encrypted user query is received from the authenticated terminal 190 using the encryption key 130 used in the encryption of the database 110 .

영역 질의 처리 시스템(100)은 암호화 데이터베이스(160)의 생성 시 암호화 키(130)를 인증된 단말(190)로 제공 함으로써, 단말(190)에서 데이터를 획득하기 위해 제1 클라우드(150)로 질의 요청하려는 경우, 동일 암호화 키(130)를 이용하여 사용자 질의를 암호화 하도록 할 수 있다.The zone query processing system 100 queries the first cloud 150 to obtain data at the terminal 190 by providing the encryption key 130 to the authenticated terminal 190 when generating the encryption database 160. [ If so, the same encryption key 130 may be used to encrypt the user query.

예를 들어, 단말(190)에서는 사용자 질의와 연관된 질의 영역을 구성하는 하한점 및 상한점을, 예컨대 'E(q.lbj), E(q.ubj)(1=j≤=m)'와 같이 암호화하여 사용자 질의를 요청할 수 있다.For example, in the terminal 190, 'E (q.lb j ), E (q.ub j ) (1 = j ? = M) is set as a lower limit point and an upper limit point constituting the query area associated with the user query, 'To request a user query.

이에 따라, 영역 질의 처리 시스템(100)은 암호화된 질의를 기반으로 서비스를 제공하여 데이터 보호 및 사용자 질의 보호를 지원할 수 있다.Accordingly, the area query processing system 100 can provide a service based on an encrypted query to support data protection and user query protection.

상기 단계(640)에서의 판단 결과, 인증된 단말(190)로부터 사용자 질의가 수신되는 경우, 단계(650)에서, 영역 질의 처리 시스템(100)은 선정된 암호화 연산 프로토콜을 기반으로, 상기 제1 클라우드(150)와 제2 클라우드(180) 간에 다자간 계산(SMC)을 수행하여, 사용자 질의를 처리한다.If the user query is received from the authenticated terminal 190 as a result of the determination in step 640, the region query processing system 100, in step 650, (SMC) between the cloud 150 and the second cloud 180 to process the user query.

예를 들어, 도 3을 참조하면, 암호화 인덱스 트리(170)는 4개의 단말 노드(node 1, node2, node3, node4)를 포함하고, 각 단말 노드는 하한점과 상한점으로 구성되는 노드 영역(310, 320, 330, 340)을 가질 수 있다.For example, referring to FIG. 3, the encryption index tree 170 includes four terminal nodes (node 1, node 2, node 3, and node 4), and each terminal node includes a node region 310, 320, 330, 340).

영역 질의 처리 시스템(100)은 각 노드 영역(310, 320, 330, 340) 중에서 사용자가 전송한 질의 영역(350)과 겹치는 제1 단말 노드를 탐색하고, 해당 제1 단말 노드 내에 존재하는 데이터를 접근 패턴 노출 없이 안전하게 탐색할 수 있다.The region query processing system 100 searches for a first terminal node overlapping a query region 350 transmitted from a user among the respective node regions 310, 320, 330, and 340, and searches for data existing in the corresponding first terminal node You can safely browse without exposing your access patterns.

영역 질의 처리 시스템(100)은, SRO 프로토콜을 수행하여, 질의 영역을 구성하는 제1 하한점이, 노드 영역을 구성하는 제2 상한점보다 작고, 노드 영역을 구성하는 제2 하한점이 상기 질의 영역을 구성하는 제1 상한점보다 작은 경우(겹침 조건), 상기 질의 영역과 상기 노드 영역이 겹치는 것으로 판단하고, 결과값으로 'E(1)'을 반환할 수 있다. 영역 질의 처리 시스템(100)은, 상기 SRO 프로토콜의 수행 결과로서 'E(1)'을 반환하는 단말 노드를, 질의 영역과 겹치는 제1 단말 노드로서 탐색할 수 있다.The region query processing system 100 performs the SRO protocol to determine whether or not the first lower limit point constituting the query region is smaller than the second upper limit point constituting the node region and the second lower limit constituting the node region is the query region (Overlapping condition), it is determined that the query area overlaps with the node area, and 'E (1)' is returned as a result value. The area query processing system 100 can search a terminal node that returns 'E (1)' as a result of the execution of the SRO protocol as a first terminal node overlapping a query area.

이때, 영역 질의 처리 시스템(100)은, 상기 질의 영역과 상기 노드 영역이 겹치지 않는 것으로 판단되면, 상기 SRO 프로토콜의 수행 결과로서 'E(0)'을 반환할 수 있다. 영역 질의 처리 시스템(100)은, 상기 SRO 프로토콜의 수행 결과로서 'E(0)'을 반환하는 단말 노드를, 상기 질의 영역과 겹치지 않는 제2 단말 노드로서 필터링하여 상기 제1 단말 노드를 탐색할 수도 있다.At this time, the area query processing system 100 may return 'E (0)' as a result of the execution of the SRO protocol if it is determined that the query area and the node area do not overlap. The area query processing system 100 searches for the first terminal node by filtering the terminal node returning 'E (0)' as a result of the execution of the SRO protocol as a second terminal node that does not overlap the query area It is possible.

영역 질의 처리 시스템(100)은, 상기 SRO 프로토콜을 통해 탐색한 상기 제1 단말 노드에 저장되는 데이터를, 질의 결과 후보 'E(cand)'로서 추출하고, 질의 결과 후보로서 추출한 데이터와 질의 영역을 기반으로 SRO 프로토콜을 수행하여, 질의 영역에 속하는 데이터를 탐색할 수 있다.The area query processing system 100 extracts data stored in the first terminal node searched through the SRO protocol as a query result candidate 'E (cand)', and extracts data extracted as a query result candidate and a query area Based on the SRO protocol, data belonging to the query area can be searched.

예를 들어, 영역 질의 처리 시스템(100)은, 제1 클라우드(510)에서, 추출된 질의 결과 후보 'E(cand)'에 대해 SBD 프로토콜을 수행하여 암호화된 이진수로 변환하고, 이를 바탕으로 SRO 프로토콜을 수행할 수 있다. 영역 질의 처리 시스템(100)은 SRO 프로토콜 수행 결과 'E(α) = {E(0), E(1), E(1), E(0)}' 중에서 'E(1)'로 반환되는 데이터 't6' 및 't7'을, 실제로 질의 영역 내에 존재하는 데이터로서 탐색할 수 있다.For example, the area query processing system 100 performs an SBD protocol on the extracted query result candidate 'E (cand)' in the first cloud 510 to convert it into an encrypted binary number. Based on this, the SRO Protocol. The region query processing system 100 returns' E (1) 'out of the SRO protocol execution result' E (α) = {E (0), E (1), E (1), E The data 't 6 ' and 't 7 ' can be searched as data actually existing in the query area.

영역 질의 처리 시스템(100)은 상기 탐색한 데이터에 기초하여, 사용자 질의에 대한 결과를 단말(190)에 반환할 수 있다.The area query processing system 100 may return the result of the user query to the terminal 190 based on the retrieved data.

이때, 영역 질의 처리 시스템(100)은 질의 영역에 속하는 데이터와 임의의 난수를 기반으로 SRO 프로토콜을 수행한 결과값을, 임의의 순서 변경 함수에 따라 복수의 결과값으로 변경하고, 복수의 결과값 중 제1 결과값을 단말(190)로 반환할 수 있다.At this time, the area query processing system 100 changes the result value obtained by performing the SRO protocol based on the data belonging to the query area and an arbitrary random number to a plurality of result values according to an arbitrary order changing function, To the terminal 190. The terminal 190 may then send the first result to the terminal 190.

또한, 영역 질의 처리 시스템(100)은 복수의 결과값 중 제2 결과값을 제2 클라우드(180)로 전송하고, 제2 클라우드(180)에 의해 복호화된 제2 결과값을 단말(190)로 반환할 수 있다.The region query processing system 100 transmits the second result value among the plurality of result values to the second cloud 180 and transmits the second result value decoded by the second cloud 180 to the terminal 190 Can return.

이에 따라, 단말(190)에서 제1 결과값과 복호화된 제2 결과값과의 차를 이용하여 상기 사용자 질의에 대한 최종 질의 결과를 계산하여 획득하도록 할 수 있다.Accordingly, the terminal 190 may calculate and obtain the final query result for the user query using the difference between the first result value and the decoded second result value.

이와 같이, 영역 질의 처리 시스템(100)은 단말(190)에 복호화된 질의 결과를 전송하면서도, 질의 결과가 클라우드에 모두 노출되지 않도록 방지 함으로써 단말(190)에서의 질의 처리 비용을 최소화할 수 있다.In this manner, the area query processing system 100 can minimize the query processing cost in the terminal 190 by preventing the query result from being exposed to the cloud while transmitting the decoded query result to the terminal 190. [

예를 들어, 영역 질의 처리 시스템(100)은 제1 결과값 'r'을, 순서 변경 후 단말(190)에 전송하고, 제2 결과값 'E(result+r)' 및 'E(α)'을, 제2 클라우드(180)로 전송할 수 있다. 이에 따라, 제2 클라우드(180)에서는 도 5의 표(501)와 같은 정보를 확인할 수 있게 된다.For example, the area query processing system 100 transmits the first result 'r' to the terminal 190 after changing the order, and outputs the second result 'E (result + r)' and 'E (α) Can be transmitted to the second cloud 180. Accordingly, the second cloud 180 can confirm the same information as the table 501 of FIG.

또한, 영역 질의 처리 시스템(100)은 제2 클라우드(180)에서 복호화를 통해, 'α', 'cand+r'를 획득하고, 'α=1'인 'cand+r' 및 'α'를 단말(190)로 전송할 수 있다. 이에 따라, 단말(190)에서는 도 5의 표(502)와 같은 정보를 확인할 수 있게 된다.The area query processing system 100 acquires '?' And 'cand + r' through decoding in the second cloud 180 and outputs 'cand + r' and '?' To the terminal (190). Accordingly, the terminal 190 can confirm the same information as the table 502 of FIG.

단말(190)에서는 제1 결과값과 상기 복호화된 제2 결과값과의 차('cand+r' - 'r')를 계산하여 최종 질의 결과를 도출할 수 있게 된다.The terminal 190 can calculate the final query result by calculating the difference ('cand + r' - 'r') between the first resultant value and the decoded second resultant value.

이와 같이, 영역 질의 처리 시스템(100)은 암호화 인덱스 트리(170)를 기반으로 제1 클라우드(150)와 제2 클라우드(180) 간에 암호화 연산 프로토콜을 수행 함으로써, 사용자 질의 처리 과정에서의 추가적인 정보의 노출을 방지할 수 있다.In this way, the area query processing system 100 performs an encryption operation protocol between the first cloud 150 and the second cloud 180 based on the encryption index tree 170, so that the additional information in the user query processing Exposure can be prevented.

이를 통해, 영역 질의 처리 시스템(100)은 암호화 데이터베이스(160) 상에서의 사용자 질의를 안전하게 처리하여, 데이터 보호 및 사용자 질의 보호와 함께, 데이터 접근 패턴 보호를 용이하게 지원할 수 있다.In this way, the area query processing system 100 can securely process user queries on the encryption database 160 to facilitate data access pattern protection, along with data protection and user query protection.

본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

100: 암호화 인덱스 기반 영역 질의 처리 시스템
110: 데이터베이스
120: 인덱스 트리
130: 암호화 키
140: 복호화 키
150: 제1 클라우드
160: 암호화 데이터베이스
170: 암호화 인덱스 트리
180: 제2 클라우드
190: 인증된 단말
100: Encryption index based area query processing system
110: Database
120: Index Tree
130: encryption key
140: Decryption key
150: 1st cloud
160: Encryption database
170: Encryption index tree
180: Second cloud
190: Authenticated terminal

Claims (11)

인덱스 트리를 암호화하여, 암호화 인덱스 트리를 생성하는 단계;
상기 암호화 인덱스 트리를, 암호화 데이터베이스, 및 암호화 키를 유지하는 제1 클라우드에 보관하는 단계;
상기 암호화 키에 대응한 복호화 키를, 상기 제1 클라우드와 상이한 제2 클라우드에 보관하는 단계; 및
인증된 단말로부터 사용자 질의가 수신되면, 선정된 암호화 연산 프로토콜을 기반으로, 상기 제1 클라우드와 상기 제2 클라우드 간에 다자간 계산(SMC, Secure Multiparty Computation)을 수행하여, 상기 사용자 질의를 처리하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
Encrypting the index tree to generate an encryption index tree;
Storing the encryption index tree in a first cloud holding an encryption database and an encryption key;
Storing a decryption key corresponding to the encryption key in a second cloud different from the first cloud; And
(SMC, Secure Multiparty Computation) between the first cloud and the second cloud based on the selected cryptographic operation protocol when the user query is received from the authenticated terminal and processing the user query
Based on the encryption index.
제1항에 있어서,
상기 사용자 질의를 처리하는 단계는,
상기 사용자 질의와 겹치는 상기 암호화 인덱스 트리 내 제1 단말 노드를 탐색하는 단계;
상기 제1 단말 노드로부터 추출된 데이터 중, 상기 사용자 질의와 연관된 질의 영역 내에 포함되는 데이터를 탐색하는 단계; 및
상기 탐색한 데이터에 기초하여, 상기 사용자 질의에 대한 결과를 상기 단말에 반환하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
The method according to claim 1,
Wherein processing the user query comprises:
Searching for a first terminal node in the encryption index tree that overlaps the user query;
Searching data included in a query area associated with the user query from data extracted from the first terminal node; And
And returning the result of the user query to the terminal based on the searched data
Based on the encryption index.
제2항에 있어서,
상기 사용자 질의를 처리하는 단계는,
상기 사용자 질의와 연관된 질의 영역 및 상기 암호화 인덱스 트리 내 각 단말 노드와 연관된 노드 영역을 기반으로, SRO(Secure Range Overlapping) 프로토콜을 수행하는 단계; 및
상기 SRO 프로토콜을 통해 탐색한 상기 제1 단말 노드에 저장되는 데이터를, 질의 결과 후보로서 추출하는 단계
를 더 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
3. The method of claim 2,
Wherein processing the user query comprises:
Performing a Secure Range Overlapping (SRO) protocol based on a query region associated with the user query and a node region associated with each end node in the cryptographic index tree; And
Extracting data stored in the first terminal node searched through the SRO protocol as a query result candidate
Wherein the encryption index based area query processing method further comprises:
제3항에 있어서,
상기 질의 영역 내에 포함되는 데이터를 탐색하는 단계는,
상기 질의 결과 후보로서 추출한 데이터와 상기 질의 영역을 기반으로 상기 SRO 프로토콜을 수행하여, 상기 질의 영역에 속하는 데이터를 탐색하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
The method of claim 3,
Wherein the step of searching for data included in the query area comprises:
Searching the data belonging to the query area by performing the SRO protocol based on the extracted data as the query result candidates and the query area
Based on the encryption index.
제4항에 있어서,
상기 사용자 질의에 대한 결과를 상기 단말에 반환하는 단계는,
상기 질의 영역에 속하는 데이터와 임의의 난수를 기반으로 SRO 프로토콜을 수행한 결과값을, 임의의 순서 변경 함수에 따라 복수의 결과값으로 변경하는 단계;
상기 복수의 결과값 중 제1 결과값을 상기 단말로 반환하고, 상기 복수의 결과값 중 제2 결과값을 상기 제2 클라우드로 전송하여 상기 제2 클라우드에 의해 복호화된 제2 결과값을 상기 단말로 반환하는 단계; 및
상기 단말에서 상기 제1 결과값과 상기 복호화된 제2 결과값과의 차를 이용하여 상기 사용자 질의에 대한 최종 질의 결과를 계산하여 획득하도록 하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
5. The method of claim 4,
And returning the result of the user query to the terminal,
Changing a result value obtained by performing an SRO protocol based on data belonging to the query area and an arbitrary random number to a plurality of result values according to an arbitrary order changing function;
A first result value of the plurality of result values is returned to the terminal, a second result value of the plurality of result values is transmitted to the second cloud, and a second result value decoded by the second cloud is transmitted to the terminal, ; And
Calculating and obtaining a final query result for the user query using the difference between the first result value and the decoded second result value at the terminal
Based on the encryption index.
제3항에 있어서,
상기 SRO 프로토콜을 수행하는 단계는,
상기 질의 영역을 구성하는 제1 하한점이, 노드 영역을 구성하는 제2 상한점보다 작고, 노드 영역을 구성하는 제2 하한점이 상기 질의 영역을 구성하는 제1 상한점보다 작은 경우,
상기 질의 영역과 상기 노드 영역이 겹치는 것으로 판단하고, 상기 SRO 프로토콜의 수행 결과로서 'E(1)'을 반환하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
The method of claim 3,
The step of performing the SRO protocol comprises:
If the first lower limit point constituting the query area is smaller than the second upper limit point constituting the node area and the second lower limit point constituting the node area is smaller than the first upper limit point constituting the query area,
Determining that the query region and the node region overlap with each other, and returning 'E (1)' as a result of performing the SRO protocol
Based on the encryption index.
제3항에 있어서,
상기 암호화 인덱스 트리 내 제1 단말 노드를 탐색하는 단계는,
상기 SRO 프로토콜의 수행 결과로서 'E(0)'을 반환하는 단말 노드를, 상기 질의 영역과 겹치지 않는 제2 단말 노드로서 필터링하여 상기 제1 단말 노드를 탐색하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
The method of claim 3,
Wherein the step of searching for a first terminal node in the encryption index tree comprises:
Searching the first terminal node by filtering a terminal node returning 'E (0)' as a result of the SRO protocol as a second terminal node that does not overlap the query region
Based on the encryption index.
제1항에 있어서,
데이터베이스를 패일러(Paillier) 암호화 시스템을 기반으로 암호화하여 상기 암호화 데이터베이스를 생성하는 단계; 및
상기 데이터베이스에 저장된 데이터를 선정된 개수 단위로 분할하고, 분할된 데이터를 포함하는 단말 노드를 복수로 가지는 상기 인덱스 트리를 구축하는 단계
를 더 포함하고,
상기 암호화 인덱스 트리를 생성하는 단계는,
상기 암호화 데이터베이스의 생성 시 이용한 동일 암호화 키로, 상기 인덱스 트리에 포함되는 각 단말 노드를 암호화 하여 상기 암호화 인덱스 트리를 생성하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
The method according to claim 1,
Encrypting the database based on a Paillier encryption system to generate the encryption database; And
Dividing data stored in the database into a predetermined number of units, and constructing the index tree having a plurality of terminal nodes including divided data
Further comprising:
Wherein the step of generating the encryption index tree comprises:
Encrypting each terminal node included in the index tree with the same encryption key used in creating the encryption database to generate the encryption index tree
Based on the encryption index.
제8항에 있어서,
상기 암호화 인덱스 트리를 생성하는 단계는,
상기 각 단말 노드와 연관된 노드 영역에 포함되는 데이터에 대한 데이터ID를, 속성 별로 더 암호화하여 상기 암호화 인덱스 트리를 생성하는 단계
를 더 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
9. The method of claim 8,
Wherein the step of generating the encryption index tree comprises:
Generating a cryptographic index tree by further encrypting data IDs for data included in a node region associated with each terminal node,
Wherein the encryption index based area query processing method further comprises:
제1항에 있어서,
상기 사용자 질의와 연관된 질의 영역을 구성하는 하한점 및 상한점이, 상기 단말에 제공한 암호화키로 암호화되어 상기 단말로부터 수신되면,
상기 사용자 질의를 처리하는 단계는,
상기 제1 클라우드에서, 암호화 연산 프로토콜을 수행하여 상기 암호화 인덱스 트리를 탐색한 단말 노드를 상기 제2 클라우드로 전달하는 제1 단계;
상기 제2 클라우드에서, 상기 복호화 키로 상기 단말 노드로부터 획득한 데이터에 대해 암호화 연산 프로토콜을 수행한 결과를 상기 제1 클라우드로 전달하는 제2 단계; 및
상기 사용자 질의에 대한 결과가 도출될 때까지, 상기 제1 및 제2 단계를 반복하여, 상기 사용자 질의를 처리하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
The method according to claim 1,
When the lower limit point and the upper limit point constituting the query area associated with the user query are encrypted with the encryption key provided to the terminal and received from the terminal,
Wherein processing the user query comprises:
A first step of transmitting a terminal node searching the encryption index tree to the second cloud by performing an encryption operation protocol in the first cloud;
A second step of transmitting, in the second cloud, a result of performing an encryption operation protocol on data acquired from the terminal node with the decryption key to the first cloud; And
Repeating the first and second steps until results for the user query are derived, and processing the user query
Based on the encryption index.
제1항에 있어서,
상기 사용자 질의를 처리하는 단계는,
SBN(Secure Bit-Not) 프로토콜, SCMP(Secure Compare) 프로토콜, SRO(Secure Range Overlapping) 프로토콜, SM(Secure Multiplication) 프로토콜, SBD(Secure Bit Decomposition) 프로토콜, 및 SMIN(Secure Minimum) 프로토콜 중 적어도 하나의 암호화 연산 프로토콜을 기반으로, 상기 사용자 질의를 처리하는 단계
를 포함하는 암호화 인덱스 기반 영역 질의 처리 방법.
The method according to claim 1,
Wherein processing the user query comprises:
At least one of a Secure Bit-Not (SBN) protocol, a Secure Compare Protocol (SCMP) protocol, a Secure Range Overlapping (SRO) protocol, a Secure Multiplication (SM) protocol, a Secure Bit Decomposition (SBD) Based on the encryption operation protocol, processing the user query
Based on the encryption index.
KR1020160115636A 2016-09-08 2016-09-08 Encrypted index based range query processing method and range query processing system KR101942763B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160115636A KR101942763B1 (en) 2016-09-08 2016-09-08 Encrypted index based range query processing method and range query processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160115636A KR101942763B1 (en) 2016-09-08 2016-09-08 Encrypted index based range query processing method and range query processing system

Publications (2)

Publication Number Publication Date
KR20180028226A true KR20180028226A (en) 2018-03-16
KR101942763B1 KR101942763B1 (en) 2019-01-28

Family

ID=61910381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160115636A KR101942763B1 (en) 2016-09-08 2016-09-08 Encrypted index based range query processing method and range query processing system

Country Status (1)

Country Link
KR (1) KR101942763B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416720A (en) * 2021-12-08 2022-04-29 西安电子科技大学 Efficient, flexible and verifiable multi-attribute range retrieval method and system in cloud environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016122513A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Data analytics on encrypted data elements

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016122513A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Data analytics on encrypted data elements

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Y. Elmehdwi et al, "Secure k-nearest neighbor query over encrypted data in outsourced environments", 2014 IEEE 30th International Conference, pp.664-675, 2014.03.31. *
Yanguo Peng et al, "An efficient range query model over encrypted outsourced data using secure k-d tree", 2016 International Conference, 2016.07.25. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416720A (en) * 2021-12-08 2022-04-29 西安电子科技大学 Efficient, flexible and verifiable multi-attribute range retrieval method and system in cloud environment

Also Published As

Publication number Publication date
KR101942763B1 (en) 2019-01-28

Similar Documents

Publication Publication Date Title
Chen et al. An efficient privacy-preserving ranked keyword search method
KR101679156B1 (en) Secure private database querying with content hiding bloom filters
EP2731046B1 (en) Client computer for querying a database stored on a server via a network
US8555059B2 (en) Secure local update of content management software
JP7020780B2 (en) Server equipment, data search system, search method and search program
CN107291861B (en) Encryption graph-oriented approximate shortest distance query method with constraints
CN109361644A (en) A kind of Fog property base encryption method for supporting fast search and decryption
KR102421572B1 (en) Notification service server capable of providing access notification service to harmful sites and operating method thereof
CN109728904B (en) Space network query method for protecting privacy
Rao et al. R-PEKS: RBAC enabled PEKS for secure access of cloud data
KR20170122048A (en) System and method for searching encrypted data using bloom filter and binary tree
CN111753312B (en) Data processing method, device, equipment and system
CN105897419B (en) A kind of multi-user's dynamic keyword word can search for encryption method
CN114091062A (en) Occupational data processing method and device
KR101942763B1 (en) Encrypted index based range query processing method and range query processing system
KR102248756B1 (en) Encryption system, apparatus and method for providing searchable having forward stability
JP2014528680A (en) Method, system and apparatus for digital content transmission
JP2018042045A (en) Collation system and method and program
WO2017209228A1 (en) Encrypted information matching device, encrypted information matching method, and recording medium having encrypted information matching program stored thereon
KR102010644B1 (en) METHOD AND SYSTEM FOR k-NN CLASSIFICATION PROCESSING BASED ON GARBLED CIRCUIT
KR101916228B1 (en) METHOD AND SYSTEM FOR k-NN QUERY PROCESSING BASED ON GARBLED CIRCUIT
CN113609077A (en) File retrieval method, system, storage medium and equipment
CN109582818B (en) Music library cloud retrieval method based on searchable encryption
CN113158087A (en) Query method and device for space text
JP4624734B2 (en) Agent control system and method

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