KR102010644B1 - METHOD AND SYSTEM FOR k-NN CLASSIFICATION PROCESSING BASED ON GARBLED CIRCUIT - Google Patents
METHOD AND SYSTEM FOR k-NN CLASSIFICATION PROCESSING BASED ON GARBLED CIRCUIT Download PDFInfo
- Publication number
- KR102010644B1 KR102010644B1 KR1020170059798A KR20170059798A KR102010644B1 KR 102010644 B1 KR102010644 B1 KR 102010644B1 KR 1020170059798 A KR1020170059798 A KR 1020170059798A KR 20170059798 A KR20170059798 A KR 20170059798A KR 102010644 B1 KR102010644 B1 KR 102010644B1
- Authority
- KR
- South Korea
- Prior art keywords
- cloud
- classification processing
- data
- processing system
- encryption
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
Abstract
본 발명은 클라우드에 아웃소싱된 암호화 데이터베이스 상에서의 k-NN 분류 처리 알고리즘에 관한 것이다. 본 발명의 일실시예에 따른 가블드 회로(GARBLED CIRCUIT) 기반 k-NN 분류 처리 방법은, 사용자 단말로부터의 kNN(k Nearest Neighbor) 질의에 대한 결과데이터가 도출 됨에 따라, 상기 결과데이터의 도출에 관여한, 제1 클라우드와 제2 클라우드 사이의 다자간 빈도(SF, Secure Frequency)를 수행하여, 상기 kNN 질의와, 상기 kNN 질의에 의해 도출되었던 과거 결과데이터 간에 대한 빈번도를 계산하는 단계, 상기 빈번도의 계산을 통해, 탐색 범주를 선택하는 단계, 및 상기 탐색 범주가, 상기 도출된 결과데이터의 범주와 일치하면, 상기 도출된 결과데이터를 사용자 단말로 제공하는 단계를 포함하여 구성할 수 있다.The present invention relates to a k-NN classification processing algorithm on a cryptographic database outsourced to the cloud. In the GARBLED CIRCUIT-based k-NN classification processing method according to an embodiment of the present invention, as the result data for the k Nearest Neighbor (kNN) query from the user terminal is derived, the result data is derived. Calculating a frequency between the kNN query and past result data derived by the kNN query by performing a secure frequency (SF) between the first cloud and the second cloud, wherein the frequent Through calculation of the figure, selecting a search category, and if the search category matches the category of the derived result data, it may comprise the step of providing the derived result data to the user terminal.
Description
본 발명은 클라우드에 아웃소싱된 암호화 데이터베이스 상에서의 k-NN 분류 처리 알고리즘에 관한 것으로, 암호화 데이터베이스에 대한 사용자 질의를 처리하는 과정에서 노출될 우려가 있는 데이터 접근 패턴의 보호하고 데이터 분류를 지원하기 위한 것이다.The present invention relates to a k-NN classification processing algorithm on an encrypted database outsourced to the cloud, to protect data access patterns and to support data classification that may be exposed in processing a user query against an encrypted database. .
최근 클라우드 컴퓨팅에 대한 연구가 활성화됨에 따라 데이터베이스의 관리 및 운용을 외부사업자에게 위탁하는 데이터베이스 아웃소싱에 대한 관심이 고조되고 있다. Recently, as research on cloud computing has been activated, interest in database outsourcing, which entrusts external operators to database management and operation, is increasing.
그러나 종래 기술에서의 아웃소싱된 데이터베이스는 클라우드 및 공격자로부터 의미 있는 정보가 추출되어 악용될 수 있고, 사용자가 클라우드에 전송하는 질의를 통해 사용자의 성향이나, 선호도 등과 같은 개인 정보가 유추될 수 있는 보안 상의 문제가 있다.However, the outsourced database in the prior art can be exploited by extracting meaningful information from the cloud and attacker, and inferring personal information such as user's disposition and preference through queries sent to the cloud. there is a problem.
이러한 문제를 해결하기 위해 데이터베이스를 다수의 클라우드에 분산 저장하고, 데이터베이스의 내용을 변환한 후 아웃소싱하는 연구 등이 개발되어 오고 있다. 그러나 여전히 데이터 및 질의를 완벽하게 보호할 수 없는 단점이 있다.In order to solve this problem, researches for distributing and storing the database in multiple clouds, converting the contents of the database, and outsourcing have been developed. However, there are still disadvantages in that data and queries cannot be completely protected.
또한, 종래 기술에서의 kNN 분류 기법은 데이터 마이닝 기법이 대표적으로 사용되어 오고 있다. 데이터 마이닝 기법은 주어진 질의로부터 가장 가까운 k개의 데이터를 추출한 후에 빈번도가 가장 높은 범주를 추출하는 기법으로, 이는 높은 정보 보호를 제공하지만 질의처리 비용이 높다는 단점이 있다.In addition, the data mining technique has been typically used as the kNN classification technique in the prior art. The data mining technique extracts the most frequent category after extracting k nearest data from a given query, which provides high information protection but has a disadvantage of high query processing cost.
따라서, 클라우드에 아웃소싱된 데이터베이스 환경에서 데이터 보호, 사용자 질의 보호, 데이터 접근 패턴 보호를 모두 지원하는 동시에 효율적인 질의처리 및 데이터 분류 성능을 제공할 수 있는 시스템 및 방법이 필요한 실정이다. Therefore, there is a need for a system and method that can support data protection, user query protection, and data access pattern protection in a database environment outsourced to the cloud while providing efficient query processing and data classification performance.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, k-NN 질의처리 알고리즘의 결과데이터를 분류 분석함으로써, 정보 유출 없이 해당 결과데이터에 대한 등급을 추출하는 분석할 수 있는 것을 목적으로 한다.The present invention has been made to solve the above problems, the object of the present invention is to classify and analyze the result data of the k-NN query processing algorithm, it can be analyzed to extract the grade for the corresponding result data without information leakage.
또한, 본 발명은 가블드 회로 및 데이터 패킹 기법 기반의 암호화 연산 프로토콜을 제공함으로써, 연산 횟수를 감소시켜 효율적인 질의처리 성능을 제공할 수 있게 하는 다른 목적을 가지고 있다.In addition, the present invention has another object to provide an efficient query processing performance by reducing the number of operations by providing an encryption operation protocol based on the garbled circuit and data packing technique.
또한, 본 발명은 향상된 암호화 연산 프로토콜을 기반으로 하는 암호화 인덱스 탐색과 암호화 데이터베이스 상에서의 데이터 접근 패턴 보호를 지원하는 k-NN 질의처리 알고리즘을 제공함으로써, 추가적인 정보의 노출을 방지하여 데이터 보호와 사용자 질의 보호뿐만 아니라, 질의 처리 과정에서의 데이터 접근 패턴 보호를 모두 지원할 수 있게 하는 다른 목적을 가지고 있다.In addition, the present invention provides a k-NN query processing algorithm that supports encryption index search and data access pattern protection on an encrypted database based on an improved encryption operation protocol, thereby preventing data from being exposed and protecting data and user queries. In addition to protection, it has another purpose to support both data access pattern protection during query processing.
본 발명의 일실시예에 따른 가블드 회로(GARBLED CIRCUIT) 기반 k-NN 질의 분류 방법은, 사용자 단말로부터의 kNN(k Nearest Neighbor) 질의에 대한 결과데이터가 도출 됨에 따라, 상기 결과데이터의 도출에 관여한, 제1 클라우드와 제2 클라우드 사이의 다자간 빈도(SF, Secure Frequency)를 수행하여, 상기 kNN 질의와, 상기 kNN 질의에 의해 도출되었던 과거 결과데이터 간에 대한 빈번도를 계산하는 단계, 상기 빈번도의 계산을 통해, 탐색 범주를 선택하는 단계, 및 상기 탐색 범주가, 상기 도출된 결과데이터의 범주와 일치하면, 상기 도출된 결과데이터를 사용자 단말로 제공하는 단계를 포함하여 구성할 수 있다.In the GARBLED CIRCUIT based k-NN query classification method according to an embodiment of the present invention, as the result data for the k Nearest Neighbor (kNN) query from the user terminal is derived, the result data is derived. Calculating a frequency between the kNN query and past result data derived by the kNN query by performing a secure frequency (SF) between the first cloud and the second cloud, wherein the frequent Through calculation of the figure, selecting a search category, and if the search category matches the category of the derived result data, it may comprise the step of providing the derived result data to the user terminal.
또한, 본 발명의 일실시예에 따른 가블드 회로 기반 k-NN 분류 처리 시스템은, 사용자 단말로부터의 kNN 질의에 대한 결과데이터가 도출 됨에 따라, 상기 결과데이터의 도출에 관여한, 제1 클라우드와 제2 클라우드 사이의 다자간 빈도(SF)를 수행하여, 상기 kNN 질의와, 상기 kNN 질의에 의해 도출되었던 과거 결과데이터 간에 대한 빈번도를 계산하고, 상기 빈번도의 계산을 통해, 탐색 범주를 선택하며, 상기 탐색 범주가, 상기 도출된 결과데이터의 범주와 일치하면, 상기 도출된 결과데이터를 사용자 단말로 제공할 수 있다.In addition, the garbled circuit-based k-NN classification processing system according to an embodiment of the present invention, as the result data for the kNN query from the user terminal is derived, and the first cloud involved in the derivation of the result data; Perform a multi-party frequency (SF) between a second cloud to calculate a frequency between the kNN query and past result data derived by the kNN query, and select a search category through the calculation of the frequency When the search category matches the category of the derived result data, the derived result data may be provided to the user terminal.
본 발명의 일실시예에 따르면, k-NN 질의처리 알고리즘의 결과데이터를 분류 분석함으로써, 정보 유출 없이 해당 결과데이터에 대한 등급을 추출하는 분석을 할 수 있다.According to an embodiment of the present invention, by classifying and analyzing the result data of the k-NN query processing algorithm, an analysis may be performed to extract a grade of the result data without information leakage.
또한, 본 발명의 일실시예에 따르면, 가블드 회로 및 데이터 패킹 기법 기반의 ESSED 프로토콜, GSCMP 프로토콜, 및 GSPE 프로토콜 중 적어도 하나의 암호화 연산 프로토콜을 수행함으로써, 연산 횟수를 감소시켜 효율적인 질의처리 성능을 제공할 수 있다.In addition, according to an embodiment of the present invention, by performing at least one cryptographic operation protocol of the ESSED protocol, the GSCMP protocol, and the GSPE protocol based on the garbled circuit and the data packing scheme, the number of operations is reduced, thereby improving efficient query processing performance. Can provide.
또한, 본 발명의 일실시예에 따르면, 향상된 암호화 연산 프로토콜을 기반으로 하는 암호화 인덱스 탐색과 암호화 데이터베이스 상에서의 데이터 접근 패턴 보호를 지원하는 k-NN 질의처리 알고리즘을 제공함으로써, 추가적인 정보의 노출을 방지하여 데이터 보호와 사용자 질의 보호뿐만 아니라, 질의 처리 과정에서의 데이터 접근 패턴 보호를 모두 지원할 수 있다.In addition, according to an embodiment of the present invention, by providing a k-NN query processing algorithm that supports encryption index search and data access pattern protection on the encryption database based on the improved encryption operation protocol, to prevent exposure of additional information It can support not only data protection and user query protection but also data access pattern protection during query processing.
도 1은 본 발명의 일실시예에 따른 가블드 회로 기반 k-NN 분류 처리 시스템을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 제1 클라우드에서 보유하는 데이터를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 암호화 데이터 베이스를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 kNN 분류 처리 과정을 설명하기 위한 도면이다.
도 5b 내지 도 6b는 본 발명의 일실시예에 따른 kNN 분류 처리 알고리즘을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른 1차원 공간에서의 점-영역 관계를 도시한 도면이다.
도 8a 내지 도 9c는 본 발명의 일실시예에 따른 kNN 분류 처리 알고리즘을 설명하기 위한 도면이다.
도 10은 본 발명의 일실시예에 따른 가블드 회로 기반 k-NN 분류 처리 방법의 순서를 도시한 흐름도이다.1 is a diagram illustrating a garbled circuit-based k-NN classification processing system according to an embodiment of the present invention.
2 is a diagram illustrating data held in a first cloud according to an embodiment of the present invention.
3 is a diagram illustrating an encryption database according to an embodiment of the present invention.
4 is a diagram illustrating a kNN classification process according to an embodiment of the present invention.
5B and 6B illustrate a kNN classification processing algorithm according to an embodiment of the present invention.
FIG. 7 illustrates a point-region relationship in one-dimensional space according to an embodiment of the present invention.
8A to 9C are diagrams for describing a kNN classification processing algorithm according to an embodiment of the present invention.
10 is a flowchart illustrating a procedure of a garbled circuit based k-NN classification processing method according to an embodiment of the present invention.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.
본 발명에서 "k-NN 질의"는 질의로부터 가장 가까운 거리에 존재하는 k개의 데이터를 탐색하는 질의를 지칭할 수 있다. 본 명세서에서 설명되는 가블드 회로 기반 k-NN 분류 처리 방법 및 가블드 회로 기반 k-NN 분류 처리 시스템은 가블드 회로 및 데이터 패킹 기법 기반의 효율적인 암호화 연산 프로토콜을 이용하여 두 점간 유클리디언 거리 계산, 두 데이터 간 비교 연산, 암호화 영역의 암호화 점 포함 여부 판단함으로써, 암호화 데이터베이스 상에서 k-NN 질의를 처리할 수 있으며, k-NN 질의 처리 결과를 분류 체계를 통해 분석하여 데이터를 분류 처리할 수 있다.In the present invention, a "k-NN query" may refer to a query for searching k data existing in the closest distance from the query. The garbled circuit-based k-NN classification processing method and the garbled circuit-based k-NN classification processing system described herein use the efficient encryption algorithm based on the garbled circuit and data packing scheme to calculate Euclidean distance between two points. By comparing the two data, and determining whether the encryption point is included in the encryption area, the k-NN query can be processed on the encryption database, and the data can be classified by analyzing the k-NN query processing result through the classification system. .
도 1은 본 발명의 일실시예에 따른 가블드 회로 기반 k-NN 분류 처리 시스템을 도시한 도면이다. 1 is a diagram illustrating a garbled circuit-based k-NN classification processing system according to an embodiment of the present invention.
본 발명의 가블드 회로 기반 k-NN 분류 처리 시스템(100, 이하, k-NN 분류 처리 시스템)은 데이터베이스(T)(110), kd 트리(120), 암호화 공개키(public key; pk)(130), 복호화 비밀키(secret key; sk)(140), 제1 클라우드(CA)(150), 암호화 데이터베이스(160), 암호화 kd 트리(170) 및 제2 클라우드(CB)(180)를 포함할 수 있다.The garbled circuit based k-NN
k-NN 분류 처리 시스템(100)은 데이터베이스(110)에 저장된 데이터를 선정된 개수(예를 들어, F개) 단위로 분할하고, 분할된 데이터를 포함하는 단말 노드를, 복수로 가지는 kd 트리(120)를 구축한다.The k-NN
일례로, k-NN 분류 처리 시스템(100)은 레벨이 h이고, 총 2h-1개의 단말 노드를 가지는 kd 트리(120)를 데이터베이스(110)로부터 구축할 수 있으며, 각 단말 노드는 최대 F(FanOut)개의 데이터를 저장할 수 있다.For example, the k-NN
kd 트리(120)의 각 단말 노드는, 자신이 담당하는 노드 영역에 관한 영역 정보와, 노드 영역 내에 포함되는 데이터에 대한 데이터ID를 평문 형태로 저장할 수 있다. 여기서, 상기 영역 정보는 노드 영역에 대한 하한점(lbz,m) 및 상한점(ubz,m)(1≤z≤numnode, 1≤j≤m)을 속성(m) 별로 포함할 수 있다.Each terminal node of the
예를 들어, 도 2를 참조하면, k-NN 분류 처리 시스템(100)은 8개의 2차원 (예컨대, x 및 y 차원) 데이터를 저장할 수 있다. 이 때, k-NN 분류 처리 시스템(100)은 해당 데이터를 kd 트리를 기반으로 분할할 수 있다. 구축된 kd 트리는 총 4개의 단말 노드를 포함할 수 있고, 각각의 단말 노드에 노드의 하한점(lb x 와 lb y ), 상한점(ub x 와 ub y ) 정보 및 노드에 포함된 데이터의 ID가 저장될 수 있다. 즉, kd 트리(120)의 단말 노드 'node 1'은, 단말 노드 'node 1'과 연관된 노드 영역에 대한 하한점 '(lb1 ,0, lb1 ,1)' 및 상한점 '(ub1 ,0, ub1 ,1)'과, 상기 노드 영역에 포함되는 데이터에 대한 데이터ID 't1', 't2'를 저장할 수 있다.For example, referring to FIG. 2, the k-NN
본원에서 데이터와 노드 간의 포함관계를 명확히 하기 위해, kd 트리의 각 노드 경계에는 데이터가 존재하지 않는다고 가정하지만, 이에 한정된 것은 아니다.To clarify the inclusion relationship between data and nodes herein, it is assumed that no data exists at each node boundary of the kd tree, but is not limited thereto.
k-NN 분류 처리 시스템(100)은 데이터베이스(110)로부터 구축한 kd 트리(120)를 암호화하여, 암호화 kd 트리(170)를 생성한다.The k-NN
구체적으로, k-NN 분류 처리 시스템(100)은 각 단말 노드와 연관된 노드 영역에 포함되는 데이터에 대한 데이터ID를, 속성 별로 더 암호화하여 암호화 kd 트리(170)를 생성할 수 있다.In detail, the k-NN
예를 들어, k-NN 분류 처리 시스템(100)은 kd 트리(120)의 단말 노드 'node 1'에 포함되는 데이터ID 't1', 't2'를, 속성 m 별로 암호화하고, 나머지 단말 노드에 포함된 데이터ID를 속성 m 별로 암호화하여, 암호화 kd 트리(170)를 생성할 수 있다. 예를 들면, 암호화 kd 트리(170)는 4개의 단말 노드(node 1, node2, node3, node4)를 포함하고, 각 단말 노드(210, 220, 230, 240)는 하한점과 상한점으로 구성되는 노드 영역을 가질 수 있다.For example, the k-NN
이때, k-NN 분류 처리 시스템(100)은 암호화 데이터베이스(160)의 생성 시 이용한 동일 암호화 공개키(130)로, kd 트리(120)에 포함되는 각 단말 노드를 암호화 하여 암호화 kd 트리(170)를 생성할 수 있다.In this case, the k-NN
예를 들어, k-NN 분류 처리 시스템(100)은 도 3과 같은 암호화 데이터베이스를 생성할 수 있다. k-NN 분류 처리 시스템(100)은 차원 단위로 암호화를 수행하여 제1 클라우드(150)로 전달할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 kd 트리(120)에 포함된 각 단말 노드의 영역 정보를 속성 별로 암호화 할 수 있는데, 도 3에 도시된 바와 같이 암호화 데이터베이스(160)의 암호화 공개키를 이용하여 암호화 할 수 있다. For example, the k-NN
k-NN 분류 처리 시스템(100)은 독립(non-colluding)되는 제1 클라우드(150) 및 제2 클라우드(180)를 마련할 수 있다.The k-NN
본 발명에서, 각 클라우드(150, 180)는 사용자 질의를 처리하기 위해 암호화 프로토콜을 수행 시, 질의 처리 과정 중에 획득한 정보를 바탕으로, 추가적인 정보를 획득하기 위해 다른 클라우드와 결탁하여 데이터 및 정보를 주고 받지 않도록 할 수 있다.In the present invention, each cloud (150, 180) when performing an encryption protocol to process the user query, based on the information obtained during the query processing, to collaborate with other clouds to obtain additional information to collect data and information You can avoid giving and receiving.
k-NN 분류 처리 시스템(100)은 암호화 kd 트리(170)를, 암호화 데이터베이스(160), 및 암호화 공개키(130)를 유지하는 제1 클라우드(150)에 보관한다(단계 101).The k-NN
또한, k-NN 분류 처리 시스템(100)은 상기 암호화 공개키(130)에 대응한 복호화 비밀키(140)를, 제1 클라우드(150)와 상이한 제2 클라우드(180)에 보관한다(단계 102).In addition, the k-NN
다시 말해, k-NN 분류 처리 시스템(100)은 암호화 kd 트리(170)를, 암호화 데이터베이스(160) 및 암호화 공개키(130)와 함께 제1 클라우드(150)에 보관하고, 비밀 키로 생성한 복호화 비밀키(140)를, 다른 제2 클라우드(180)에 보관할 수 있다.In other words, the k-NN
또한, k-NN 분류 처리 시스템(100)은 데이터베이스(110)의 암호화 시 이용한 동일 암호화 공개키(130)를 사용자 단말(AU; Authorized User)(190)로 제공할 수 있다(단계 103). 단말(190)에서는 데이터를 획득하기 위해 제1 클라우드(150)로 질의를 요청 시, 상기 제공된 암호화 공개키(130)를 이용하여 사용자 질의를 암호화할 수 있다(단계 104).In addition, the k-NN
예를 들어, 단말(190)에서는 질의 점을, 예컨대, 'E(qj)(1≤j≤m)'와 같이 암호화 공개키(130)로 암호화하여 사용자 질의를 요청할 수 있다.For example, the terminal 190 may request a user query by encrypting the query point with the encryption
이와 같이, k-NN 분류 처리 시스템(100)은 암호화된 질의를 기반으로 서비스를 제공하여 데이터 보호 및 사용자 질의 보호를 지원할 수 있다.As such, the k-NN
k-NN 분류 처리 시스템(100)은 사용자 단말(190)로부터 사용자 질의가 수신되면, 선정된 암호화 연산 프로토콜을 기반으로, 제1 클라우드(150)와 제2 클라우드(180) 간에 다자간 계산(SMC, Secure Multiparty Computation)을 수행하여, kNN 질의를 처리할 수 있다(단계 105). When a user query is received from the
또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150) 및 제2 클라우드(180)와 함께 사용자 질의를 처리한 결과를 단말(190)에 전송할 수 있다(단계 106).In addition, the k-NN
여기서, 다자간 계산이란, 데이터 소유자가 보유하고 있는 원본 데이터를 노출하지 않은 채, 다른 개체(제1 클라우드(150)와 제2 클라우드(180))를 통해 프로토콜 및 연산을 안전하게 수행하는 것을 지칭할 수 있다.Here, the multilateral calculation may refer to safely performing protocols and operations through other entities (the
이를 위해, k-NN 분류 처리 시스템(100)은 암호화 kd 트리(170), 암호화 데이터베이스(160) 및 암호화 공개키(130)를 보관하는 제1 클라우드(150)와 다른 제2 클라우드(180)에 복호화 비밀키(140)를 보관하고, 이를 바탕으로, 제1 클라우드(150)와 제2 클라우드(180) 간에 다자간 계산을 통해 kNN 질의를 처리할 수 있다.To this end, the k-NN
이를 통해, k-NN 분류 처리 시스템(100)은 데이터 보호를 지원하면서, 암호화 kd 트리(170)를 기반으로, 암호화 데이터베이스(160) 상에서의 사용자 질의를 안전하게 처리할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 암호화 데이터베이스 상에서 kNN 질의처리 알고리즘을 통해 질의를 처리하는 과정에서 데이터 프라이버시, 질의 프라이버시 및 데이터 접근 패턴과 관련된 어떠한 정보도 노출되지 않는 장점이 있을 수 있다. kNN 질의처리 알고리즘에 대한 보다 상세한 설명은 후술하는 도 4 내지 도 9c를 참고하여 설명하고자 한다. kNN 질의처리 알고리즘에 대하여 설명하기에 앞서, 본원에서 사용되는 프로토콜에 대하여 설명하고자 한다.Through this, the k-NN
k-NN 분류 처리 시스템(100)은 ESSED (Enhanced Secure Squared Euclidean Distance) 프로토콜, GSCMP(Garbled Circuit based Secure Compare) 프로토콜, 및 GSPE(Garbled Circuit based Secure Point Enclosure) 프로토콜 중 적어도 하나를 암호화 연산 프로토콜로서 선정할 수 있다. The k-NN
예를 들면, k-NN 분류 처리 시스템(100)은 ESSED 프로토콜을 이용하여 벡터 E(X)와 E(Y) 간 거리의 제곱 E(|X-Y|2)을 계산할 수 있다. 이때, X 및 Y는 m 차원 벡터일 수 있다.For example, the k-NN
먼저, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 난수를 생성한 후 수학식 1을 통해 데이터 패킹을 수행하여 R을 계산하도록 할 수 있다.First, the k-NN
여기서, σ는 하나의 데이터를 나타내는 비트 길이일 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 R을 암호화하여 E(R)을 생성하도록 할 수 있다.Here, σ may be a bit length representing one data. Also, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 각 차원에서의 X와 Y의 암호화 거리 E(x j -y j )(1≤j≤m)를 계산한 후, 수학식 2를 통해 데이터 패킹을 수행하여 E(v)를 계산할 수 있다.Next, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 E(v)=E(v)×E(R)을 계산한 후, E(v)를 제2 클라우드(180)로 전송할 수 있다. 그 다음, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, 전송 받은 E(v)를 복호화하여 [x 1-y 1+r 1|…|x m-y m+r m]을 획득할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, v 를 통해 언패킹(unpacking)을 수행하여 x j -y j +r j (1≤j≤m)을 획득한 후, 차원별 (x j -y j +r j )2(1≤j≤m)을 합산하여, d에 저장할 수 있다(단, d의 초기값은 0으로 설정할 수 있으나, 이에 한정된 것은 아니다). Next, the k-NN
이를 통해, k-NN 분류 처리 시스템(100)은 차원별 거리의 합산을 평문 상에서 수행함으로써, 종래 기술인 DPSSED 프로토콜에 비해 암호화 데이터 기반 연산 횟수를 감소시킬 수 있다. Through this, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서 d를 암호화한 후, E(d)를 제1 클라우드(150)에게 전송할 수 있다. 해당 과정을 통해, k-NN 분류 처리 시스템(100)은 DPSSED 프로토콜의 제2 클라우드(180)에서 요구되는 m 번의 데이터 암호화를 한 번으로 감소시킬 수 있다.Next, the k-NN
마지막으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 난수 삽입에 의해 추가된 값을 수학식 3을 이용하여 각 차원별로 제거함으로써, 두 벡터 X와 Y간 거리의 제곱 E(|X-Y|2)을 계산할 수 있다.Finally, the k-NN
실시예에 따라서, k-NN 분류 처리 시스템(100)은 GSCMP 프로토콜을 이용하여 kNN 질의를 처리할 수 있다. According to an embodiment, the k-NN
k-NN 분류 처리 시스템(100)은 GSCMP 프로토콜을 이용하여 제1 클라우드(150)에 E(u)와 E(v)가 주어졌을 때, u<v를 만족하는 경우 E(1)을 반환하고, u>v인 경우 E(0)을 반환할 수 있다. k-NN 분류 처리 시스템(100)은 종래 기술의 CMP-S와 마찬가지로 두 개의 ADD 게이트 및 한 개의 CMP 게이트로 구성된 가블드 회로를 통해 GSCMP 프로토콜을 수행할 수 있다. 그러나 k-NN 분류 처리 시스템(100)은 GSCMP 프로토콜 수행 중 제1 클라우드(150)와 제2 클라우드(180) 사이에서 난수가 포함된 데이터를 교환할 수 있는 점에서 CMP-S와 차이가 있을 수 있다.When the k-NN
이하에서, GSCMP 프로토콜의 전체적인 수행 알고리즘을 개시하고자 한다. 첫 번째로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 두 개의 난수 r u 와 r v 를 생성할 수 있다. 두 번째로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 r u 와 r v 를 암호화 한 후, E(m 1)=E(u)×E(r u )2 및 E(m 2)=E(v)2×E(1)× E(r v )를 계산할 수 있다. 세 번째로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 두 개의 F(F 0 : u>v, F 1 : v>u) 중 임의로 하나를 선택할 수 있다. 이때, k-NN 분류 처리 시스템(100)은 F 0과 F 1 중 무엇이 선택되었는지는 제2 클라우드(180)에 공개하지 않을 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 선택된 F에 따라 다음을 수행할 수 있다.In the following, it is intended to disclose the overall performance algorithm of the GSCMP protocol. First, the k-NN
만약, 제1 클라우드(150)에서 F 0 : u>v을 선택한 경우, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, <E(m 2), E(m 1)>의 순으로 암호화 데이터를 제2 클라우드(180)에게 전송할 수 있다.If F 0 : u > v is selected in the
만약, 제1 클라우드(150)에서 F 1 : u<v를 선택한 경우, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, <E(m 1), E(m 2)>의 순으로 암호화 데이터를 제2 클라우드(180)에게 전송할 수 있다. If F 1 : u <v is selected in the
네 번째로, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, 전송 받은 데이터를 복호화 할 수 있다. 제1 클라우드(150)에서 F 0 : u>v를 선택한 경우 k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, <m 2, m 1>을 획득할 수 있고, 제1 클라우드(150)에서 F 1 : u<v를 선택한 경우 k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, <m 1, m 2>를 획득할 수 있다.Fourth, the k-NN
다섯 번째로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)가 두 개의 ADD 게이트와 한 개의 CMP 게이트로 구성된 가블드 회로를 생성하도록 할 수 있다. 만약, F 0이 선택된 경우 k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, -r v 및 -r u 를 각각 제1 ADD 게이트와 제2 ADD 게이트에 전달할 수 있고, F 1이 선택된 경우 -r u 및 -r v 를 각각 제1 ADD 게이트와 제2 ADD 게이트에 전달할 수 있다.Fifth, the k-NN
여섯 번째로, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, 수신한 데이터 중, 제1 데이터를 제1 ADD 게이트에 전달하도록 할 수 있고, 제2 데이터를 제2 ADD 게이트에 전달하도록 할 수 있다. 따라서, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)가 F 0이 선택된 경우 m 2 및 m 1을 각각 제1 ADD 게이트와 제2 ADD 게이트에 전달하도록 할 수 있고, F 1이 선택된 경우 m 1 및 m 2를 각각 제1 ADD 게이트와 제2 ADD 게이트에 전달하도록 할 수 있다.Sixth, the k-NN
일곱 번째로, k-NN 분류 처리 시스템(100)은 제1 ADD 게이트에서, F 0이 선택된 경우 -r v 및 m 2=v+r v 를 합산하고, F 1이 선택된 경우 -r u 및 m 1=u+r u 를 합산하여 해당 결과 "result 1"을 CMP 게이트로 전달하도록 할 수 있다.Seventh, the k-NN
여덟 번째로, k-NN 분류 처리 시스템(100)은 제2 ADD 게이트에서, F 0이 선택된 경우 -r u 및 m 1=u+r u 를 합산하고, F 1이 선택된 경우 -r v 및 m 2=v+r v 를 합산하여 해당 결과 "result 2"를 CMP 게이트로 전달하도록 할 수 있다. 이 때, ADD 게이트의 결과값은 가블드 회로의 특성에 의해 인코딩 되어 전달되기 때문에, 정보 노출이 발생되지 않을 수 있다.Eighthly, the k-NN
아홉 번째로, k-NN 분류 처리 시스템(100)은 CMP 게이트에서, result 1<result 2인 경우 α=1을 반환하고, 그렇지 않은 경우 α=0을 반환하도록 할 수 있다.Ninth, the k-NN
마지막으로, 가블드 회로의 수행 결과 α는 제2 클라우드(180)에서 확인할 수 있고, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서 이를 암호화하여 제1 클라우드(150)로 전송할 수 있다. 그러나, k-NN 분류 처리 시스템(100)의 제2 클라우드(180)는 제1 클라우드(150)에 의해 선택된 F를 알지 못하기 때문에, u<v의 결과를 판단할 수 없다. k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 F 0이 선택된 경우에 E(α)의 값을 SBN 프로토콜을 통해 변경하고, E(α)를 반환함으로써 GSCMP 프로토콜을 종료할 수 있다. 이 때, E(α)=E(1)인 경우, u<v임을 의미하지만, k-NN 분류 처리 시스템(100)의 제1 클라우드(150) 및 제2 클라우드(180)는 E(α)의 실제 값을 알 수 없다.Finally, the result α of the garbled circuit can be confirmed in the
실시예에 따라서, k-NN 분류 처리 시스템(100)은 GSPE 프로토콜을 이용할 수 있다. 제1 클라우드(150)에 m 차원의 점 E(p) 및 하한점 E(lb j ) 및 상한점 E(ub j )(1≤j≤m)으로 표현된 암호화 영역 정보 range가 주어졌을 때, k-NN 분류 처리 시스템(100)은 GSPE 프로토콜을 이용하여, 점 p가 영역 range에 포함되는 경우 E(1)을 반환할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 GSPE 프로토콜을 이용하여, 점 p가 영역 range와 겹치지 않는 경우 E(0)을 반환할 수 있다. GSPE 프로토콜을 이용한 전체적인 수행 알고리즘은 다음과 같을 수 있다.According to an embodiment, the k-NN
먼저, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 두 개의 난수 배열 ra j , rb j (1≤j≤2m)을 생성한 후, 수학식 4와 수학식 5를 통해 데이터 패킹을 수행하여, RA 및 RB를 각각 계산할 수 있다.First, the k-NN
여기서, σ는 하나의 데이터를 표현하기 위한 비트 길이를 의미할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 RA 및 RB를 암호화하여 E(RA)와 E(RB)를 생성할 수 있다. Here, σ may mean a bit length for representing one data. In addition, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 점 및 영역의 각 차원별 하한점 값에 2를 곱한 후, 이를 각각 E(μ j ) 및 E(μ j )(1≤j≤m)에 저장할 수 있다. 이때, k-NN 분류 처리 시스템(100)은 E(μ j ) ← E(range 1.lb j )2 및 E(ξ j ) ← E(range 2.lb j )2를 통해 수행할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 점 및 영역의 각 차원별 상한점 값에 2를 곱하고 1을 더한 후, 각각 E(δ j ) 및 E(φ j )(1≤j≤m)에 저장할 수 있다. 이때, k-NN 분류 처리 시스템(100)은 E(δ j ) ← E(range 1.ub j )2×E(1) 및 E(ρ j ) ← E(range 2.ub j )2×E(1)를 통해 수행할 수 있다. 이를 통해 k-NN 분류 처리 시스템(100)은 비교하는 두 수가 같은 경우에 대한 포함 여부를 판단할 수 있다.Next, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서 두 개의 F(F 0 : u>v, F 1 : v>u) 중 임의의 하나를 선택할 수 있다. 이때, k-NN 분류 처리 시스템(100)은 F 0과 F 1 중 무엇이 선택되었는지를 제2 클라우드(180)에 공개하지 않을 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 선택된 F에 따라 p의 값 및 range 2의 상한점에 대해 각 차원별로 다음과 같이 데이터 패킹을 수행하도록 할 수 있다.Next, the k-NN
F 0 : u > v 가 선택된 경우, 이고, 일 수 있다. F 1 : v > u 가 선택된 경우, 이고, 일 수 있다. If F 0 : u > v is selected, ego, Can be. If F 1 : v > u is selected, ego, Can be.
즉, F 0이 선택된 경우, k-NN 분류 처리 시스템(100)은 p의 각 차원별 값을 E(RB)와 패킹하고, range의 각 차원별 상한점 값을 E(RA)와 패킹할 수 있다. 반면, F 1이 선택된 경우, k-NN 분류 처리 시스템(100)은 p의 각 차원별 값을 E(RA)와 패킹하고, range의 각 차원별 상한점 값을 E(RB)와 패킹할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 선택된 F에 따라 p의 값 및 range의 하한점에 대해 차원별로 다음과 같이 데이터 패킹을 수행하도록 할 수 있다. That is, when F 0 is selected, the k-NN
F 0 : u>v 가 선택된 경우, 이고, 일 수 있다. F 1 : v>u 가 선택된 경우, 이고, 일 수 있다. If F 0 : u > v is selected, ego, Can be. If F 1 : v > u is selected, ego, Can be.
즉, F 0이 선택된 경우, k-NN 분류 처리 시스템(100)은 range의 각 차원별 하한점 값을 E(RB)와 패킹하고, p의 각 차원별 상한점 값을 E(RA)와 패킹할 수 있다. 반면, F 1이 선택된 경우, k-NN 분류 처리 시스템(100)은 range의 각 차원별 하한점 값을 E(RA)와 패킹하고, p의 각 차원별 상한점 값을 E(RB)와 패킹할 수 있다. 다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(RA) 및 E(RB)를 제2 클라우드(180)에게 전송하도록 할 수 있다. That is, when F 0 is selected, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, E(RA) 및 E(RB)를 복호화하여, RA 및 RB를 획득할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서 RA 를 통해 RA를 언패킹하여 ra j +u j (1≤j≤2m)를 획득할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서 RB 를 통해 RA를 언패킹하여 rb j +v j (1≤j≤2m)를 획득할 수 있다. 여기서, u j 및 v j 는 p의 값 및 range의 하한점 및 상한점 값을 의미할 수 있다. 한편, 해당 값에는 난수가 포함되어 있으며, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서는 제1 클라우드(150)에서 선택된 F를 알지 못하기 때문에 추가적인 정보 노출이 발생하지 않을 수 있다. Next, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, CMP-S 서킷을 생성할 수 있다. CMP-S 서킷을 생성한 후, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)가 보유하고 있는 ra j , rb j (1≤j≤2m)를 기반으로 -ra j , -rb j (1≤j≤2m)를 생성한 후, 이를 제1 클라우드(150)에서 차례로 CMP-S의 입력 값으로 전달하도록 할 수 있다. 한편, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서 자신이 보유하고 있는 ra j +u j , rb j +v j (1≤j≤2m)를 차례로 CMP-S의 입력 값으로 전달하도록 할 수 있다. k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서 CMP-S 수행 결과 α' j (1≤j≤2m)를 확인할 수 있고, 제2 클라우드(180)에서 이를 암호화하여 제1 클라우드(150)로 전송할 수 있다. Next, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, F 0이 선택된 경우에만 SBN을 통해 E(α' j )(1≤j≤2m) 값을 변환할 수 있다. 아울러, k-NN 분류 처리 시스템(100)은 SM(Secure Multiplication) 프로토콜을 이용하여 E(α)와 E(α' j ) 간 곱을 수행할 수 있다. 이 때, k-NN 분류 처리 시스템(100)은 최초 E(α)의 값은 E(1)로 설정할 수 있다. Next, the k-NN
마지막으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(α)를 반환함으로써 GSPE 프로트콜을 종료할 수 있다. 이 때, E(α)=E(1)인 경우, 점 p는 영역 range에 포함될 수 있다. 그러나, k-NN 분류 처리 시스템(100)은 제1 클라우드(150) 및 제2 클라우드(180)에서 E(α)의 실제 값을 알 수 없기 때문에, 점의 영역 내 포함 여부를 알 수 없다.Finally, the k-NN
도 4는 본 발명의 일실시예에 따른 kNN 분류 처리 과정을 설명하기 위한 도면이다. 4 is a diagram illustrating a kNN classification process according to an embodiment of the present invention.
k-NN 분류 처리 시스템(100)은 kNN 분류 처리 알고리즘으로서, 암호화 인덱스 탐색 단계(410), kNN 단계(420), 질의 결과 검증 단계(430) 및 범주 확인 단계(440)를 통해 k-NN 질의를 처리하고 분류할 수 있다. 각각의 단계에 대한 상세한 설명은 도 5a 내지 도 9c를 참고하여 설명하고자 한다. 즉, 도 5a 내지 도 6b 및 도 8a 내지 도 9c는 본 발명의 일실시예에 따른 kNN 분류 처리 알고리즘을 설명하기 위한 도면이다.The k-NN
먼저, k-NN 분류 처리 시스템(100)은 다음과 같은 과정을 통해 암호화 인덱스를 탐색할 수 있다(410).First, the k-NN
도 5a 및 도 5b를 참고하여 설명하면, 단계(510)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(q)와 E(node z )(1≤z≤num node )를 기반으로 GSPE 프로토콜을 수행함으로써, 질의 지점을 포함하는 노드를 탐색할 수 있다. 이때, GSPE 수행 결과 반환된 E(α z )의 값이 E(1)인 노드는 질의 지점을 포함하는 노드일 수 있다. 그러나, 제1 클라우드(150) 및 제2 클라우드(180)는 어느 노드가 질의 영역과 겹치는 영역인지 알지 못 할 수 있다. k-NN 분류 처리 시스템(100)은 패일러(Paillier) 암호화 시스템을 기반으로 암호화 데이터베이스를 암호화 할 수 있는데, 패일러 암호화 시스템은 의미적 보안을 지원하기 때문이다. Referring to FIGS. 5A and 5B, in
단계(520)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 순서 변경 함수 π를 생성하여 E(α)의 순서를 변경하고, 이를 제2 클라우드(180)로 전송할 수 있다.In
단계(530)에서, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, E(α)를 복호화 한 후, 1의 개수(c)를 확인하고, c개의 노드 그룹 Group을 생성할 수 있다. 이때, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, 각 노드 그룹에 α 값이 1인 노드 한 개와 α 값이 0인 노드 (num node /c)-1개를 할당할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 각 노드 그룹에 할당된 노드의 순서를 랜덤하게 변환한 후, 이를 제1 클라우드(150)로 전송할 수 있다. In
단계(540)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 역변경 함수 π -1을 이용하여 각 노드 그룹에 속한 노드의 식별 번호를 역변경할 수 있다.In
단계(550)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 노드 그룹 별 노드에 저장된 데이터와 GSPE 프로토콜을 통해 반환된 각 노드의 E(α)를 이용해 SM 프로토콜을 수행하고, 준동형 암호화 특성을 이용하여 질의와 관련된 노드 내에 존재하는 데이터를 E(cand)에 저장할 수 있다.In
단계(560)에서, k-NN 분류 처리 시스템(100)은 E(cand)를 반환함으로써 암호화 인덱스 탐색을 종료할 수 있다.In step 560, the k-NN
실시예에 따라, 도 5a에서 설명한 암호화 인덱스를 탐색하는 단계는 도 5b에 도시된 바와 같은 알고리즘으로 구현될 수 있다. According to an embodiment, the step of searching the encryption index described in FIG. 5A may be implemented by an algorithm as shown in FIG. 5B.
다시 도 4를 설명하면, k-NN 분류 처리 시스템(100)은 다음과 같은 과정을 통해 k-NN 탐색 단계를 수행할 수 있다(420). k-NN 분류 처리 시스템(100)은 k-NN 탐색 단계에서, 암호화 인덱스 탐색 단계(410)에서 추출한 데이터를 기반으로 질의와의 거리가 가까운 k개의 데이터를 탐색할 수 있다. k-NN 분류 처리 시스템(100)은 SkNNm 알고리즘을 부분적으로 활용하여 수행할 수 있는데, k-NN 분류 처리 시스템(100)은 암호화 인덱스 탐색 단계(410)의 수행을 통해 반환된 cnt 개의 데이터를 기반으로 kNN 탐색을 수행할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 연산 비용이 큰 SBD, SMIN, SMINn 프로토콜 대신, 데이터 패킹 및 가블드 회로 기반의 효율적인 프로토콜(즉, ESSED, SMSn)을 활용할 수 있다.Referring back to FIG. 4, the k-NN
도 6a를 참고하여 설명하면, 단계(610)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, ESSED 프로토콜을 통해 질의 E(q)와 암호화 인덱스 탐색을 통해 반환된 cnt 개의 암호화 데이터 E(cand i ) 간 유클리디언 거리 제곱 E(d i )(1≤i≤cnt)를 계산할 수 있다.Referring to FIG. 6A, in
단계(620)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, SMSn를 통해 암호화 거리(E(d i )|1≤i≤cnt) 중 최소값 E(d min )을 찾을 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(d min )과 E(d i ) 간 차를 E(d min )×E(d i ) N -1 (1≤i≤cnt)를 통해 계산하고, 그 결과를 E(τ i )에 저장할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(τ i )에 암호화 난수를 곱하여 E(τ i )를 생성할 수 있다. 아울러, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 임의의 순서 변경 함수 π를 E(τ)에 적용하여 E(β)를 생성하고, 이를 제2 클라우드(180)로 전송할 수 있다.In
단계(630)에서, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, 전송받은 E(β)의 각 원소를 복호화하고, D(β i )의 값이 0인 경우에는 E(U i )=E(1)로, 0이 아닌 경우에는 E(U i )=E(0)으로 설정할 수 있다. 이 후, k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서 E(U)를 제1 클라우드(150)로 전송할 수 있다. In
단계(640)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 제2 클라우드(180)로부터 전송받은 E(U)를 π -1을 통해 역변경하여 E(V)에 저장할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 E(V i )(1≤i≤cnt) 및 암호화 인덱스 탐색을 통해 반환된 E(cand i,j )(1≤i≤cnt, 1≤j≤m)를 기반으로 SM 프로토콜을 수행하고, 해당 결과를 E(V i,j )에 저장할 수 있다. 다음으로, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 준동형 암호화 특성을 기반으로 수학식 6을 통해 E(V i,j )의 값을 각 차원별로 합산할 수 있다. In
단계(650)에서, k-NN 분류 처리 시스템(100)은 아직 사용자가 요청한 k개의 질의 결과를 찾지 못했을 경우, kNN 결과로 선택된 E(t s )가 다음 수행과정에서 중복 선택되는 것을 방지해야 한다. 이를 위해, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 수학식 7을 수행하여 각 E(d i )(1≤i≤cnt)의 값을 갱신할 수 있다. In
여기서, E(max)는 데이터 도메인의 최대값을 의미할 수 있다. kNN 결과로 선택된 데이터는 E(V i )=E(1) 값을 지니기 때문에, k-NN 분류 처리 시스템(100)은 수학식 7을 통해 E(d i )=E(max)로 변경할 수 있다. k-NN 분류 처리 시스템(100)은 나머지 데이터에 대하여, E(V i )=E(0) 값을 지니기 때문에, E(d i ) 값을 그대로 유지할 수 있다. 이를 통해, k-NN 분류 처리 시스템(100)은 kNN 결과로 선택된 암호화 데이터가 중복 선택되는 것을 방지할 수 있다. Here, E ( max ) may mean the maximum value of the data domain. Since the data selected as a result of k NN has a value of E ( V i ) = E (1), the k-NN
k-NN 분류 처리 시스템(100)은 상기의 과정을 k개의 데이터가 탐색될 때까지 반복 수행할 수 있으며, 단계(660)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 탐색된 k개의 질의 결과를 반환함으로써 알고리즘을 종료할 수 있다.The k-NN
실시예에 따라, 도 6a에서 설명한 k-NN 탐색 단계는 도 6b에 도시된 바와 같은 알고리즘으로 구현될 수 있다. According to an embodiment, the k-NN discovery step described in FIG. 6A may be implemented with an algorithm as illustrated in FIG. 6B.
다시 도 4를 설명하면, k-NN 분류 처리 시스템(100)은 다음과 같은 과정을 통해 노드 확장 탐색을 통한 질의결과 검증 단계를 수행할 수 있다(430).Referring back to FIG. 4, the k-NN
kNN 질의 탐색에 대한 결과는 kd 트리를 통해 분할된 일부 노드의 데이터를 기반으로 탐색된 것일 수 있다. 따라서, 인접한 kd 트리 노드에 질의와 보다 근접한 데이터가 존재하는지 검증하는 과정이 요구될 수 있다. 이를 해결하기 위하여, k-NN 분류 처리 시스템(100)은 k-NN 탐색 단계(420)에서 반환된 결과 E(t) 중 k 번째 결과까지의 거리 dist k 보다 질의 지점으로부터 가까운 거리에 존재하는 노드들을 탐색할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 질의 지점으로부터의 최단 거리가 dist k 보다 작은 노드를 찾기 위한 탐색 과정을 수행할 수 있다. 이를 위해, k-NN 분류 처리 시스템(100)은 제1 정의의 최단 거리점을 활용할 수 있다.The result of the kNN query search may be a search based on data of some nodes partitioned through the kd tree. Therefore, a process of verifying that data closer to the query exists in an adjacent kd tree node may be required. To solve this problem, nodes k-NN
제1 정의의 최단 거리점 sp(shortest point)은 한 점(p)과 한 영역이 주어졌을 때, 영역 내에 존재하는 모든 점 중에서 p까지의 최단 거리를 갖는 점일 수 있다.The shortest distance point sp (shortest point) of the first definition may be a point having the shortest distance to p among all points existing in the area, given a point p and an area.
도 7를 참고하여, 최단 거리점의 특성을 설명하고자 한다. 도 7은 본 발명의 일실시예에 따른 1차원 공간에서의 점-영역 관계를 도시한 도면이다.7, the characteristics of the shortest distance point will be described. FIG. 7 illustrates a point-region relationship in one-dimensional space according to an embodiment of the present invention.
도 7에 도시된 바와 같이, k-NN 분류 처리 시스템(100)은 1차원 상의 점 p=3 및 3개의 영역(range 1, range 2, range 3)이 주어졌을 경우, 점과 영역의 위치 관계를 크게 3가지로 구분할 수 있다.As shown in FIG. 7, when the k-NN
i) range 1과 같이 영역의 하한점 값(예컨대, 0) 및 상한점 값(예컨대, 2) 모두 점 p의 값(예컨대, 3) 보다 작은 경우, k-NN 분류 처리 시스템(100)은 p에 대한 range 1의 최단 거리점을 해당 영역의 상한점으로 할 수 있다. ii) range 2와 같이 영역의 하한점 값(예컨대, 4) 및 상한점 값(예컨대, 6) 모두 점 p의 값(예컨대, 3) 보다 큰 경우, k-NN 분류 처리 시스템(100)은 p에 대한 range 2의 최단 거리점을 해당 영역의 하한점으로 할 수 있다. iii) range 3과 같이 영역의 하한점 값(예컨대, 2) 및 상한점 값(예컨대, 4) 사이에 점 p의 값(예컨대, 3)이 존재하는 경우, k-NN 분류 처리 시스템(100)은 p에 대한 range 3의 최단 거리점을 p의 값으로 할 수 있다. 본원에서는 이러한 특성을 다차원 공간으로 확장하여 활용할 수 있다. i) If both the lower limit value (e.g. 0) and the upper limit value (e.g. 2) of the region are less than the value of point p (e.g. 3), such as range 1 , then k-NN
이러한 특성을 바탕으로, k-NN 분류 처리 시스템(100)은 패일러 암호화 시스템을 기반으로 암호화된 데이터 상에서의 질의에 대한 노드의 최단 거리점 탐색 및 질의 결과 검증을 다음과 같은 과정으로 수행할 수 있다.Based on these characteristics, the k-NN
도 8a를 참고하여 설명하면, 단계(810)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, ESSED 프로토콜을 이용하여 질의 E(q)와 E(t k )까지의 거리 E(dist k )를 계산할 수 있다.Referring to FIG. 8A, at
단계(820)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(q j )와 노드의 하한점 E(node z . lb j )(1≤z≤num node , 1≤j≤m) 간 GSCMP 프로토콜을 수행하고, 그 결과를 E(ψ 1)에 저장할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 E(q j )와 노드의 상한점 E(node z . ub j )(1≤z≤num node , 1≤j≤m) 간 GSCMP 프로토콜을 수행하고, 그 결과를 E(ψ 2)에 저장할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 E(q j )가 노드의 하한점 혹은 상한점 보다 작거나 같은 경우, 상응하는 E(ψ)는 E(1) 값을 갖도록 할 수 있다.In step (820), k-NN
단계(830)에서, k-NN 분류 처리 시스템(100)은 E(ψ 1)과 E(ψ 2)를 이용하여 SBXOR(Secure Bit-XOR) 프로토콜을 수행하고, 결과를 E(ψ 3)에 저장할 수 있다. In
단계(840)에서, k-NN 분류 처리 시스템(100)은 수학식 8 및 수학식 9를 수행하여 각 차원에서의 최단 거리점 E(sp z,j )을 계산할 수 있다. In
단계(850)에서, E(q)에 대한 각 노드의 최단 거리점 E(sp z )(1≤z≤num node ) 탐색이 완료된 후, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, ESSED 프로토콜을 통해 E(q)와 각 E(sp z ) 간 유클리디언 거리의 제곱을 계산하여 E(spdist z )(1≤z≤num node )에 저장할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 수학식 10을 통해 탐색이 완료된 노드의 최단 거리점까지의 거리를 도메인에서의 최대값인 E(max)로 안전하게 변경할 수 있다. In
여기서, E(α z )는 단계(810)에서 GSPE 프로토콜을 통해 반환된 값이며, 이미 탐색이 완료된 노드는 E(α z )=E(1), 그렇지 않은 노드는 E(α z )=E(0) 값을 가질 수 있다.Where E ( α z ) is the value returned via the GSPE protocol in
이 후, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(spdist z ) 및 E(dist k )를 기반으로 GSCMP 프로토콜을 수행하고, 해당 결과를 E(α z )에 저장할 수 있다. 만약, E(spdist z )가 E(dist k )보다 작은 노드이면, 상기 노드는 추가 탐색이 필요한 노드일 수 있으며, k-NN 분류 처리 시스템(100)은 GSCMP 프로토콜의 수행 결과 E(α z )=E(1)을 반환 받을 수 있다. 이 때, k-NN 분류 처리 시스템(100)은 이미 탐색이 완료된 노드에 대하여 E(spdist z )가 도메인에서의 최대값을 지니기 때문에, 질의 결과 검증을 위한 확장 노드로 선정하지 않을 수 있다. Thereafter, the k-NN
단계(860)에서, k-NN 분류 처리 시스템(100)은 암호화 인덱스 탐색 단계(410)를 재수행 함으로써, E(q)로부터 dist k 거리 내에 존재하는 노드에 속한 모든 데이터를 추출하여 E(t)에 추가할 수 있다. 아울러, k-NN 분류 처리 시스템(100)은 E(t)를 기반으로 k-NN 탐색 단계(420)를 재수행 함으로써 최종 질의 결과인 E(result i ) (1≤i≤k)를 획득할 수 있다.In
단계(870)에서, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, E(result i ) (1≤i≤k)의 범주(Label)를 확인할 수 있다. k-NN 분류 처리 시스템(100)이 범주 확인을 하는 과정은 후술하는 도 9a 및 도 9c를 참조하여 설명하고자 한다.In
실시예에 따라, 도 8a에서 설명한 질의결과 검증 단계는 도 8b에 도시된 바와 같은 알고리즘으로 구현될 수 있다. According to an embodiment, the query result verifying step described in FIG. 8A may be implemented by an algorithm as shown in FIG. 8B.
다시 도 4를 설명하면, k-NN 분류 처리 시스템(100)은 다음과 같은 과정을 통해 범주 확인 단계를 수행할 수 있다(440).Referring back to FIG. 4, the k-NN
도 9a 및 도 9c를 참고하여 설명하면, k-NN 분류 처리 시스템(100)은 전체 범주 Label = {L 1 ,L 2 ,…, L n }과 추출된 데이터의 범주 Label = {L’ 1 ,L ’ 2 ,…,L’ k }을 비교할 수 있다. 먼저, k-NN 분류 처리 시스템(100)은 제1 클라우드(150)와 제2 클라우드(180)에서, SF(Secure Frequency)를 통해 빈번도를 계산할 수 있다(910)(line 1). k-NN 분류 처리 시스템(100)은 계산된 빈번도 사이의 비교를 통해, 가장 높은 값을 가지는 범주를 선택할 수 있다(920)(line 2). k-NN 분류 처리 시스템(100)은 제1 클라우드(150)에서, 선택된 범주에 임의의 정수(r q )를 더한 후, E(γ q )에 저장할 수 있다(930)(line 3). 다음으로, k-NN 분류 처리 시스템(100)은 E(γ q )를 제2 클라우드(180)로, 임의의 정수(r q )를 Bob로 전송할 수 있다(940)(line 4). k-NN 분류 처리 시스템(100)은 제2 클라우드(180)에서, 받은 E(γ q )를 복호화 후 사용자 단말(AU)로 전송할 수 있다(950)(line 5~6). 마지막으로 k-NN 분류 처리 시스템(100)은 사용자 단말(AU)에서, 제1 클라우드(150)와 제2 클라우드(180)의 결과를 조합하여 질의가 속하는 범주를 최종 결과로 획득하도록 할 수 있다(line 7~8).9A and 9C, the k-NN
실시예에 따라, 도 9c에 도시된 바와 같이 k-NN 분류 처리 시스템(100)은 데이터를 분류할 수 있다. 즉, 도 9에 도시된 보험 데이터에 대하여, 보험사 직원은 새로운 고객의 정보를 입력하여 해당 고객의 정보가 어느 등급에 속하는지 k-NN 분류 처리 시스템(100)을 이용하여 파악할 수 있다. 예를 들어, 새로운 고객의 정보가 33세, A 질병 보유, 연봉 4500만원이라고 가정할 때, k-NN 분류 처리 시스템(100)은 k=2로 하여 질의를 전달하면 가장 가까운 k개의 데이터 1번 및 2번을 추출할 수 있다. k-NN 분류 처리 시스템(100)은 이를 통하여 새로운 고객의 정보가 A등급에 속한다는 것을 확인할 수 있다. k-NN 분류 처리 시스템(100)은 해당 데이터가 모두 고객의 민감한 데이터이기 때문에, 모두 암호화된 상태에서 제안하는 알고리즘을 기반으로 수행할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 정보 유출 없이 새로운 고객의 데이터가 어떤 등급에 해당 하는지 추출할 수 있다.According to an embodiment, as shown in FIG. 9C, the k-NN
이하, 도 10에서는 본 발명의 실시예들에 따른 k-NN 분류 처리 시스템(100)의 작업 흐름을 상세히 설명한다.10, the workflow of the k-NN
도 10은 본 발명의 일실시예에 따른 가블드 회로 기반 k-NN 분류 처리 방법의 순서를 도시한 흐름도이다.10 is a flowchart illustrating a procedure of a garbled circuit based k-NN classification processing method according to an embodiment of the present invention.
본 실시예에 따른 가블드 회로 기반 k-NN 분류 처리 방법은 상술한 k-NN 분류 처리 시스템(100)에 의해 수행될 수 있다.The garbled circuit-based k-NN classification processing method according to the present embodiment may be performed by the k-NN
먼저, k-NN 분류 처리 시스템(100)은 사용자 단말로부터의 kNN(k Nearest Neighbor) 질의에 대한 결과데이터가 도출 됨에 따라, 상기 결과데이터의 도출에 관여한, 제1 클라우드와 제2 클라우드 사이의 다자간 빈도(SF, Secure Frequency)를 수행하여, 상기 kNN 질의와, 상기 kNN 질의에 의해 도출되었던 과거 결과데이터 간에 대한 빈번도를 계산한다(1010). 즉, 단계(1010)에서, k-NN 분류 처리 시스템(100)은 전체 Label = {L 1 ,L 2 ,…, L n }과 추출된 데이터의 Label = {L’ 1 ,L ’ 2 ,…,L’ k }에 대한 다자간 빈도 SF(Δ, Δ')를 수행하여, 빈번도를 계산할 수 있다.First, as the result data for the k Nearest Neighbor (kNN) query from the user terminal is derived, the k-NN
다음으로, k-NN 분류 처리 시스템(100)은 상기 빈번도의 계산을 통해, 탐색 범주를 선택한다(1020). 즉, 단계(1020)에서, k-NN 분류 처리 시스템(100)은 계산된 빈번도 사이의 비교를 통해, 가장 높은 값을 가지는 범주를 선택할 수 있다.Next, the k-NN
또한, 단계(1020)는 제1 단계로서, 상기 제1 클라우드에서, 가장 높은 빈번도가 계산된 과거 결과데이터가 갖는 범주에, 임의의 부호값을 부가하여 암호화 범주로 부호화하고, 제2 단계로서, 상기 제1 클라우드에서, 상기 암호화 범주를 상기 제2 클라우드로 제공하고, 상기 부호값을 상기 사용자 단말로 제공하는 과정일 수 있다. 즉, k-NN 분류 처리 시스템(100)은 제1 클라우드에, 선택된 범주에 임의의 정수(r q )를 더한 후, E(γ q )에 저장할 수 있다.In addition,
또한, 단계(1020)는, 제3 단계로서, 상기 제2 클라우드에서, 상기 암호화 범주에 대해 복호화하여 복호화 범주를 생성하고, 상기 복호화 범주를 상기 사용자 단말로 제공하며, 제4 단계로서, 상기 사용자 단말에서, 제공된 상기 부호값과 상기 복호화 범주를 이용하여, 상기 암호화 범주로 복원하는 과정을 포함할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 제2 클라우드에 E(γ q )를 전송하여 복호화하도록 하고, 임의의 정수(r q )를 Bob로 전송할 수 있다. 그리고, k-NN 분류 처리 시스템(100)은 제2 클라우드에서, 수신한 E(γ q )를 복호화 후 사용자 단말(AU)로 전송하도록 할 수 있다.Further,
또한, 단계(1020)는, 상기 암호화 범주로의 복원이 가능하면, 상기 가장 높은 빈번도가 계산된 과거 결과데이터가 갖는 범주를, 상기 탐색 범주로서 선택하는 과정을 포함할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 질의에 따른 가장 가까운 k개의 데이터에 대해 가장 높은 빈번도를 갖는 범주를 탐색 범주로서 선택할 수 있다.In addition, if the restoration to the encryption category is possible,
또한, 단계(1020)는 상기 빈번도의 크기에 따라 정해지는 과거 결과데이터가 갖는 범주를 순차적으로 이용하여, 상기 제1 단계 내지 상기 제4 단계를 반복하되, 상기 암호화 범주로의 복원이 가능하면, 상기 반복을 중단하는 과정을 포함할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 적어도 탐색 범주를 선택할 때까지 제1 단계 내지 제4 단계를 반복할 수 있다.In
다음으로, k-NN 분류 처리 시스템(100)은 상기 탐색 범주가, 상기 도출된 결과데이터의 범주와 일치하면, 상기 도출된 결과데이터를 사용자 단말로 제공한다(1030). 즉, k-NN 분류 처리 시스템(100)은 빈번도 비교에 따라 선택된 범주에 대해, 결과데이터의 범주와 일치하는 경우 사용자 단말로 결과데이터를 제공할 수 있다. Next, if the search category matches the category of the derived result data, the k-NN
실시예에 따라, k-NN 분류 처리 시스템(100)은 상기 제1 클라우드와, 상기 제1 클라우드와 독립(non-colluding)되는 상기 제2 클라우드를 구축할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 각 클라우드는 사용자 질의를 처리하기 위해 암호화 프로토콜을 수행 시, 질의 처리 과정 중에 획득한 정보를 바탕으로, 추가적인 정보를 획득하기 위해 다른 클라우드와 결탁하여 데이터 및 정보를 주고 받지 않도록 할 수 있다.According to an embodiment, the k-NN
또한, k-NN 분류 처리 시스템(100)은 원본 데이터베이스에 저장되는 데이터를 암호화 한 암호화 데이터베이스와, 상기 암호화와 연관되어 생성되는 암호화 공개키를, 상기 제1 클라우드에 유지할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 제1 클라우드에 암호화 데이버베이스 및 암호화 데이터베이스와 연관되는 암호화 공개키를 유지할 수 있다.Also, the k-NN
또한, k-NN 분류 처리 시스템(100)은 상기 암호화 공개키에 대응하는 복호화 비밀키를, 상기 제2 클라우드에 유지할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 제2 클라우드에, 암호화 공개키에 대응하는 복호화 비밀키를 유지할 수 있다.Also, the k-NN
또한, k-NN 분류 처리 시스템(100)은 상기 암호화 공개키를 배포 받은 상기 사용자 단말에서, 상기 kNN(k Nearest Neighbor) 질의가 발생되는 경우, 상기 암호화 공개키와 상기 복호화 비밀키에 기초한, 상기 제1 클라우드와 상기 제2 클라우드 간의 다자간 계산을 수행하여, 상기 암호화 데이터베이스로부터 상기 kNN 질의에 대한 상기 결과데이터를 도출할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 사용자 단말로부터, 데이터베이스의 암호화 시 이용한 암호화 공개키를 이용하여 암호화된 kNN 질의가 수신되는지 판단할 수 있다. 예를 들어, 단말에서는 질의 점을, 예컨대, 'E(qj)(1≤j≤m)'와 같이 암호화 공개키(130)로 암호화하여 사용자 질의를 요청할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 사용자 단말로부터 사용자 질의가 수신되면, 선정된 암호화 연산 프로토콜을 기반으로, 제1 클라우드와 제2 클라우드 간에 다자간 계산(SMC, Secure Multiparty Computation)을 수행하여, kNN 질의를 처리할 수 있다.In addition, the k-NN
여기서, 다자간 계산이란, 데이터 소유자가 보유하고 있는 원본 데이터를 노출하지 않은 채, 다른 개체(제1 클라우드와 제2 클라우드)를 통해 프로토콜 및 연산을 안전하게 수행하는 것을 지칭할 수 있다.Here, the multilateral calculation may refer to safely performing protocols and operations through other entities (the first cloud and the second cloud) without exposing the original data held by the data owner.
실시예에 따라서, k-NN 분류 처리 시스템(100)은 상기 원본 데이터베이스에 저장된 데이터를, 다수의 속성(attribute) 및 차원(column)으로 분할하여, kd 트리를 구성하고, kd 트리를 암호화 한 암호화 kd 트리를, 상기 제1 클라우드에 유지할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 데이터베이스에 저장된 데이터를 선정된 개수(예를 들어, F개) 단위로 분할하고, 분할된 데이터를 포함하는 단말 노드를, 복수로 가지는 kd 트리를 구축할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 제1 클라우드에 암호화된 kd 트리를 유지할 수 있다.According to an embodiment, the k-NN
일례로, k-NN 분류 처리 시스템(100)은 레벨이 h이고, 총 2h-1개의 단말 노드를 가지는 kd 트리를 데이터베이스로부터 구성할 수 있으며, 각 단말 노드는 최대 F(FanOut)개의 데이터를 저장할 수 있다.For example, the k-NN
kd 트리의 각 단말 노드는, 자신이 담당하는 노드 영역에 관한 영역 정보와, 노드 영역 내에 포함되는 데이터에 대한 데이터ID를 평문 형태로 저장할 수 있다. 여기서, 상기 영역 정보는 노드 영역에 대한 하한점(lbz,m) 및 상한점(ubz,m)(1≤z≤numnode, 1≤j≤m)을 속성(m) 별로 포함할 수 있다.Each terminal node of the kd tree may store, in plain text form, region information about a node region in charge thereof and data IDs for data included in the node region. Here, the region information may include a lower limit (lb z, m ) and an upper limit (ub z, m ) (1 ≦ z ≦ num node , 1 ≦ j ≦ m ) for a node region for each attribute m. have.
이때, 상기 결과데이터를 도출하는 단계에서, k-NN 분류 처리 시스템(100)은 선정된 암호화 연산 프로토콜을 기반으로, 상기 암호화 kd 트리에 근거한, 상기 암호화 데이터베이스 상에서의 상기 kNN 질의를 처리하여 상기 결과데이터를 도출할 수 있다. 즉, k-NN 분류 처리 시스템(100)은 암호화 kd 트리에 근거하여 암호화 인덱스를 탐색하고 인접한 kd 트리 노드를 탐색하여 kNN 질의를 처리할 수 있다.At this time, in the step of deriving the result data, the k-NN
또한, 상기 결과데이터를 도출하는 단계에서, k-NN 분류 처리 시스템(100)은 ESSED(Enhanced Secure Squared Euclidean Distance) 프로토콜, GSCMP(Garbled Circuit based Secure Compare) 프로토콜, 및 GSPE(Garbled Circuit based Secure Point Enclosure) 프로토콜 중 어느 하나를, 상기 암호화 연산 프로토콜로 선정할 수 있다. 예를 들면, k-NN 분류 처리 시스템(100)은 ESSED 프로토콜을 이용하여 벡터 E(X)와 E(Y) 간 거리의 제곱 E(|X-Y|2)을 계산할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 GSCMP 프로토콜을 이용하여 제1 클라우드(150)에 E(u)와 E(v)가 주어졌을 때, u<v를 만족하는 경우 E(1)을 반환하고, u>v인 경우 E(0)을 반환할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 GSPE 프로토콜을 이용하여, 제1 클라우드(150)에 m 차원의 점 E(p) 및 하한점 E(lb j ) 및 상한점 E(ub j )(1≤j≤m)으로 표현된 암호화 영역 정보 'range'가 주어졌을 때, 점 p가 영역 range에 포함되는 경우 E(1)을 반환할 수 있다.In the deriving of the result data, the k-NN
실시예에 따라서, 상기 암호화 연산 프로토콜로서, ESSED 프로토콜이 선정되면, 상기 결과데이터를 도출하는 단계에서, k-NN 분류 처리 시스템(100)은 상기 암호화 kd 트리 내 임의의 데이터 쌍에 대한 차원별 거리의 합산을, 2차원 상에서 수행하여, 상기 결과데이터의 도출을 위한 암호화 데이터 기반 연산 횟수를 감소시킬 수 있다. 즉, k-NN 분류 처리 시스템(100)은 ESSED 프로토콜을 통해 질의 E(q)와 암호화 인덱스 탐색을 통해 반환된 cnt 개의 암호화 데이터 E(cand i ) 간 유클리디언 거리 제곱 E(d i )(1≤i≤cnt)를 계산할 수 있다. k-NN 분류 처리 시스템(100)은 kNN 탐색 및 질의결과를 검증하는데 ESSED 프로토콜을 사용할 수 있다.According to an embodiment, when the ESSED protocol is selected as the encryption operation protocol, in the step of deriving the result data, the k-NN
실시예에 따라서, 상기 암호화 연산 프로토콜로서, GSCMP 프로토콜이 선정되면, 상기 결과데이터를 도출하는 단계에서 k-NN 분류 처리 시스템(100)은 상기 제1 클라우드와 상기 제2 클라우드 사이에서 난수를 교환하여, 상기 암호화 kd 트리 내 임의의 데이터 쌍에 대한 크기 비교에 따라 반환되는 데이터의 값을 결정할 수 있다. 예를 들면, k-NN 분류 처리 시스템(100)은 질의결과 검증 과정에서, E(q j )와 노드의 하한점 E(node z . lb j ) 및 상한점 E(node z . ub j ) 사이에서 각각 GSCMP 프로토콜을 수행하고, 그 결과를 E(ψ 1) 및 E(ψ 2)에 각각 저장할 수 있다. 이때, k-NN 분류 처리 시스템(100)은 ψ 1<ψ 2를 만족하는 경우 E(1)을 반환하고, ψ 1>ψ 2인 경우 E(0)을 반환할 수 있다. 이때, k-NN 분류 처리 시스템(100)은 난수가 포함된 데이터를 교환할 수 있다.According to an embodiment, when a GSCMP protocol is selected as the encryption operation protocol, in the step of deriving the result data, the k-NN
실시예에 따라서, 상기 암호화 연산 프로토콜로서, GSPE 프로토콜이 선정되면, 상기 결과데이터를 도출하는 단계에서 k-NN 분류 처리 시스템(100)은 상기 암호화 kd 트리 내 m 차원의 데이터 E(p)가, 상기 kNN 질의와 연관된 질의 영역에 포함되면, 상기 GSPE 프로토콜에 의한 수행 결과로서 'E(1)'을 반환하고, 상기 데이터 E(p)가, 상기 질의 영역에 포함되지 않으면, 상기 GSPE 프로토콜에 의한 수행 결과로서 'E(0)'을 반환할 수 있다. 예를 들면, k-NN 분류 처리 시스템(100)은 암호화 인덱스를 탐색하는 과정에서, E(q)와 E(node z )(1≤z≤num node )를 기반으로 GSPE 프로토콜을 수행함으로써, 질의 지점을 포함하는 노드를 탐색할 수 있다. 이때, GSPE 수행 결과 반환된 E(α z )의 값이 E(1)인 노드는 질의 지점을 포함하는 노드일 수 있다. 이때, k-NN 분류 처리 시스템(100)은 제1 클라우드 및 제2 클라우드는 어느 노드가 질의 영역과 겹치는 영역인지 알 수 없게 할 수 있다.According to an embodiment, when a GSPE protocol is selected as the encryption operation protocol, the k-NN
실시예에 따라서, 상기 결과데이터를 도출하는 단계에서 k-NN 분류 처리 시스템(100)은 상기 제1 클라우드에서, GSPE 프로토콜을 기반으로, 상기 kNN 질의의 지점에 관한 복수의 데이터 E(a)를, 상기 암호화 데이터베이스에서 탐색하여, 상기 제2 클라우드로 전송하고, 상기 제2 클라우드에서, 상기 복호화 비밀키를 통해, 상기 복수의 데이터 E(a) 각각을, 복수의 데이터 E'(a)로 복호화하고, 상기 복수의 데이터 E'(a)를 각각 포함하는 노드 그룹을 생성하며, 상기 제1 클라우드에서, 정해진 순서에 따라 상기 제2 클라우드로부터 노드 그룹을 수신하고, 상기 노드 그룹에 저장된 데이터 E'(a) 및 상기 데이터 E(a)를 이용한 SM 프로토콜을 기반으로, 상기 제1 클라우드와 상기 제2 클라우드 간의 다자간 계산을 수행할 수 있다.According to an embodiment, in the step of deriving the result data, the k-NN
즉, k-NN 분류 처리 시스템(100)은 암호화 인덱스 탐색을 위하여, 제1 클라우드에서 GSPE 프로토콜을 수행함으로써, 질의 지점을 포함하는 노드 E(a)를 탐색할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 E(α)의 순서를 변경하여 제2 클라우드(180)로 전송하고, 제2 클라우드에서 복호화 한 후, c개의 노드 그룹 Group을 생성할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 각 노드 그룹에 할당된 노드의 순서를 랜덤하게 변환한 후, 이를 제1 클라우드(150)로 전송할 수 있다. k-NN 분류 처리 시스템(100)은 제1 클라우드에서, 각 노드 그룹에 속한 노드의 식별 번호를 역변경하고, 노드 그룹 별 노드에 저장된 데이터와 각 노드의 E(α)를 이용해 SM 프로토콜을 수행할 수 있다. 또한, k-NN 분류 처리 시스템(100)은 E(cand)를 반환함으로써 암호화 인덱스 탐색을 종료할 수 있다.That is, the k-NN
이러한, 가블드 회로 기반 k-NN 분류 처리 방법은 k-NN 질의처리 알고리즘의 결과데이터를 분류 분석함으로써, 정보 유출 없이 해당 결과데이터에 대한 등급을 추출하는 분석을 할 수 있다.In the garbled circuit-based k-NN classification processing method, the result data of the k-NN query processing algorithm is classified and analyzed, and thus, the analysis may be performed to extract a grade of the corresponding result data without information leakage.
또한, 가블드 회로 기반 k-NN 분류 처리 방법은 가블드 회로 및 데이터 패킹 기법 기반의 ESSED 프로토콜, GSCMP 프로토콜, 및 GSPE 프로토콜 중 적어도 하나의 암호화 연산 프로토콜을 수행함으로써, 연산 횟수를 감소시켜 효율적인 질의처리 성능을 제공할 수 있다.In addition, the garbled circuit-based k-NN classification processing method performs an encryption query protocol at least one of the ESSED protocol, the GSCMP protocol, and the GSPE protocol based on the garbled circuit and the data packing scheme, thereby reducing the number of operations and efficiently processing the query. Can provide performance.
또한, 가블드 회로 기반 k-NN 분류 처리 방법은 향상된 암호화 연산 프로토콜을 기반으로 하는 암호화 인덱스 탐색과 암호화 데이터베이스 상에서의 데이터 접근 패턴 보호를 지원하는 k-NN 질의처리 알고리즘을 제공함으로써, 추가적인 정보의 노출을 방지하여 데이터 보호와 사용자 질의 보호뿐만 아니라, 질의 처리 과정에서의 데이터 접근 패턴 보호를 모두 지원할 수 있다.In addition, the garbled circuit-based k-NN classification processing method exposes additional information by providing a k-NN query processing algorithm that supports encryption index search and data access pattern protection on an encryption database based on an improved encryption algorithm. It can protect not only data protection and user query, but also data access pattern protection during query processing.
본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment of the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, 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 not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the claims that follow.
100: 가블드 회로 기반 k-NN 분류 처리 시스템
110: 데이터베이스 120: kd 트리
130: 암호화 공개키 140: 복호화 비밀키
150: 제1 클라우드 160: 암호화 데이터베이스
170: 암호화 kd 트리 180: 제2 클라우드
190: 사용자 단말100: garbled circuit based k-NN classification processing system
110: database 120: kd tree
130: encryption public key 140: decryption secret key
150: first cloud 160: encryption database
170: encrypted kd tree 180: second cloud
190: user terminal
Claims (10)
원본 데이터베이스에 저장되는 데이터를 암호화 한 암호화 데이터베이스와, 상기 암호화와 연관되어 생성되는 암호화 공개키를, 상기 제1 클라우드에 유지하는 단계;
상기 암호화 공개키에 대응하는 복호화 비밀키를, 상기 제2 클라우드에 유지하는 단계;
상기 암호화 공개키를 배포 받은 상기 사용자 단말에서, kNN(k Nearest Neighbor) 질의가 발생되는 경우, 상기 암호화 공개키와 상기 복호화 비밀키에 기초한, 상기 제1 클라우드와 상기 제2 클라우드 간의 다자간 계산(SMC, Secure Multiparty Computation)을 수행하여, 상기 암호화 데이터베이스로부터 상기 kNN 질의에 대한 결과데이터를 도출하는 단계;
상기 결과데이터가 도출 됨에 따라, 상기 제1 클라우드와 상기 제2 클라우드 사이의 다자간 빈도(SF, Secure Frequency)를 수행하여, 상기 kNN 질의와, 상기 kNN 질의에 의해 도출되었던 과거 결과데이터 간에 대한 빈번도를 계산하는 단계;
상기 빈번도의 계산을 통해, 탐색 범주를 선택하는 단계; 및
상기 탐색 범주가, 상기 도출된 결과데이터의 범주와 일치하면, 상기 도출된 결과데이터를 사용자 단말로 제공하는 단계
를 포함하고,
상기 결과데이터를 도출하는 단계는,
상기 제1 클라우드에서, GSPE 프로토콜을 기반으로, 상기 kNN 질의의 지점에 관한 복수의 데이터 E(a)를, 상기 암호화 데이터베이스에서 탐색하여, 상기 제2 클라우드로 전송하는 단계;
상기 제2 클라우드에서, 상기 복호화 비밀키를 통해, 상기 복수의 데이터 E(a) 각각을, 복수의 데이터 E'(a)로 복호화하고, 상기 복수의 데이터 E'(a)를 각각 포함하는 노드 그룹을 생성하는 단계; 및
상기 제1 클라우드에서, 정해진 순서에 따라 상기 제2 클라우드로부터 노드 그룹을 수신하고, 상기 노드 그룹에 저장된 데이터 E'(a) 및 상기 데이터 E(a)를 이용한 SM 프로토콜을 기반으로, 상기 제1 클라우드와 상기 제2 클라우드 간의 다자간 계산을 수행하는 단계
를 포함하는 가블드 회로(GARBLED CIRCUIT) 기반 k-NN 분류 처리 방법.Building a first cloud and a second cloud that is non-colluded with the first cloud;
Maintaining an encrypted database encrypted with data stored in an original database and an encrypted public key generated in association with the encryption in the first cloud;
Maintaining a decryption secret key corresponding to the encryption public key in the second cloud;
In the user terminal distributed with the encryption public key, when a kNN (k Nearest Neighbor) query is generated, multilateral calculation between the first cloud and the second cloud based on the encryption public key and the decryption secret key (SMC) Performing Secure Multiparty Computation to derive result data of the kNN query from the encryption database;
As the result data is derived, a frequent frequency between the kNN query and the past result data derived by the kNN query is performed by performing Secure Frequency (SF) between the first cloud and the second cloud. Calculating;
Selecting a search category through the calculation of the frequency; And
Providing the derived result data to a user terminal if the search category matches the category of the derived result data
Including,
Deriving the result data,
In the first cloud, based on a GSPE protocol, retrieving a plurality of data E (a) relating to a point of the kNN query from the cryptographic database and transmitting to the second cloud;
In the second cloud, each of the plurality of data E (a) is decrypted into a plurality of data E '(a) through the decryption secret key, and each node includes the plurality of data E' (a). Creating a group; And
Receiving a node group from the second cloud in a predetermined order in the first cloud, based on the SM protocol using the data E '(a) and the data E (a) stored in the node group, the first Performing a multiparty calculation between a cloud and the second cloud
A garbled circuit (GARBLED CIRCUIT) based k-NN classification processing method comprising a.
상기 탐색 범주를 선택하는 단계는,
상기 제1 클라우드에서, 가장 높은 빈번도가 계산된 과거 결과데이터가 갖는 범주에, 임의의 부호값을 부가하여 암호화 범주로 부호화하는 제1 단계;
상기 제1 클라우드에서, 상기 암호화 범주를 상기 제2 클라우드로 제공하고, 상기 부호값을 상기 사용자 단말로 제공하는 제2 단계;
상기 제2 클라우드에서, 상기 암호화 범주에 대해 복호화하여 복호화 범주를 생성하고, 상기 복호화 범주를 상기 사용자 단말로 제공하는 제3 단계;
상기 사용자 단말에서, 제공된 상기 부호값과 상기 복호화 범주를 이용하여, 상기 암호화 범주로 복원하는 제4 단계; 및
상기 암호화 범주로의 복원이 가능하면, 상기 가장 높은 빈번도가 계산된 과거 결과데이터가 갖는 범주를, 상기 탐색 범주로서 선택하는 단계
를 포함하는 가블드 회로 기반 k-NN 분류 처리 방법.The method of claim 1,
Selecting the search category,
A first step of adding an arbitrary code value to the category of the past result data having the highest frequency calculated in the first cloud and encoding the same into an encryption category;
Providing, in the first cloud, the encryption category to the second cloud and providing the code value to the user terminal;
In the second cloud, decrypting the encryption category to generate a decryption category, and providing the decryption category to the user terminal;
A fourth step of recovering, at the user terminal, to the encryption category by using the provided code value and the decryption category; And
If restoring to the encryption category is possible, selecting, as the search category, a category of the past result data whose highest frequency is calculated;
Garbled circuit-based k-NN classification processing method comprising a.
상기 탐색 범주를 선택하는 단계는,
상기 빈번도의 크기에 따라 정해지는 과거 결과데이터가 갖는 범주를 순차적으로 이용하여, 상기 제1 단계 내지 상기 제4 단계를 반복하되, 상기 암호화 범주로의 복원이 가능하면, 상기 반복을 중단하는 단계
를 더 포함하는 가블드 회로 기반 k-NN 분류 처리 방법.The method of claim 2,
Selecting the search category,
Repeating the first step to the fourth step by sequentially using a category of the past result data determined according to the magnitude of the frequency, and stopping the repetition if it is possible to restore the encryption category.
The garbled circuit-based k-NN classification processing method further comprising.
상기 가블드 회로 기반 k-NN 분류 처리 방법은,
상기 원본 데이터베이스에 저장된 데이터를, 다수의 속성(attribute) 및 차원(column)으로 분할하여, kd 트리를 구성하는 단계; 및
상기 kd 트리를 암호화 한 암호화 kd 트리를, 상기 제1 클라우드에 유지하는 단계
를 더 포함하고,
상기 결과데이터를 도출하는 단계는,
선정된 암호화 연산 프로토콜을 기반으로, 상기 암호화 kd 트리에 근거한, 상기 암호화 데이터베이스 상에서의 상기 kNN 질의를 처리하여 상기 결과데이터를 도출하는 단계
를 더 포함하는 가블드 회로 기반 k-NN 분류 처리 방법.The method of claim 1,
The garbled circuit-based k-NN classification processing method,
Dividing the data stored in the original database into a plurality of attributes and columns to construct a kd tree; And
Maintaining an encrypted kd tree encrypted with the kd tree in the first cloud;
More,
Deriving the result data,
Deriving the result data by processing the kNN query on the encrypted database based on the encrypted kd tree based on the selected encryption operation protocol.
The garbled circuit-based k-NN classification processing method further comprising.
상기 결과데이터를 도출하는 단계는,
ESSED(Enhanced Secure Squared Euclidean Distance) 프로토콜, GSCMP(Garbled Circuit based Secure Compare) 프로토콜, 및 GSPE(Garbled Circuit based Secure Point Enclosure) 프로토콜 중 어느 하나를, 상기 암호화 연산 프로토콜로 선정하는 단계
를 더 포함하는 가블드 회로 기반 k-NN 분류 처리 방법.The method of claim 5,
Deriving the result data,
Selecting any one of an Enhanced Secure Squared Euclidean Distance (ESSED) protocol, a Garbled Circuit based Secure Compare (GSCMP) protocol, and a Garbled Circuit based Secure Point Enclosure (GSPE) protocol as the encryption algorithm.
The garbled circuit-based k-NN classification processing method further comprising.
상기 암호화 연산 프로토콜로서, ESSED 프로토콜이 선정되면,
상기 결과데이터를 도출하는 단계는,
상기 암호화 kd 트리 내 임의의 데이터 쌍에 대한 차원별 거리의 합산을, 2차원 상에서 수행하여, 상기 결과데이터의 도출을 위한 암호화 데이터 기반 연산 횟수를 감소시키는 단계
를 더 포함하는 가블드 회로 기반 k-NN 분류 처리 방법.The method of claim 5,
If the ESSED protocol is selected as the encryption operation protocol,
Deriving the result data,
Summing the dimension-specific distances for any pair of data in the encrypted kd tree in two dimensions to reduce the number of operations based on encrypted data for deriving the result data.
The garbled circuit-based k-NN classification processing method further comprising.
상기 암호화 연산 프로토콜로서, GSCMP 프로토콜이 선정되면,
상기 결과데이터를 도출하는 단계는,
상기 제1 클라우드와 상기 제2 클라우드 사이에서 난수를 교환하여, 상기 암호화 kd 트리 내 임의의 데이터 쌍에 대한 크기 비교에 따라 반환되는 데이터의 값을 결정하는 단계
를 더 포함하는 가블드 회로 기반 k-NN 분류 처리 방법.The method of claim 5,
If the GSCMP protocol is selected as the encryption operation protocol,
Deriving the result data,
Exchanging random numbers between the first cloud and the second cloud to determine a value of the data returned according to a size comparison for any data pair in the encrypted kd tree
The garbled circuit-based k-NN classification processing method further comprising.
상기 암호화 연산 프로토콜로서, GSPE 프로토콜이 선정되면,
상기 결과데이터를 도출하는 단계는,
상기 암호화 kd 트리 내 m 차원의 데이터 E(p)가, 상기 kNN 질의와 연관된 질의 영역에 포함되면, 상기 GSPE 프로토콜에 의한 수행 결과로서 'E(1)'을 반환하는 단계; 및
상기 데이터 E(p)가, 상기 질의 영역에 포함되지 않으면, 상기 GSPE 프로토콜에 의한 수행 결과로서 'E(0)'을 반환하는 단계
를 더 포함하는 가블드 회로 기반 k-NN 분류 처리 방법.The method of claim 5,
If the GSPE protocol is selected as the encryption operation protocol,
Deriving the result data,
If the m-dimensional data E (p) in the encrypted kd tree is included in the query region associated with the kNN query, returning 'E (1)' as a result of execution by the GSPE protocol; And
If the data E (p) is not included in the query region, returning 'E (0)' as a result of execution by the GSPE protocol.
The garbled circuit-based k-NN classification processing method further comprising.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170059798A KR102010644B1 (en) | 2017-05-15 | 2017-05-15 | METHOD AND SYSTEM FOR k-NN CLASSIFICATION PROCESSING BASED ON GARBLED CIRCUIT |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170059798A KR102010644B1 (en) | 2017-05-15 | 2017-05-15 | METHOD AND SYSTEM FOR k-NN CLASSIFICATION PROCESSING BASED ON GARBLED CIRCUIT |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180125227A KR20180125227A (en) | 2018-11-23 |
KR102010644B1 true KR102010644B1 (en) | 2019-08-14 |
Family
ID=64565560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170059798A KR102010644B1 (en) | 2017-05-15 | 2017-05-15 | METHOD AND SYSTEM FOR k-NN CLASSIFICATION PROCESSING BASED ON GARBLED CIRCUIT |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102010644B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111016720A (en) * | 2019-12-23 | 2020-04-17 | 深圳供电局有限公司 | Attack identification method based on K nearest neighbor algorithm and charging device |
Citations (1)
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 |
-
2017
- 2017-05-15 KR KR1020170059798A patent/KR102010644B1/en active IP Right Grant
Patent Citations (1)
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 (3)
Title |
---|
Ebrahim M. Songhori et al, "Compacting Privacy-Preserving k-Nearest Neighbor Search using Logic Synthesis", 2015 52nd ACM/EDAC/IEEE Design Automation Conference, pp.1-6, 2015.06.08.* |
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.* |
Also Published As
Publication number | Publication date |
---|---|
KR20180125227A (en) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2901359B1 (en) | Secure private database querying with content hiding bloom filters | |
US10554385B2 (en) | Method for providing encrypted data in a database and method for searching on encrypted data | |
JP6180177B2 (en) | Encrypted data inquiry method and system capable of protecting privacy | |
KR101190059B1 (en) | Method for data encryption and method for conjunctive keyword search of encrypted data | |
KR101282281B1 (en) | Weighted keyword searching method for perserving privacy, and apparatus thereof | |
CN108833361B (en) | Identity authentication method and device based on virtual account | |
US20090138698A1 (en) | Method of searching encrypted data using inner product operation and terminal and server therefor | |
CN108062485A (en) | A kind of fuzzy keyword searching method of multi-service oriented device multi-user | |
CN102314580A (en) | Vector and matrix operation-based calculation-supported encryption method | |
US9910478B2 (en) | Collation system, node, collation method, and computer readable medium | |
CN111339539B (en) | Efficient encrypted image retrieval method under multi-user environment | |
CN108416037B (en) | Central keyword ciphertext searching method based on two-stage index in cloud environment | |
Sharma | ENHANCE DATA SECURITY IN CLOUD COMPUTING USING MACHINE LEARNING AND HYBRID CRYPTOGRAPHY TECHNIQUES. | |
CN108370312B (en) | Encryption device, search device, computer-readable recording medium, encryption method, and search method | |
KR102010644B1 (en) | METHOD AND SYSTEM FOR k-NN CLASSIFICATION PROCESSING BASED ON GARBLED CIRCUIT | |
JP6791263B2 (en) | Ciphertext collation system and ciphertext collation method | |
Jones et al. | Information Security: A Coordinated Strategy to Guarantee Data Security in Cloud Computing | |
CN112380404A (en) | Data filtering method, device and system | |
JP7024709B2 (en) | Cryptographic information collation device, cryptographic information collation method, and cryptographic information collation program | |
KR101916228B1 (en) | METHOD AND SYSTEM FOR k-NN QUERY PROCESSING BASED ON GARBLED CIRCUIT | |
Guan et al. | Epgq: Efficient and private feature-based group nearest neighbor query over road networks | |
KR101942763B1 (en) | Encrypted index based range query processing method and range query processing system | |
Wang et al. | A Secure Searchable Image Retrieval Scheme with Correct Retrieval Identity | |
Mishra et al. | An Operative Encryption Method with Optimized Genetical method for Assuring Information Security in Cloud Computing | |
US20170132279A1 (en) | Criteria generation device, criteria generation method, recording medium containing criteria generation program, database search system, and recording medium containing database search program |
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 |