KR101795482B1 - Device and method for encrypted data retrival - Google Patents

Device and method for encrypted data retrival Download PDF

Info

Publication number
KR101795482B1
KR101795482B1 KR1020160033152A KR20160033152A KR101795482B1 KR 101795482 B1 KR101795482 B1 KR 101795482B1 KR 1020160033152 A KR1020160033152 A KR 1020160033152A KR 20160033152 A KR20160033152 A KR 20160033152A KR 101795482 B1 KR101795482 B1 KR 101795482B1
Authority
KR
South Korea
Prior art keywords
data
server
matrix
processor
index
Prior art date
Application number
KR1020160033152A
Other languages
Korean (ko)
Other versions
KR20170109272A (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 KR1020160033152A priority Critical patent/KR101795482B1/en
Publication of KR20170109272A publication Critical patent/KR20170109272A/en
Application granted granted Critical
Publication of KR101795482B1 publication Critical patent/KR101795482B1/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/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F17/30171
    • G06F17/30386
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 통신 모듈, 데이터 검색 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라, 범위 및 키에 기초하여, 서버에 저장된 데이터 중 검색 대상 데이터에 대응하는 인덱스를 산출하며, 산출된 인덱스를 서버로 전송하고, 서버로부터 산출된 인덱스에 대응하는 데이터를 수신한다. 그리고 범위는 서버로부터 수신한 순열 정보에 기초하여 산출된 것이며, 키는 서버에 저장된 데이터에 대응하여 설정된다.The present invention includes a communication module, a memory in which a data retrieval program is stored, and a processor for executing the program. At this time, the processor calculates the index corresponding to the search target data among the data stored in the server, based on the range and the key, and transmits the calculated index to the server, And receives data. The range is calculated based on the permutation information received from the server, and the key is set corresponding to the data stored in the server.

Description

데이터 검색 단말 및 그의 검색 방법{DEVICE AND METHOD FOR ENCRYPTED DATA RETRIVAL}TECHNICAL FIELD [0001] The present invention relates to a data search terminal,

본 발명은 데이터 검색 단말 및 그의 검색 방법에 관한 것이다.The present invention relates to a data search terminal and a search method thereof.

일반적인 데이터 검색 기술은 암호화되지 않은 정보에 대한 검색을 수행한다. 그러나 클라우드(cloud) 환경에서 데이터를 저장하는 기술이 발달함에 따라, 암호화된 데이터에 대한 검색에 대한 요구가 증가하고 있다. Common data retrieval techniques perform searches on unencrypted information. However, as the technology for storing data in a cloud environment develops, there is an increasing demand for searching for encrypted data.

순서보존 암호화(order preserving encryption; OPE) 방법은 데이터를 암호화하되, 결과 값의 순서를 보존하는 방법이다. 순서보존 암호화 방법은 데이터 암호화를 통하여, 안정성 및 검색에 대한 효율성을 동시에 만족시킬 수 있다. 그러나 순서 보존 암호화 방법은 순서가 보존되므로 순서로부터 데이터 정보가 유출될 수 있는 위험이 있다.The order preserving encryption (OPE) method encrypts data but preserves the order of the results. The sequential encryption method can satisfy both stability and retrieval efficiency through data encryption. However, there is a risk that data informa- tion can be leaked from the sequence because the sequence preservation encryption method preserves the order.

이와 관련되어, 한국 공개특허공보 제1584220호(발명의 명칭: "암호화 데이터 정렬 유지를 위한 인코딩 방법")는 카운터 모드 블록 암호화에 의한 암호화된 데이터를 평문 데이터 정렬 순서를 유지할 수 있게 인코딩하는 방법을 개시하고 있다.In this connection, Korean Patent Publication No. 1584220 (entitled "Encoding Method for Maintaining Encrypted Data Alignment") discloses a method for encoding encrypted data by counter mode block encryption so as to maintain a clear text data sort order Lt; / RTI >

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 서버에 저장된 암호화된 데이터에 대한 검색을 수행할 수 있는 데이터 검색 단말 및 그의 검색 방법에 관한 것이다. Disclosure of Invention Technical Problem [8] The present invention is directed to a data retrieval terminal and a retrieval method for retrieving encrypted data stored in a server.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 서버에 저장된 데이터를 검색하는 단말은 통신 모듈, 데이터 검색 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라, 범위 및 키에 기초하여, 서버에 저장된 데이터 중 검색 대상 데이터에 대응하는 인덱스를 산출하며, 산출된 인덱스를 서버로 전송하고, 서버로부터 산출된 인덱스에 대응하는 데이터를 수신한다. 그리고 범위는 서버로부터 수신한 순열 정보에 기초하여 산출된 것이며, 키는 서버에 저장된 데이터에 대응하여 설정된다.According to an aspect of the present invention, there is provided a terminal for retrieving data stored in a server according to the first aspect of the present invention includes a communication module, a memory in which a data retrieval program is stored, and a processor for executing the program. At this time, the processor calculates the index corresponding to the search target data among the data stored in the server, based on the range and the key, and transmits the calculated index to the server, And receives data. The range is calculated based on the permutation information received from the server, and the key is set corresponding to the data stored in the server.

또한, 본 발명의 제 2 측면에 따른 단말에서의 서버에 저장된 데이터 검색 방법은 범위 및 키에 기초하여, 서버에 저장된 데이터 중 검색 대상 데이터에 대응하는 인덱스를 산출하는 단계; 산출된 인덱스를 서버로 전송하는 단계; 및 서버로부터 산출된 인덱스에 대응하는 데이터를 수신하는 단계를 포함한다. 이때, 범위는 서버로부터 수신한 순열 정보에 기초하여 산출된 것이며, 키는 서버에 저장된 데이터에 대응하여 설정된 것이다.According to a second aspect of the present invention, there is provided a method of retrieving data stored in a server in a terminal, comprising: calculating an index corresponding to data to be retrieved from data stored in a server based on a range and a key; Transmitting the calculated index to a server; And receiving data corresponding to the index calculated from the server. In this case, the range is calculated based on the permutation information received from the server, and the key is set corresponding to the data stored in the server.

본 발명은 단말에서 데이터를 재정렬하고, 서버로 전송하여 서버의 데이터베이스에 저장할 수 있다. 그러므로 본 발명은 서버에 저장된 데이터의 안정성을 보장할 수 있다. 또한, 본 발명은 이진 검색을 통하여, 서버에 저장된 암호화된 데이터에 대한 효율적인 검색을 수행할 수 있다. 그러므로 본 발명은 데이터 유출을 방지하고, 암호화된 데이터의 신속한 검색을 제공할 수 있다.The present invention can rearrange the data at the terminal, transmit the data to the server, and store the data in the database of the server. Therefore, the present invention can ensure the stability of data stored in the server. In addition, the present invention can perform an efficient search for encrypted data stored in a server through a binary search. Therefore, the present invention can prevent data leakage and provide quick retrieval of encrypted data.

도 1은 본 발명의 일 실시예에 따른 데이터 검색 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 유계 행렬 및 균형 행렬의 예시도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 암호화 행렬의 예시도이다.
도 4는 본 발명의 일 실시예에 따른 데이터의 예시도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 검색의 예시도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 검색 단말의 검색 방법의 순서도이다.
1 is a block diagram of a data retrieval system in accordance with an embodiment of the present invention.
FIG. 2 is an exemplary diagram of a relational matrix and a balance matrix according to an embodiment of the present invention.
3 is an exemplary diagram of a data encryption matrix according to one embodiment of the present invention.
4 is an illustration of data according to an embodiment of the present invention.
5 is an exemplary diagram of data retrieval according to an embodiment of the present invention.
6 is a flowchart of a search method of a data search terminal 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, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when a part is referred to as "including " an element, it does not exclude other elements unless specifically stated otherwise.

다음은 도 1 내지 도 5를 참조하여, 본 발명의 일 실시예에 따른 데이터 검색 시스템(100)을 설명한다.The following is a description of a data retrieval system 100 according to an embodiment of the present invention, with reference to Figs.

도 1은 본 발명의 일 실시예에 따른 데이터 검색 시스템(100)의 블록도이다.1 is a block diagram of a data retrieval system 100 in accordance with an embodiment of the present invention.

데이터 검색 시스템(100)은 단말(110)이 서버(120)에 저장된 암호화된 데이터를 검색한다. 이때, 서버(120)에 저장된 데이터는 단말(110)에 의해 암호화된 후 서버(120)에 포함된 데이터베이스(122)에 저장된 것일 수 있다.The data retrieval system 100 retrieves the encrypted data stored in the server 120 by the terminal 110. [ At this time, the data stored in the server 120 may be stored in the database 122 included in the server 120 after being encrypted by the terminal 110.

데이터 검색 시스템(100)은 서버(120) 및 복수의 단말(110)을 포함할 수 있다.The data retrieval system 100 may include a server 120 and a plurality of terminals 110.

서버(120)는 단말(110)로부터 데이터를 수신하여 저장할 수 있다. 또한, 서버(120)는 단말(110)의 요청에 따라, 단말(110)에 단말(110)의 요청에 대응하는 데이터를 제공할 수 있다. 서버(120)는 데이터를 저장할 수 있는 데이터베이스(122)를 포함할 수 있다.The server 120 may receive and store data from the terminal 110. The server 120 may also provide data corresponding to the request of the terminal 110 to the terminal 110 in response to a request from the terminal 110. [ The server 120 may include a database 122 capable of storing data.

이때, 데이터베이스(122)는 서버(120)에 응용 프로그램(application) 또는 서비스(service)의 형태로 포함된 것일 수 있다. 또한, 데이터베이스(122)는 서버(120)와 연결된 데이터베이스 서버일 수 있다. 그리고 서버(120)는 클라우드 서버일 수 있다. At this time, the database 122 may be included in the server 120 in the form of an application program or a service. In addition, the database 122 may be a database server connected to the server 120. The server 120 may be a cloud server.

서버(120)는 단말(110)에서 암호화를 위하여 사용할 수 있는 순열 정보를 포함할 수 있다. 이때, 순열 정보는 행렬의 모든 행이 순열(permutation)로 이루어진 유계 행렬(bounded matrix) 및 균형 행렬(balanced matrix)을 포함할 수 있다. 유계 행렬 및 균형 행렬은 행 및 열의 수가 동일한 정방 행렬(square matrix)일 수 있다.The server 120 may include permutation information that can be used by the terminal 110 for encryption. In this case, the permutation information may include a balanced matrix and a balanced matrix in which all rows of the matrix are permutations. The inference matrix and the balance matrix may be a square matrix having the same number of rows and columns.

도 2는 본 발명의 일 실시예에 따른 유계 행렬 및 균형 행렬의 예시도이다.FIG. 2 is an exemplary diagram of a relational matrix and a balance matrix according to an embodiment of the present invention.

균형 행렬은 도 2의 (a)와 같이, 동일한 열에 동일한 원소가 한 번도 중복될 수 없는 행렬을 의미한다. 균형 행렬은 "1-균형 행렬" 또는 "1-balanced"로 표기할 수 있다.The balance matrix means a matrix in which the same elements in the same column can not be duplicated at all, as shown in Fig. 2 (a). The equilibrium matrix can be denoted as "1-balanced matrix" or "1-balanced".

유계 행렬은 도 2의 (b)와 같이, 동일한 열에 동일한 원소가 특정 개수 이하 포함된 행렬을 의미한다. 유계 행렬은 열에 포함된 동일한 원소 개수(k)에 따라, "k-유계 행렬" 또는 "k-Bounded"로 표기할 수 있다.As shown in FIG. 2 (b), the relational matrix means a matrix including the same number of elements of the same column or less. The affine matrices can be denoted as " k - matrix" or " k - bounded" according to the same number of elements ( k ) contained in the column.

단말(110)은 데이터를 암호화하여, 서버(120)에 저장한다. 그리고 단말(110)은 서버(120)에 저장된 암호화된 데이터를 검색할 수 있다. 단말(110)은 통신 모듈(111), 메모리(112) 및 프로세서(113)을 포함한다. The terminal 110 encrypts the data and stores it in the server 120. The terminal 110 can retrieve the encrypted data stored in the server 120. The terminal 110 includes a communication module 111, a memory 112, and a processor 113.

통신 모듈(111)은 서버(120)와의 데이터 통신을 수행할 수 있다.The communication module 111 can perform data communication with the server 120.

메모리(112)는 데이터 검색 프로그램이 저장된다. 이때, 메모리(112)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치를 통칭하는 것이다.The memory 112 stores a data retrieval program. At this time, the memory 112 collectively refers to a non-volatile storage device that keeps stored information even when no power is supplied, and a volatile storage device that requires power to maintain stored information.

프로세서(113)는 데이터를 서버(120)에 포함된 데이터베이스(122)에 저장할 수 있다. 이때, 프로세서(113)는 저장되는 데이터를 재정렬하여, 서버(120)로 전송할 수 있다.The processor 113 may store the data in the database 122 included in the server 120. At this time, the processor 113 can rearrange the data to be stored and transmit the data to the server 120.

구체적으로 프로세서(113)는 서버(120)의 데이터베이스(122)에 원시 데이터(original data)를 저장한다. 이때, 원시 데이터는 특정 속성에 따라 정렬된 데이터일 수 있다. 예를 들어, 원시 데이터는 주 키(primary key)에 따라 정렬된 데이터일 수 있다.Specifically, the processor 113 stores the original data in the database 122 of the server 120. At this time, the raw data may be data sorted according to a specific property. For example, the raw data may be data sorted according to a primary key.

프로세서(113)는 원시 데이터를 저장하기 위하여, 서버(120)에 저장된 순열 정보 중 하나의 유계 행렬 및 하나 이상의 균형 행렬을 선택할 수 있다. 이때, 선택된 유계 행렬 및 균형 행렬의 크기는 저장하고자 하는 원시 데이터의 수에 따라, 결정될 수 있다.The processor 113 may select one of the permutation matrix and one or more balance matrices of the permutation information stored in the server 120 to store the raw data. At this time, the size of the selected population matrix and the balance matrix can be determined according to the number of raw data to be stored.

또한, 본 명세서에서 원시 데이터, 유계 행렬 및 균형 행렬의 인덱스(index)는 0부터 시작할 수 있다. 즉 원시 데이터의 인덱스는 0보다 같거나 크며, '원시 데이터 크기 - 1'보다 작은 값을 가질 수 있다. 또한, 행렬에서 행의 인덱스 및 열의 인덱스는 같거나 0보다 크며, '행렬의 차원 수 - 1'보다 작은 값을 가질 수 있다.Also, in this specification, the indexes of the raw data, the relational matrix and the balance matrix can start from zero. That is, the index of the raw data is equal to or larger than 0 and can have a value smaller than 'raw data size - 1'. Also, the index of the row and the index of the column in the matrix are equal to or greater than 0, and may have a value smaller than the number of dimensions of the matrix - 1.

한편, 프로세서(113)는 유계 행렬 및 균형 행렬 각각의 차원의 곱이 원시 데이터의 수보다 크도록 유계 행렬 및 균형 행렬의 차원의 수를 선택할 수 있다. 예를 들어, 원시 데이터 수가 10개라면, 프로세서(113)는 유계 행렬 및 균형 행렬의 차원 수의 곱이 10 이상이 되도록 유계 행렬 및 균형 행렬을 선택할 수 있다.On the other hand, the processor 113 may select the number of dimensions of the relational matrix and the balance matrix such that the product of the dimensions of the relational matrix and the balance matrix is greater than the number of raw data. For example, if the number of primitive data is ten, the processor 113 may select the population matrix and the balance matrix such that the product of the number of dimensions of the population matrix and the balance matrix is 10 or greater.

그리고 프로세서(113)는 선택된 차원의 수에 대응하는 유계 행렬 및 균형 행렬을 선택할 수 있다. 프로세서(113)가 유계 행렬 및 균형 행렬을 선택하면, 서버(120)는 선택된 유계 행렬 및 균형 행렬 정보를 저장할 수 있다. The processor 113 may then select a helix matrix and a balance matrix corresponding to the number of selected dimensions. When the processor 113 selects a helix matrix and a balance matrix, the server 120 may store the selected helix matrix and balance matrix information.

프로세서(113)는 유계 행렬 및 균형 행렬의 곱을 통하여, 데이터 암호화 행렬을 산출할 수 있다.The processor 113 may calculate the data encryption matrix through the multiplication of the legacy matrix and the balance matrix.

예를 들어, N-1 개의 균형 행렬(M 1, M 2, … ,M N -1) 및 1개의 유계 행렬(M N )이 선택되는 경우, 데이터 암호화 행렬(M)은 N-1 개의 균형 행렬 및 1개의 유계 행렬의 곱을 통하여 산출될 수 있다. 데이터 암호화 행렬은 먼저 (M N x M N- 1 )을 산출하고, 산출된 값에 다시 M N-2 를 곱하는 연산 순서로 산출될 수 있다. 즉, 데이터 암호화 행렬 M {((M N x M N-1 ) x … x M 2 ) x M 1 }을 통하여 산출될 수 있다. For example, N -1 of balance matrix (M 1, M 2, ..., M N -1) and one oil-based matrix (M N) in this case is selected, data encryption, matrix (M) is N -1 of balance Can be computed through the multiplication of a matrix and a relational matrix. The data encryption matrix is first ( M N x M N- 1 ), and multiplying the calculated value by M N-2 again. That is, the data encryption matrix M {(( M N x M N-1 ) x ... x M 2 ) x M 1 }.

예를 들어, [수학식 1]에 기초하여, 1 개의 균형 행렬(M 1) 및 1개의 유계 행렬(M 2 )로부터 데이터 암호화 행렬 M을 산출할 수 있다. [수학식 1]에서 m 1 은 균형 행렬(M 1)의 차원 수이며, m 2 은 유계 행렬(M 2 ) 의 차원 수이다. J m 1 X m 1 의 원소가 모두 1인 정방 행렬이다. 또한, 데이터 암호화 행렬 M은 행 및 열의 크기가 (m 1 X m 2 )인 정방 행렬이다. For example, based on Equation 1, it is possible to calculate the encrypted data matrix M from a single balance matrix (M 1) and one oil-based matrix (M 2). In Equation (1), m 1 is the number of dimensions of the balance matrix ( M 1 ), and m 2 is the number of dimensions of the relational matrix ( M 2 ). J is a square matrix in which all the elements of m 1 X m 1 are 1. In addition, the data encryption matrix M is a square matrix in which the size of a row and a column is ( m 1 X m 2 ).

Figure 112016026645958-pat00001
Figure 112016026645958-pat00001

예를 들어, [수학식 1]에서는 1행 1열부터 m 1 m 1 열까지의 원소를 산출하기 위한 식이다. 즉, 앞에서 설명한 예제에 따라, 1행 1열부터 3행 3열까지의 원소를 산출하는 식은

Figure 112016026645958-pat00002
이다. 이때,
Figure 112016026645958-pat00003
Figure 112016026645958-pat00004
이므로, 이므로, 1행 1열부터 3 행 3열까지의 원소는
Figure 112016026645958-pat00005
이 될 수 있다. For example, Equation 1 in the formula for calculating the elements of from 1 to row 1, column 1, line m 1 m column. That is, according to the example described above, the expression for calculating the elements from row 1 to column 3, row 3
Figure 112016026645958-pat00002
to be. At this time,
Figure 112016026645958-pat00003
The
Figure 112016026645958-pat00004
, So the elements from row 1 to row 3 to column 3 are
Figure 112016026645958-pat00005
.

즉, 데이터 암호화 행렬 M에서 1행 1열의 값은 0, 1행 3열의 값은 1이되며, 3행 3열의 값은 2가 될 수 있다. That is, in the data encryption matrix M , the value of 1 row and 1 column is 0, the value of 1 row and 3 column is 1, and the value of 3 row and 3 column can be 2.

또한, 1행 10열부터 3행 12열까지의 원소를 산출하는 식은

Figure 112016026645958-pat00006
이므로, 1행 10열부터 3행 12열까지의 원소는
Figure 112016026645958-pat00007
가 될 수 있다. The equation for calculating the elements from row 1 to column 3 to column 12
Figure 112016026645958-pat00006
, The elements from row 1 to row 3 to row 12 are
Figure 112016026645958-pat00007
.

데이터 암호화 행렬은 단말(110)에서 서버(120)로부터 유계 행렬 및 균등 행렬을 수신한 후, 계산된 것일 수 있다. 또한, 데이터 암호화 행렬은 서버(120)에서 계산된 후 단말(110)로 전달된 것일 수 있다. The data encryption matrix may be computed after receiving the residual matrix and the uniformity matrix from the terminal 120 at the terminal 110. In addition, the data encryption matrix may be calculated by the server 120 and then transmitted to the terminal 110.

예를 들어, 데이터 암호화 행렬을 단말(110)에서 계산되는 경우, 프로세서(113)는 선택한 유계 행렬 및 하나 이상의 균형 행렬을 서버(120)로부터 수신하여, 데이터 암호화 행렬을 산출할 수 있다.For example, if a data encryption matrix is computed at the terminal 110, the processor 113 may receive the selected population matrix and at least one balance matrix from the server 120 to yield a data encryption matrix.

또한, 서버(120)에서 데이터 암호화 행렬이 계산되는 경우, 프로세서(113)는 선택한 유계 행렬 및 하나 이상의 균형 행렬의 정보를 서버(120)로 전송할 수 있다. 그리고 서버(120)에서 데이터 암호화 행렬을 산출하면, 프로세서(113)는 통신 모듈(111)을 통하여, 산출된 데이터 암호화 행렬을 수신할 수 있다. 또는, 프로세서(113)는 통신 모듈(111)을 통하여, 서버(120)로 키를 전송하고, 서버(120)로부터 키에 대응하는 행을 수신할 수 있다. In addition, when a data encryption matrix is calculated at the server 120, the processor 113 may transmit information of the selected population matrix and at least one balance matrix to the server 120. [ When the server 120 calculates the data encryption matrix, the processor 113 can receive the calculated data encryption matrix through the communication module 111. [ Alternatively, the processor 113 may transmit a key to the server 120 via the communication module 111 and receive a row corresponding to the key from the server 120. [

그리고 프로세서(113)는 산출된 데이터 암호화 행렬에 기초하여, 원시 데이터를 재정렬할 수 있다. 이때, 프로세서(113)는 키에 기초하여, 재정렬에 사용될 행을 선택할 수 있다. 그리고 사용자가 데이터 암호화를 위한 키를 선택하면, 프로세서(113)는 키를 메모리(112)에 저장할 수 있다.The processor 113 may then reorder the raw data based on the computed data encryption matrix. At this time, the processor 113 may select a row to be used for reordering based on the key. When the user selects a key for data encryption, the processor 113 can store the key in the memory 112. [

이때, 키는 단말(110)을 통하여, 원시 데이터를 저장하는 사용자가 선택한 것일 수 있다. 키는 1보다 크거나 같은 값이며, 유계 행렬 및 하나 이상의 균형 행렬 각각의 차원의 곱보다 작거나 같은 값일 수 있다. At this time, the key may be selected by the user through the terminal 110 to store the raw data. The key may be a value greater than or equal to 1 and may be a value less than or equal to the product of the inference matrix and the dimension of each of the at least one balance matrix.

도 3은 본 발명의 일 실시예에 따른 데이터 암호화 행렬의 예시도이다.3 is an exemplary diagram of a data encryption matrix according to one embodiment of the present invention.

예를 들어, 도 3을 참조하면 프로세서(113)는 하나의 유계 행렬(M 2 ) 및 하나의 균형 행렬(M 1 )의 곱을 통하여, 데이터 암호화 행렬을 산출할 수 있다. 그리고 사용자가 키로 7번째 행의 인덱스인 "6"을 선택하면, 프로세서(113)는 데이터 암호화 행렬의 7번째 행을 선택할 수 있다. For example, referring to FIG. 3, the processor 113 may calculate a data encryption matrix through multiplication of one leg matrix ( M 2 ) and one balance matrix ( M 1 ). If the user selects "6 " which is the index of the 7th row with the key, the processor 113 can select the 7th row of the data encryption matrix.

프로세서(113)는 데이터 암호화 행렬에서 선택한 7번째 행을 이용하여, 저장할 데이터를 재정렬 할 수 있다. The processor 113 may reorder the data to be stored using the seventh row selected in the data encryption matrix.

도 4는 본 발명의 일 실시예에 따른 데이터의 예시도이다. 4 is an illustration of data according to an embodiment of the present invention.

도 4를 참조하면, 프로세서(113)는 도 4의 (a)와 같은 원시 데이터를 재정렬하여, 도 4의 (b)와 같이 서버(120)의 데이터베이스(122)에 저장할 수 있다. 이때, 원시 데이터는 주 키인 "No" 속성에 따라 내림차순 정렬될 수 있다.Referring to FIG. 4, the processor 113 may rearrange the raw data as shown in FIG. 4A and store the same in the database 122 of the server 120 as shown in FIG. 4B. At this time, the raw data can be sorted in descending order according to the attribute "No"

프로세서(113)는 먼저 키를 이용하여, 원시 데이터 중 서버(120)에 저장될 데이터를 선택할 수 있다. 그리고 프로세서(113)는 선택된 데이터를 서버(120)로 전송하여, 서버(120)의 데이터베이스(122)에 저장할 수 있다.The processor 113 may first use the key to select data to be stored in the server 120 among the raw data. The processor 113 may then transmit the selected data to the server 120 and store the selected data in the database 122 of the server 120. [

예를 들어, 프로세서(113)는 "M[키][y] = h"를 만족하는 y값에 기초하여, 서버(120)에 저장할 데이터를 선택할 수 있다. 이때, M은 데이터 암호화 행렬을 의미하며, y는 서버(120)에 저장할 데이터의 현재 인덱스가 될 수 있다. 또한, h는 서버(120)에 저장될 데이터를 선택하는 순서가 될 수 있다.For example, the processor 113 may select data to be stored in the server 120 based on the y value satisfying " M [key] [ y ] = h ". Here, M represents a data encryption matrix, and y may be a current index of data to be stored in the server 120. In addition, h may be a procedure for selecting data to be stored in the server 120.

그리고 프로세서(113)는 원시 데이터 중 1번째로 서버(120)에 저장할 데이터를 선택할 수 있다. 이때, 프로세서(113)는 1번째 데이터를 선택하기 위하여, 변수 h를 0으로 설정할 수 있다. 그리고 프로세서(113)는 데이터 암호화 행렬에서 " M[6][y] = 0"을 만족하는 y값인 "6"을 찾을 수 있다. 그러므로 프로세서(113)는 데이터의 인덱스가 "6"인 7번째 데이터 "<'Green', 901212, 'M', 'AAA'>"을 선택할 수 있다. 프로세서(113)는 선택한 데이터를 통신 모듈(111)을 통하여 서버(120)로 전송할 수 있다.The processor 113 may select data to be stored in the server 120 as the first of the raw data. At this time, the processor 113 may set the variable h to 0 in order to select the first data. Then, the processor 113 can find " y " value "6" satisfying " M [6] [ y ] = 0" in the data encryption matrix. Therefore, the processor 113 can select the seventh data "Green &quot;, 901212, &quot; M &quot;, and &quot;AAA" The processor 113 may transmit the selected data to the server 120 via the communication module 111. [

서버(120)는 단말(110)로부터 수신한 데이터를 순서대로 데이터베이스(122)에 저장할 수 있다. 그러므로 단말(110)이 전송한 7번째 데이터는 데이터베이스(122)에 1번째 데이터로 저장되게 된다.The server 120 may store the data received from the terminal 110 in the database 122 in order. Therefore, the seventh data transmitted from the terminal 110 is stored in the database 122 as the first data.

이때, 프로세서(113)가 서버(120)로 전송하는 데이터는 암호화된 것일 수 있다. 즉, 프로세서(113)는 서버(120)로 "<'Green', 901212, 'M', 'AAA'>" 데이터를 전송하기 전에 암호화를 수행할 수 있다. 프로세서(113)는 "<'Green', 901212, 'M', 'AAA'>"에 대응하여 암호화된 데이터를 서버(120)로 전송할 수 있다. 그리고 서버(120)는 암호화된 데이터를 서버(120)의 데이터베이스(122)에 저장할 수 있다.At this time, the data transmitted from the processor 113 to the server 120 may be encrypted. That is, the processor 113 may perform encryption before transmitting data to the server 120, such as &quot; Green &quot;, 901212, 'M', and 'AAA' Processor 113 may transmit the encrypted data to server 120 in response to &lt; &lt; Green &gt;, 901212, 'M', 'AAA' The server 120 may then store the encrypted data in the database 122 of the server 120. [

또한, 프로세서(113)는 원시 데이터 중 2번째 데이터를 선택할 수 있다. 이를 위하여, 프로세서(113)는 h를 1 증가시켜, 1로 설정할 수 있다. 프로세서(113)는 데이터 암호화 행렬에서 "M[6][y] = 1"을 만족하는 y값인 "8"을 찾을 수 있다. 그러므로 프로세서(113)는 데이터 인덱스가 "8"인 9번째 데이터 "<'Isabella', 910815, 'F', 'CCC'>"를 선택하여, 통신 모듈(111)을 통하여 서버(120)로 전송할 수 있다.Further, the processor 113 can select the second data among the raw data. For this purpose, the processor 113 may set h to 1 by incrementing h by one. The processor 113 can find the y value "8" that satisfies " M [6] [ y ] = 1" in the data encryption matrix. Therefore, the processor 113 selects the ninth data "Isabella ', 910815,' F ', and' CCC '>" .

단말(110)로부터 데이터를 수신한 서버(120)는 서버(120)의 데이터베이스(122)에 수신한 데이터를 저장할 수 있다. 이때, 서버(120)는 단말(110)로부터 수신한 순서대로 데이터를 저장할 수 있다. 그러므로 서버(120)의 데이터베이스(122)에는 "<'Green', 901212, 'M', 'AAA'>" 및 "<'Isabella', 910815, 'F', 'CCC'>"순으로 데이터가 저장되게 된다.The server 120 receiving the data from the terminal 110 may store the received data in the database 122 of the server 120. [ At this time, the server 120 may store the data in the order received from the terminal 110. Therefore, in the database 122 of the server 120, data is written in the order of "<Green ', 901212,' M ',' AAA '>" and "<Isabella', 910815, And stored.

이와 같이, 프로세서(113)는 h값을 1씩 증가시키면서, 원시 데이터 중 서버(120)에 저장될 데이터를 선택할 수 있다. 그리고 프로세서(113)는 통신 모듈(111)을 통하여 선택된 데이터를 서버(120)로 전송할 수 있다.In this way, the processor 113 can select data to be stored in the server 120 among the raw data while increasing the value of h by 1. And the processor 113 may transmit the selected data to the server 120 through the communication module 111. [

다시 도 4를 참조하면 도 4의 (b)와 같이, 서버(120)의 데이터베이스(122)는 재정렬된 데이터가 저장될 수 있다. 즉, 서버(120)의 데이터베이스(122)에 저장되는 데이터는 단말(110)이 전송하는 순서에 따라 저장될 수 있다. 그러므로 도 4의 (a) 및 (b)와 같이, 단말(110)의 원시 데이터와 서버(120)의 데이터베이스(122)에 저장되는 데이터는 순서가 상이할 수 있다.Referring again to FIG. 4, the reordering data may be stored in the database 122 of the server 120, as shown in FIG. 4 (b). That is, the data stored in the database 122 of the server 120 may be stored according to the order transmitted by the terminal 110. Therefore, as shown in FIGS. 4A and 4B, the order of the raw data of the terminal 110 and the data stored in the database 122 of the server 120 may be different.

한편, 프로세서(113)는 사용자의 검색 요청에 따라, 서버(120)로부터 사용자의 검색 요청에 대응하는 데이터를 수신할 수 있다. 이때, 사용자의 검색 요청은 데이터베이스(122)에 대한 쿼리(query) 일 수 있다.Meanwhile, the processor 113 may receive data corresponding to a user's search request from the server 120 according to a search request of the user. At this time, the user's search request may be a query to the database 122.

앞에서 설명한 바와 같이, 프로세서(113)는 서버(120)에 원시 데이터를 저장할 때, 저장된 원시 데이터에 대한 재정렬 정보를 저장하지 않으므로, 사용자의 검색 요청에 대응하는 데이터가 저장된 위치를 알 수 없다. 또한, 서버(120)가 저장하는 데이터는 암호화된 데이터이므로 서버(120)는 사용자의 검색 요청에 대응하는 데이터가 정확히 무엇인지 확인할 수 없다.As described above, when the processor 113 stores the raw data in the server 120, the processor 113 does not store the reordering information on the stored raw data, so that it is not possible to know the location where the data corresponding to the user's search request is stored. Also, since the data stored in the server 120 is encrypted data, the server 120 can not confirm exactly what data corresponds to the user's search request.

그러므로 프로세서(113)는 원시 데이터를 저장할 때, 선택된 순열 정보 및 키에 기초하여, 검색 범위를 설정할 수 있다. 그리고 프로세서(113)는 설정된 범위를 줄이는 방향으로 서버(120)의 데이터베이스(122)에 저장된 데이터를 반복적으로 확인하여, 사용자의 검색 요청에 대응하는 데이터를 검색할 수 있다. Therefore, when the processor 113 stores the raw data, the search range can be set based on the selected permutation information and the key. The processor 113 may repeatedly check the data stored in the database 122 of the server 120 in a direction of reducing the set range to retrieve data corresponding to the user's search request.

이때, 원시 데이터는 특정 속성에 대하여 정렬된 데이터이다. 그러므로 이러한 특징에 기초하여, 프로세서(113)는 이진 검색(binary search)을 수행할 수 있다. At this time, the raw data is data arranged for a specific attribute. Therefore, based on this feature, the processor 113 may perform a binary search.

이진 검색 기법은 정렬된 데이터에서 특정 값을 위치의 찾는 검색 기법이다. 구체적으로 이진 검색 기법은 전체 데이터를 대상으로 범위 설정하고, 설정된 범위 내에서 중앙값을 선택한다. 그리고 이진 검색 기법은 선택된 중앙값에 대응하는 데이터가 검색 대상 데이터보다 큰지 작은지를 비교하는 방식으로 검색을 수행한다. A binary search technique is a search technique that locates a specific value in an ordered set of data. Specifically, the binary search technique sets a range for all data and selects a median within a set range. The binary search technique performs a search by comparing whether data corresponding to the selected median is larger or smaller than search target data.

만약, 중앙값에 대응하는 데이터가 검색 대상 데이터보다 큰 경우, 이진 검색 기법은 중앙값을 범위의 새로운 최대값으로 설정하고, 다시 중앙값을 선택하여, 비교를 반복한다. 또한, 중앙값에 대응하는 데이터가 검색 대상 데이터보다 작은 경우, 이진 검색 기법은 중앙값을 범위의 새로운 최소값으로 설정하고, 다시 중앙값을 선택하여 비교를 반복한다. 이러한 방법을 통하여, 이진 검색 기법은 검색 범위를 줄여가며 원하는 정보를 검색할 수 있다.If the data corresponding to the median value is larger than the data to be searched, the binary search technique sets the median value to the new maximum value of the range, selects the median value again, and repeats the comparison. If the data corresponding to the median value is smaller than the data to be searched, the binary search technique sets the median value to the new minimum value of the range, selects the median value again, and repeats the comparison. Through this method, the binary search technique can search the desired information by reducing the search range.

본 발명의 일 실시예에 따른 프로세서(113)는 이진 검색 방법에 따라, 사용자 요청에 대응하는 검색 대상 데이터를 검색할 수 있다. 이를 위하여, 프로세서(113)는 먼저, 순열정보, 범위 및 키에 기초하여, 검색할 서버(120)에 저장된 데이터의 인덱스를 산출한다.The processor 113 according to an embodiment of the present invention may search for search target data corresponding to a user request according to a binary search method. To this end, the processor 113 first calculates the index of the data stored in the server 120 to be searched based on the permutation information, the range, and the key.

이때, 순열정보는 앞에서 설명한 바와 같이, 원시 데이터의 저장 시 단말(110)이 선택하여 서버(120)에 저장된 것일 수 있다. 또한, 범위는 서버(120)에 단말(110)이 원시 데이터 저장 시 선택한 순열 정보에 기초하여 산출된 것일 수 있다. 키는 서버(120)의 데이터베이스(122)에 원시 데이터를 저장할 때 사용한 후 단말(110)의 메모리(112)에 저장된 것일 수 있다.At this time, as described above, the permutation information may be stored in the server 120 when the terminal 110 selects the raw data. The range may be calculated based on the permutation information selected by the terminal 110 when storing the raw data in the server 120. The key may be stored in the memory 112 of the terminal 110 after use in storing the raw data in the database 122 of the server 120.

프로세서(113)는 통신 모듈(111)을 통하여, 산출된 데이터의 인덱스를 서버(120)로 전송한다. 그리고 프로세서(113)는 서버(120)로부터 데이터의 인덱스에 대응하는 데이터를 수신한다. 프로세서(113)는 서버(120)로부터 수신된 데이터와 검색 대상 데이터를 비교할 수 있다. 수신된 데이터와 검색 대상 데이터가 상이한 경우, 프로세서(113)는 산출된 데이터의 인덱스에 기초하여, 새로운 범위를 산출할 수 있다.The processor 113 transmits the index of the calculated data to the server 120 via the communication module 111. [ The processor 113 receives data corresponding to the index of the data from the server 120. The processor 113 may compare the data received from the server 120 with the data to be searched. When the received data and the data to be searched are different, the processor 113 can calculate a new range based on the index of the calculated data.

만약, 수신된 데이터가 검색 대상 데이터보다 큰 경우, 프로세서(113)는 데이터의 인덱스에 기초하여 새로운 최대값을 설정할 수 있다. 그리고 프로세서(113)는 이전 범위의 최소값 및 새로운 최대값을 이용하여 새로운 범위를 산출할 수 있다.If the received data is larger than the search target data, the processor 113 can set a new maximum value based on the index of the data. The processor 113 may then calculate the new range using the minimum value of the previous range and the new maximum value.

또한, 수신된 데이터가 검색 대상 데이터보다 작을 경우, 프로세서(113)는 데이터의 인덱스에 기초하여 새로운 최소값을 설정할 수 있다. 그리고 프로세서(113)는 새로운 최소값 및 이전 범위의 최대값에 기초하여 새로운 범위를 산출할 수 있다.Further, when the received data is smaller than the search target data, the processor 113 can set a new minimum value based on the index of the data. The processor 113 may then calculate a new range based on the new minimum value and the maximum value of the previous range.

프로세서(113)는 산출된 새로운 범위 및 키에 기초하여, 데이터의 인덱스를 재산출할 수 있다. 그리고 프로세서(113)는 재산출된 데이터의 인덱스를 서버(120)에 전송하고, 데이터의 인덱스에 대응하는 데이터를 다시 수신할 수 있다.The processor 113 may re-index the data based on the calculated new range and key. The processor 113 may transmit the index of the re-calculated data to the server 120 and receive the data corresponding to the index of the data again.

프로세서(113)는 수신된 데이터가 검색 대상 데이터와 동일할 때까지 범위를 재설정하고 검색하는 과정을 반복할 수 있다. 만약, 수신된 데이터와 검색 대상 데이터가 동일한 경우, 프로세서(113)는 사용자에게 수신된 데이터를 제공할 수 있다.The processor 113 may repeat the process of resetting and searching the range until the received data is the same as the data to be searched. If the received data and the data to be searched are the same, the processor 113 can provide the received data to the user.

도 5는 본 발명의 일 실시예에 따른 데이터 검색의 예시도이다.5 is an exemplary diagram of data retrieval according to an embodiment of the present invention.

예를 들어, 도 5를 참조하면, 서버(120)는 원시 데이터 저장 시 단말(110)의 프로세서(113)가 선택한 순열 정보를 저장할 수 있다. 또한, 서버(120)는 데이터베이스(122)에 단말(110)의 프로세서(113)로부터 수신한 데이터를 저장할 수 있다.For example, referring to FIG. 5, the server 120 may store the permutation information selected by the processor 113 of the terminal 110 when storing raw data. In addition, the server 120 may store the data received from the processor 113 of the terminal 110 in the database 122.

프로세서(113)는 사용자로부터 "No 속성"의 값이 "920311"인 데이터에 대한 검색 요청을 수신할 수 있다. 즉, 검색 대상 데이터는 "No 속성"의 값이 "920311"인 데이터가 될 수 있다. The processor 113 may receive a search request for data whose "No attribute" value is "920311" from the user. That is, the search target data may be data whose value of "No attribute" is "920311".

먼저, 프로세서(113)는 검색 대상 데이터에 대한 검색 범위를 설정할 수 있다. 앞에서 설명한 바와 같이, 데이터의 크기는 유계 행렬 및 균형 행렬의 차원의 곱보다 작거나 같을 수 있다. 그러므로 프로세서(113)는 기저장된 순열 정보에 기초하여, 데이터의 크기를 예측할 수 있다.First, the processor 113 can set a search range for data to be searched. As previously described, the size of the data may be less than or equal to the product of the dimensions of the inference matrix and the balance matrix. Therefore, the processor 113 can predict the size of the data based on the pre-stored permutation information.

순열 정보에 저장된 유계 행렬이 "4 x 4 행렬"(4차원)이고, 균형 행렬이 "3 x 3"(3차원)이므로 프로세서(113)는 데이터의 크기가 두 행렬의 차원의 곱인 12보다 작을 것으로 예측할 수 있다. 그러므로 프로세서(113)는 데이터베이스(122)에 저장된 데이터에 대한 검색 범위를 인덱스 "0"이상 인덱스 "11" 이하로 설정할 수 있다.Since the relational matrix stored in the permutation information is a " 4 x 4 matrix "(4-dimensional) and the balance matrix is 3 x 3 (3-dimensional), the processor 113 determines that the size of the data is smaller than 12, . Therefore, the processor 113 can set the search range for the data stored in the database 122 to the index "0" to the index "11" or less.

프로세서(113)는 설정된 범위의 중앙값을 선택하여, 검색을 위하여 사용될 데이터 암호화 행렬의 열을 선택할 수 있다. 이때, 프로세서(113)는 [수학식 2]에 기초하여, 중앙값을 선택할 수 있다. [수학식 2]에서 low는 범위의 최소값, high는 범위의 최대값이다. 또한, y는 검색에 사용될 열이며, floor() 함수는 소수점 이하를 버리는 함수이다. The processor 113 may select a median of the set range and select a column of the data encryption matrix to be used for the search. At this time, the processor 113 can select the median value based on [Equation 2]. In Equation (2), low is the minimum value of the range, and high is the maximum value of the range. Also, y is the column to be used in the search, and the floor () function is a function that discards decimal places.

Figure 112016026645958-pat00008
Figure 112016026645958-pat00008

[수학식 2]에서 현재 설정된 범위를 통하여, low = 0, high = 11이므로, y는 5가 된다. 즉, 프로세서(113)는 검색에 사용될 데이터 암호화 행렬의 열 인덱스로 "5"을 산출할 수 있다. 그리고 데이터 저장 시 사용한 키가 "6"이므로 프로세서(113)는 순열 정보를 통하여, 산출된 데이터 암호화 행렬 "M(6, 5)"의 값을 서버(120)로 전송할 데이터의 인덱스로 사용할 수 있다. 즉, 데이터 암호화 행렬의 7행 6열의 값이 10이므로, 프로세서(113)는 데이터의 인덱스로 "10"을 설정할 수 있다. 그리고 프로세서(113)는 서버(120)로 "10"을 전달할 수 있다. Since low = 0 and high = 11 through the currently set range in Equation (2), y becomes 5. That is, the processor 113 may calculate "5" as the column index of the data encryption matrix to be used for the search. Since the key used for data storage is "6 &quot;, the processor 113 can use the value of the calculated data encryption matrix" M (6, 5) "through the permutation information as an index of data to be transmitted to the server 120 . That is, since the value of the 7th row and 6th column of the data encryption matrix is 10, the processor 113 can set "10" as an index of the data. And the processor 113 may deliver "10"

서버(120)는 단말(110)로부터 "10"을 수신하면, 데이터베이스(122)에 저장된 데이터 중 데이터의 인덱스가 "10"인 11번째 데이터를 검색할 수 있다. 그리고 서버(120)는 11번째 데이터인 "<'Frank', 901018, 'M', 'GGG'>"를 단말(110)로 전달할 수 있다. When the server 120 receives "10" from the terminal 110, the server 120 can retrieve the 11th data of which the index of the data is "10" among the data stored in the database 122. The server 120 may then transmit the 11th data "<'Frank', 901018, 'M', 'GGG'>" to the terminal 110.

단말(110)의 프로세서(113)는 통신 모듈(111)을 통하여, 서버(120)로부터 "<'Frank', 901018, 'M', 'GGG'>"를 수신할 수 있다. 그리고 검색 대상 데이터과 서버(120)로부터 수신한 데이터를 비교할 수 있다. 검색 대상 데이터의 "No 속성" 값 "920311"보다 수신한 데이터의 "No 속성" 값 "901018"은 작다. 그러므로 프로세서(113)는 검색에 사용된 데이터 암호화 행렬의 열 인덱스 "5"보다 1 큰 값인 "6"을 새로운 low로 다시 설정할 수 있다. 그러므로 새로운 범위에서 low는 6이며, high는 11이 될 수 있다. The processor 113 of the terminal 110 can receive "<'Frank', 901018, 'M', 'GGG'>'from the server 120 via the communication module 111. The search target data and the data received from the server 120 can be compared. The "No attribute" value "901018" of the data received from the "No attribute" value "920311" of the search object data is small. Therefore, the processor 113 can reset the value "6 &quot;, which is one greater than the column index" 5 "of the data encryption matrix used for the search, to the new low . So in the new range low is 6 and high can be 11.

[수학식 1]에 기초하여, 프로세서(113)는 새로운 범위에 대한 중앙값인 "8"을 선택할 수 있다. 즉, 프로세서(113)는 데이터 암호화 행렬 "M(6, 8)"의 값인 "1"을 데이터의 인덱스로 선택할 수 있다. 프로세서(113)는 선택된 검색에 사용될 데이터의 인덱스 "1"을 서버(120)로 전송하고 서버(120)로부터 인덱스에 대응하는 데이터베이스(122)에 2번째 데이터인 "<'Isabella', 910815, 'F', 'CCC'>"를 수신할 수 있다.Based on Equation (1), the processor 113 can select a median value of "8" for the new range. That is, the processor 113 can select "1", which is the value of the data encryption matrix " M (6, 8)", as the index of the data. The processor 113 transmits the index "1" of the data to be used for the selected search to the server 120 and the second data "<Isabella ', 910815, F ', and' CCC '>".

프로세서(113)는 수신한 데이터에 포함된 "No 속성"의 값 "910815"와 검색 대상 데이터의 "No 속성" 값 "920311"을 비교할 수 있다. 서버(120)로부터 수신한 값이 작으므로, 프로세서(113)는 검색에 사용된 열인 8보다 1 큰 값인 9를 새로운 low로 다시 설정할 수 있다. 그러므로 새로운 low는 9이며, high는 11이 될 수 있다. The processor 113 can compare the value "910815" of the "No attribute" included in the received data with the value "920311" of the "No attribute" of the data to be searched. Since the value received from the server 120 is small, the processor 113 can reset 9, which is a value one higher than 8, which is the column used for the search, to a new low . So the new low is 9, and the high can be 11.

위에서 설명한 방법에 따라, 프로세서(113)는 새로운 범위에 따라, 데이터 암호화 행렬 M의 6행 10열의 값인 8을 검색에 사용될 인덱스로 사용할 인덱스로 선택할 수 있다. 프로세서(113)는 서버(120)로 8을 전달하고, 서버(120)로부터 인덱스 8에 대응하는 데이터인 <'Kelly', 930208, 'F', 'AAA'>를 수신할 수 있다. According to the above-described method, the processor 113 can select 8, which is the value of the 6th row and 10th column of the data encryption matrix M, as an index to be used as an index to be used for retrieval, according to the new range. Processor 113 may forward 8 to server 120 and receive data corresponding to index 8 from server 120, e.g., <Kelly ', 930208,' F ',' AAA '>.

프로세서(113)는 수신한 데이터에 포함된 No 속성 값 "930208"과 사용자의 검색 요청인 No 속성 값 "920311"을 비교할 수 있다. 서버(120)로부터 수신한 값이 크므로, 프로세서(113)는 검색에 사용된 데이터 암호화 행렬의 열 인덱스인 "10"보다 1 작은 값인 "9"를 범위의 새로운 high로 다시 설정할 수 있다. 그러므로 범위의 새로운 low high는 모두 9가 될 수 있다. The processor 113 can compare the No attribute value "930208" included in the received data with the No attribute value "920311" Since the value received from the server 120 is large, the processor 113 can reset "9", which is one less than "10", which is the column index of the data encryption matrix used for the search, to the new high of the range. Thus, the new low and high of the range can all be nine.

다시, 프로세서(113)는 새로운 범위에 따라, 데이터 암호화 행렬 M(6, 9)의 값인 "6"을 검색에 사용될 데이터의 인덱스로 선택할 수 있다. 프로세서(113)는 서버(120)로 데이터 인덱스 "6"을 전달하고, 서버(120)로부터 데이터 인덱스 "6"에 대응하는 데이터인 "<'John', 920311, 'M', 'AAA'>"를 수신할 수 있다. Again, the processor 113 may select "6", the value of the data encryption matrix M (6, 9), as the index of the data to be used in the search, according to the new range. The processor 113 transfers the data index "6" to the server 120 and receives data "<'John', 920311, 'M', 'AAA'"

프로세서(113)는 수신한 데이터에 포함된 "No 속성" 값 "920311"과 검색 대상 데이터의 "No 속성" 값 "920311"을 비교할 수 있다. 서버(120)로부터 수신한 "No 속성" 값과 검색 대상 데이터의 "No 속성" 값이 같으므로, 프로세서(113)는 검색을 완료하고 검색 결과인 "<'John', 920311, 'M', 'AAA'>"를 사용자에게 제공할 수 있다. The processor 113 can compare the "No attribute" value "920311" included in the received data with the "No attribute" value "920311" of the search object data. Since the value of the "No attribute" received from the server 120 is the same as the value of the "No attribute" of the data to be searched, the processor 113 completes the search and outputs the search result "<'John', 920311, 'AAA'> "to the user.

한편, 본 발명의 일 실시예에 따른 단말(110)은 검색을 수행할 때마다 데이터 암호화 행렬을 생성하거나, 서버로부터 데이터 암호화 행렬을 수신하여 사용할 수 있다. 구체적으로 단말(110)은 검색을 수행할 때, 데이터 암호화 행렬에 대응하는 행과 열 인덱스를 서버(120)로 전달할 수 있다. 그리고 단말(110)은 행과 열의 인덱스에 대응하는 데이터 암호화 행렬의 값을 서버(120)로부터 수신하여 검색에 사용될 데이터의 인덱스를 설정할 수 있다. Meanwhile, the terminal 110 according to an embodiment of the present invention may generate a data encryption matrix each time a search is performed, or may receive and use a data encryption matrix from a server. Specifically, when the terminal 110 performs the search, it may transmit the row and column indexes corresponding to the data encryption matrix to the server 120. The terminal 110 can receive the value of the data encryption matrix corresponding to the row and column index from the server 120 and set the index of the data to be used for the search.

그러므로 서버(120)는 단말(110)이 검색을 수행할 때 또는 단말(110)의 요청에 따라, 미리 단말(110)이 선택한 순열 정보에 기초하여, 데이터 암호화 행렬을 생성할 수 있다. 그리고 서버(120)는 단말(110)로부터 행과 열을 수신하면 생성된 데이터 암호화 행렬로부터 인덱스를 산출하여, 단말(110)로 전송할 수 있다.Therefore, the server 120 can generate a data encryption matrix based on the permutation information selected by the terminal 110 in advance when the terminal 110 performs a search or at the request of the terminal 110. [ When the server 120 receives the row and the column from the terminal 110, the server 120 may calculate an index from the generated data encryption matrix and transmit the index to the terminal 110.

또한, 본 발명의 다른 실시예에 따른 단말(110)은 [수학식 3] 내지 [수학식 5]를 통하여, 검색을 수행할 데이터의 인덱스를 산출할 수 있다. Also, the terminal 110 according to another embodiment of the present invention can calculate the index of the data to be searched through [Equation 3] to [Equation 5].

구체적으로 단말(110)은 [수학식 3]을 통하여, 데이터 암호화 행렬의 행(R)에 따른 유계 행렬의 행(q x ) 및 균형 행렬의 행(r x )을 산출할 수 있다. 예를 들어, 행의 인덱스가 "6"이고, 균형 행렬의 차원의 크기가 "3"이므로, [수학식 3]은 "6 = q x X 3+ r x "가 될 수 있다. 이때, "r x "은 균형 행렬의 차원의 수보다 작아야 하므로, "q x "는 "2"가 되고, "r x "는 "0"이 될 수 있다.Specifically, the terminal 110 can calculate the row ( q x ) of the residual matrix and the row ( r x ) of the balance matrix according to the row ( R ) of the data encryption matrix through the formula (3). For example, because the index of the line is "6", the dimensional size of the balance of the matrix, "3", [Equation 3] is "6 = x q X 3+ r x "may be. At this point," x r ", so less than the number of dimensions of the balanced matrix," x q "is""andthe," r 2 x "is" can be zero. "

Figure 112016026645958-pat00009
Figure 112016026645958-pat00009

[수학식 4]를 통하여, 데이터 암호화 행렬의 열(C)에 따른 유계 행렬의 열(q y ) 및 균형 행렬의 열(r y )을 산출할 수 있다. 예를 들어, 열의 인덱스가 "5"이고, 균형 행렬의 차원의 크기가 "3"이므로, [수학식 4]는 "5 = q y X 3+ r y "가 될 수 있다. 이때, "r y "은 균형 행렬의 차원의 수보다 작아야 하므로, "q y "는 "1"이 되고, "r y "는 "2"가 될 수 있다.( Q y ) and a column ( r y ) of the balance matrix according to the column ( C ) of the data encryption matrix can be calculated through the equation (4). For example, if the index of the column is "5", since the dimensional size of the balance of the matrix, "3", [Equation 4] "5 = X q y 3+ r y "may be. At this time," r y ", so less than the number of dimensions of the balanced matrix," q y "is""tobe," y 1 r "is" may be a 2 ".

Figure 112016026645958-pat00010
Figure 112016026645958-pat00010

즉, 단말(110)의 프로세서(113)는 [수학식 3] 및 [수학식 4]를 통하여, 데이터 암호화 행렬의 행(R) 및 열(C)에 따른 유계 행렬에서의 행(q x ) 및 열(q y )과 균형 행렬에서의 행(r x ) 및 열(r y )을 산출할 수 있다. 그리고 [수학식 5] 및 각각의 행렬의 값에 기초하여, 프로세서(113)는 데이터의 인덱스(i)를 산출할 수 있다. In other words, the processor 113 of the terminal 110 obtains the row ( q x ) in the relational matrix according to the row ( R ) and column (C) of the data encryption matrix through the equations (3) And columns ( q y ) and rows (r x ) and columns ( r y ) in the balance matrix. Then, based on the formula (5) and the value of each matrix, the processor 113 can calculate the index ( i ) of the data.

Figure 112016026645958-pat00011
Figure 112016026645958-pat00011

한편, 본 발명의 일 실시예에 따른 단말(110)의 프로세서(113)는 원시 데이터에 데이터가 추가되는 경우를 대비하여, 초기 원시 데이터 저장 시 충분한 데이터 크기를 고려하여, 순열 정보를 선택할 수 있다. 그리고 데이터가 추가되면, 프로세서(113)는 기 선택된 순열 정보에 기초하여, 추가 데이터에 대한 재정렬을 수행하여, 서버(120)로 전송할 수 있다. Meanwhile, the processor 113 of the terminal 110 according to an embodiment of the present invention may select the permutation information in consideration of a sufficient data size in storing the initial primitive data, in case the data is added to the primitive data . When the data is added, the processor 113 can perform reordering on the additional data based on the previously selected permutation information and transmit it to the server 120. [

서버(120)는 추가 데이터가 수신되면, 데이터베이스(122)의 기존 데이터가 저장된 데이터 공간에 수신된 추가 데이터를 저장할 수 있다. The server 120 may store additional data received in the data space in which the existing data of the database 122 is stored, when additional data is received.

또한, 본 발명의 다른 실시예에 따른 프로세서(113)는 원시 데이터에 데이터가 추가되면, 서버(120)로 전송하여, 데이터베이스(122)에 기존 저장된 데이터에 링크드 리스트(linked-list) 형태로 추가 데이터를 저장할 수 있다. In addition, the processor 113 according to another embodiment of the present invention transmits data to the server 120 when data is added to the raw data, and adds the data to the existing data stored in the database 122 in a linked-list form Data can be stored.

구체적으로 단말(110)의 프로세서(113)는 추가 데이터가 발생하면, 순열 정보를 선택하고, 선택된 순열 정보에 기초하여, 추가 데이터를 재정렬할 수 있다. 그리고 재정렬된 추가 데이터를 서버(120)로 전송할 수 있다.Specifically, the processor 113 of the terminal 110 may select the permutation information when the additional data is generated, and reorder the additional data based on the selected permutation information. And may send the reordered additional data to the server 120.

서버(120)는 수신한 추가 데이터를 데이터베이스(122)에 저장할 수 있다. 이때, 서버(120)는 수신한 추가 데이터를 기존에 저장된 데이터에 링크드 리스트 형태로 연결할 수 있다. 그러므로 서버(120)에 저장되는 추가 데이터는 기존 데이터와 연결될 수 있다. The server 120 may store the received additional data in the database 122. At this time, the server 120 may connect the received additional data to the existing stored data in the form of a linked list. Therefore, the additional data stored in the server 120 can be linked to existing data.

그리고 본 발명의 또 다른 실시예에 따른 프로세서(113)는 원시 데이터에 데이터가 추가되면, 기존에 저장된 데이터와 추가 데이터를 병합하여 재정렬할 수 있다. 이를 위하여, 프로세서(113)는 병합된 데이터를 위한 순열 정보를 다시 선택할 수 있다. 그리고 프로세서(113)는 다시 선택된 순열 정보에 따라, 재정렬된 병합 데이터를 서버(120)로 전송하여 저장되도록 할 수 있다. In addition, the processor 113 according to another embodiment of the present invention can rearrange the existing data and the additional data by merging the data when the data is added to the original data. To this end, the processor 113 may again select permutation information for the merged data. Then, the processor 113 may transmit the merged merge data to the server 120 according to the selected permutation information to be stored.

다음은 도 6을 참조하여, 본 발명의 일 실시예에 따른 데이터 검색 단말(110)의 검색 방법을 설명한다. Next, a search method of the data search terminal 110 according to an embodiment of the present invention will be described with reference to FIG.

도 6은 본 발명의 일 실시예에 따른 데이터 검색 단말(110)의 검색 방법의 순서도이다. 6 is a flowchart of a search method of the data search terminal 110 according to an embodiment of the present invention.

데이터 검색 단말(110)은 범위 및 키에 기초하여, 상기 서버(120)에 저장된 데이터 중 검색 대상 데이터에 대응하는 인덱스를 산출한다(S600). 이때, 범위는 서버(120)로부터 수신한 순열 정보에 기초하여 산출된 것이다. 또한, 키는 서버(120)에 저장된 데이터에 대응하여 설정된 것이다. The data search terminal 110 calculates an index corresponding to the search target data among the data stored in the server 120 based on the range and the key (S600). At this time, the range is calculated based on the permutation information received from the server 120. Also, the key is set corresponding to the data stored in the server 120.

또한, 데이터 검색 단말(110)은 산출된 인덱스를 상기 서버(120)로 전송한다(S610). In addition, the data search terminal 110 transmits the calculated index to the server 120 (S610).

서버(120)는 서버(120)의 데이터베이스(122)를 통하여, 데이터 검색 단말(110)로부터 산출된 인덱스에 대응하는 데이터를 검색할 수 있다. 서버(120)는 검색된 데이터를 데이터 검색 단말(110)로 전송할 수 있다.The server 120 can retrieve data corresponding to the index calculated from the data search terminal 110 through the database 122 of the server 120. [ The server 120 may transmit the retrieved data to the data retrieval terminal 110.

데이터 검색 단말(110)은 서버(120)로부터 산출된 인덱스에 대응하는 데이터를 수신한다(S620). The data search terminal 110 receives data corresponding to the index calculated from the server 120 (S620).

데이터 검색 단말(110)은 수신된 데이터와 검색 대상 데이터를 비교할 수 있다(S630).The data search terminal 110 may compare the received data with the search target data (S630).

그리고 데이터 검색 단말(110)은 서버(120)로부터 수신한 데이터가 검색 대상 데이터와 매칭되지 않은 경우, 데이터 검색 단말(110)은 범위를 재산출할 수 있다(S640). If the data received from the server 120 is not matched with the data to be searched, the data search terminal 110 can extract the searched range (S640).

그리고 재산출된 범위 및 키에 기초하여, 서버(120)로부터 수신한 데이터가 검색 대상 데이터와 매칭될 때, 인덱스를 산출하고(S600), 산출된 인덱스를 서버(120)로 전송하며(S610), 전송한 인덱스에 대응하는 데이터를 수신하고(S620), 수신된 데이터와 검색 대상 데이터를 비교하는(S630) 과정을 반복하여 수행할 수 있다.When the data received from the server 120 matches the search target data, the index is calculated (S600), and the calculated index is transmitted to the server 120 (S610) based on the re-calculated range and key, , The data corresponding to the transmitted index is received (S620), and the received data is compared with the search target data (S630).

한편, 데이터 검색 단말(110)은 인덱스를 산출하기 이전에 서버(120)의 데이터베이스(122)에 원시 데이터를 저장할 수 있다. Meanwhile, the data search terminal 110 may store the raw data in the database 122 of the server 120 before calculating the index.

구체적으로 데이터 검색 단말(110)은 서버(120)로부터 순열 정보를 수신할 수 있다. Specifically, the data search terminal 110 can receive the permutation information from the server 120. [

데이터 검색 단말(110)은 순열 정보에 기초하여, 키를 선택할 수 있다. 그리고 데이터 검색 단말(110)은 선택된 키 및 순열 정보에 기초하여, 원시 데이터를 재정렬할 수 있다.The data search terminal 110 can select a key based on the permutation information. Then, the data search terminal 110 can rearrange the raw data based on the selected key and permutation information.

데이터 검색 단말(110)은 재정렬된 원시 데이터를 서버(120)의 데이터베이스(122)에 저장되도록 서버(120)로 전송할 수 있다.The data retrieval terminal 110 may transmit the reordered raw data to the server 120 for storage in the database 122 of the server 120. [

본 발명의 일 실시예에 따른 데이터 검색 단말(110) 및 그의 검색 방법은 단말(110)에서 데이터를 재정렬하여, 서버(120)로 전송하여 서버(120)의 데이터베이스(122)에 저장할 수 있다. 그러므로 데이터 검색 단말(110) 및 그의 검색 방법은 서버(120)에 저장된 데이터의 안정성을 보장할 수 있다. 또한, 데이터 검색 단말(110) 및 그의 검색 방법은 이진 검색을 통하여, 서버(120)에 저장된 암호화된 데이터에 대한 효율적인 검색을 수행할 수 있다. 그러므로 데이터 검색 단말(110) 및 그의 검색 방법은 데이터 유출을 방지하고, 암호화된 데이터의 신속한 검색을 제공할 수 있다.The data search terminal 110 and the search method thereof according to an embodiment of the present invention can rearrange the data in the terminal 110 and transmit the data to the server 120 and store the data in the database 122 of the server 120. [ Therefore, the data search terminal 110 and its searching method can guarantee the stability of the data stored in the server 120. [ In addition, the data search terminal 110 and the search method thereof may perform an efficient search for the encrypted data stored in the server 120 through the binary search. Therefore, the data retrieval terminal 110 and its retrieval method can prevent data leakage and provide quick retrieval of the encrypted data.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능한 기록 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능한 기록 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. The computer-readable recording medium may also include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.While the methods and systems of the present invention have been described in connection with specific embodiments, some or all of those elements or operations may be implemented using a computer system having a general purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

100: 데이터 검색 시스템
110: 단말
111: 통신 모듈
112: 메모리
113: 프로세서
120: 서버
121: 순열 정보
122: 데이터베이스
100: Data retrieval system
110: terminal
111: Communication module
112: memory
113: Processor
120: Server
121: Permutation information
122: Database

Claims (14)

서버에 저장된 데이터를 검색하는 단말에 있어서,
통신 모듈,
데이터 검색 프로그램이 저장된 메모리 및
상기 프로그램을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 프로그램의 실행에 따라, 범위 및 키에 기초하여, 상기 서버에 저장된 데이터 중 검색 대상 데이터에 대응하는 인덱스를 산출하며, 상기 산출된 인덱스를 상기 서버로 전송하고, 상기 서버로부터 상기 산출된 인덱스에 대응하는 데이터를 수신하되,
상기 범위는 상기 서버로부터 수신한 순열 정보에 기초하여 산출된 것이며,
상기 키는 상기 서버에 저장된 데이터에 대응하여 설정된 것이고,
상기 프로세서는 상기 서버로부터 상기 순열 정보를 수신하고, 상기 순열 정보에 기초하여, 상기 키를 선택하며, 상기 선택된 키 및 상기 순열 정보에 기초하여, 원시 데이터를 재정렬하고, 상기 재정렬된 원시 데이터를 상기 서버의 데이터베이스에 저장되도록 상기 서버로 전송하는 것이고,
상기 순열 정보는 유계 행렬(bounded matrix) 및 하나 이상의 균형 행렬(balanced matrix)을 포함하는 것인, 데이터 검색 단말.
1. A terminal for searching data stored in a server,
Communication module,
The data retrieval program stores the memory and
And a processor for executing the program,
Wherein the processor calculates the index corresponding to the data to be searched among the data stored in the server based on the range and the key according to the execution of the program and transmits the calculated index to the server, Receiving the data corresponding to the index,
The range is calculated based on the permutation information received from the server,
Wherein the key is set corresponding to data stored in the server,
Wherein the processor receives the permutation information from the server, selects the key based on the permutation information, rearranges the raw data based on the selected key and the permutation information, To the server so as to be stored in a database of the server,
Wherein the permutation information comprises a bounded matrix and at least one balanced matrix.
제 1 항에 있어서,
상기 프로세서는 상기 서버로부터 수신한 데이터 및 상기 검색 대상 데이터를 비교하고, 상기 서버로부터 수신한 데이터 및 상기 검색 대상 데이터가 매칭되지 않을 경우, 상기 범위를 재산출하고,
상기 서버로부터 수신한 데이터 및 상기 검색 대상 데이터가 매칭될 때까지 상기 재산출된 범위 및 상기 키에 기초하여, 인덱스를 재산출하며, 상기 재산출된 인덱스를 상기 서버로 전송하고, 상기 서버로부터 상기 재산출된 인덱스에 대응하는 데이터를 재수신하는 것을 반복하는, 데이터 검색 단말.
The method according to claim 1,
The processor compares the data received from the server and the data to be searched, re-calculates the range if the data received from the server and the data to be searched do not match,
Calculating an index based on the re-calculated range and the key until the data received from the server and the data to be searched match; transmitting the re-calculated index to the server; And re-receiving the data corresponding to the re-calculated index.
제 1 항에 있어서,
상기 프로세서는 이진 검색 방법에 기초하여, 상기 검색 대상 데이터를 검색하는 것인, 데이터 검색 단말.
The method according to claim 1,
Wherein the processor searches the data to be searched based on the binary search method.
삭제delete 제 1 항에 있어서,
상기 프로세서는 상기 유계 행렬의 차원 및 상기 하나 이상의 균형 행렬의 차원의 곱을 산출하고, 상기 산출된 곱이 상기 데이터의 수보다 크도록 상기 유계 행렬 및 상기 하나 이상의 균형 행렬을 선택하며,
상기 산출된 곱보다 작거나 같은 값을 상기 키로 선택하는 것인, 데이터 검색 단말.
The method according to claim 1,
Wherein the processor is operative to calculate a product of a dimension of the relic matrix and a dimension of the at least one balance matrix and to select the relic matrix and the at least one balance matrix such that the calculated product is greater than the number of data,
And selects a value less than or equal to the calculated product with the key.
제 5 항에 있어서,
상기 프로세서는 상기 선택된 키 및 상기 수신된 순열 정보에 기초하여, 상기 서버에 저장할 데이터를 순차적으로 선택하여, 상기 서버로 전송하는 것인, 데이터 검색 단말.
6. The method of claim 5,
Wherein the processor sequentially selects data to be stored in the server based on the selected key and the received permutation information and transmits the selected data to the server.
제 1 항에 있어서,
상기 유계 행렬은 동일한 열에 동일한 값의 원소가 미리 정해진 값 미만으로 포함되는 행렬이며,
상기 균형 행렬은 동일한 열에 동일한 원소가 포함되지 않는 행렬인, 데이터 검색 단말.
The method according to claim 1,
Wherein the relational matrix is a matrix in which elements of the same value are included in the same column below a predetermined value,
Wherein the balance matrix is a matrix in which the same element is not included in the same column.
제 1 항에 있어서,
상기 원시 데이터는 상기 원시 데이터에 포함된 특정 속성에 대하여 정렬된 것인, 데이터 검색 단말.
The method according to claim 1,
Wherein the raw data is arranged for specific attributes included in the raw data.
제 1 항에 있어서,
상기 프로세서는 유계 행렬을 생성하고, 상기 생성된 유계 행렬 및 상기 서버로부터 수신한 하나 이상의 균형 행렬에 기초하여, 상기 원시 데이터를 재정렬하고, 상기 유계 행렬을 상기 메모리에 저장하는, 데이터 검색 단말.
The method according to claim 1,
Wherein the processor generates a relational matrix and reorders the raw data based on the generated relational matrix and one or more balance matrices received from the server and stores the relational matrix in the memory.
제 1 항에 있어서,
상기 프로세서는 데이터가 추가되면, 상기 선택된 키 및 상기 순열 정보에 기초하여, 추가 데이터를 재정렬하고, 상기 재정렬된 추가 데이터가 상기 서버에 저장되도록 상기 재정렬된 추가 데이터를 상기 서버로 전송하되,
상기 순열 정보는 상기 원시 데이터 및 상기 추가 데이터의 크기에 기초하여 선택된 것인, 데이터 검색 단말.
The method according to claim 1,
The processor reorders the additional data based on the selected key and the permutation information when data is added and transmits the reordered additional data to the server so that the reordered additional data is stored in the server,
Wherein the permutation information is selected based on the size of the raw data and the additional data.
단말에서의 서버에 저장된 데이터 검색 방법에 있어서,
서버로부터 수신한 순열 정보에 기초하여 상기 키를 선택하는 단계;
상기 키 및 상기 순열 정보에 기초하여 원시 데이터를 재정렬하는 단계;
상기 재정렬된 원시 데이터를 상기 서버의 데이터베이스에 저장되도록 상기 서버로 전송하는 단계;
범위 및 상기 키에 기초하여, 상기 서버에 저장된 데이터 중 검색 대상 데이터에 대응하는 인덱스를 산출하는 단계;
상기 산출된 인덱스를 상기 서버로 전송하는 단계; 및
상기 서버로부터 상기 산출된 인덱스에 대응하는 데이터를 수신하는 단계를 포함하되,
상기 범위는 상기 순열 정보에 기초하여 산출된 것이며,
상기 키는 상기 서버에 저장된 데이터에 대응하여 설정된 것이고,
상기 순열 정보는 유계 행렬(bounded matrix) 및 하나 이상의 균형 행렬(balanced matrix)을 포함하는 것인, 데이터 검색 방법.
A method for searching a data stored in a server in a terminal,
Selecting the key based on permutation information received from a server;
Rearranging the raw data based on the key and the permutation information;
Transmitting the reordered raw data to the server to be stored in a database of the server;
Calculating an index corresponding to the data to be searched among the data stored in the server based on the range and the key;
Transmitting the calculated index to the server; And
And receiving data corresponding to the calculated index from the server,
The range is calculated based on the permutation information,
Wherein the key is set corresponding to data stored in the server,
Wherein the permutation information comprises a bounded matrix and at least one balanced matrix.
제 11 항에 있어서,
상기 데이터를 수신하는 단계 이후에, 상기 수신된 데이터와 상기 검색 대상 데이터를 비교하는 단계; 및
상기 서버로부터 수신한 데이터가 상기 검색 대상 데이터와 매칭되지 않을 경우, 상기 범위를 재산출하는 단계를 포함하되,
상기 서버로부터 수신한 데이터가 상기 검색 대상 데이터와 매칭될 때까지 상기 재산출된 범위 및 상기 키에 기초하여, 상기 인덱스를 산출하는 단계, 상기 산출된 인덱스를 상기 서버로 전송하는 단계, 상기 데이터를 수신하는 단계 및 상기 비교하는 단계를 반복 수행하는, 데이터 검색 방법.
12. The method of claim 11,
Comparing the received data with the search target data after receiving the data; And
If the data received from the server does not match the search object data,
Calculating the index based on the re-calculated range and the key until the data received from the server matches the search object data, transmitting the calculated index to the server, Wherein the step of receiving and the step of comparing are repeated.
삭제delete 제 11 항 및 제 12 항 중 어느 한 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium recording a program for performing the method according to any one of claims 11 to 12 on a computer.
KR1020160033152A 2016-03-21 2016-03-21 Device and method for encrypted data retrival KR101795482B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160033152A KR101795482B1 (en) 2016-03-21 2016-03-21 Device and method for encrypted data retrival

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160033152A KR101795482B1 (en) 2016-03-21 2016-03-21 Device and method for encrypted data retrival

Publications (2)

Publication Number Publication Date
KR20170109272A KR20170109272A (en) 2017-09-29
KR101795482B1 true KR101795482B1 (en) 2017-11-10

Family

ID=60035616

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160033152A KR101795482B1 (en) 2016-03-21 2016-03-21 Device and method for encrypted data retrival

Country Status (1)

Country Link
KR (1) KR101795482B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107734054A (en) * 2017-11-06 2018-02-23 福州大学 Encryption data searching system in safe cloud storage
CN114338208B (en) * 2021-12-31 2023-11-28 章鱼博士智能技术(上海)有限公司 Message data encryption method and device and electronic equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071305A (en) * 2003-08-05 2005-03-17 Ntt Data Corp Information retrieval device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005071305A (en) * 2003-08-05 2005-03-17 Ntt Data Corp Information retrieval device

Also Published As

Publication number Publication date
KR20170109272A (en) 2017-09-29

Similar Documents

Publication Publication Date Title
US11403284B2 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
CN108197226A (en) MPTC account status tree and MPTC block chain method for quickly retrieving
CN110413611B (en) Data storage and query method and device
US9824068B2 (en) Methods and apparatus for sorting data
CN103283247B (en) Vector transformation for indexing, similarity search and classification
EP3035613A1 (en) Ccn routing using hardware-assisted hash tables
US9971770B2 (en) Inverted indexing
CN107590214B (en) Recommendation method and device for search keywords and electronic equipment
US11238046B2 (en) Information management device, information management method, and information management program
EP3739466A1 (en) Information management device, information management method, and information management program
CN102782643A (en) Index searching using a bloom filter
CN110769079A (en) Method and device for retrieving geographic position corresponding to IP
EP3289484A1 (en) Method and database computer system for performing a database query using a bitmap index
AU2014353667A1 (en) A method of generating a reference index data structure and method for finding a position of a data pattern in a reference data structure
KR101795482B1 (en) Device and method for encrypted data retrival
US9971793B2 (en) Database management system and database management method
KR101489876B1 (en) System and method for searching encryption document
JP7080803B2 (en) Information processing equipment, information processing methods, and information processing programs
JP7047110B2 (en) Content-independent file indexing methods and systems
KR102184275B1 (en) Electronic apparatus and communication system for optimally achieving private information retrieval with low upload cost based on probabilistic technique, and operating method of the same
CN108345699B (en) Method, device and storage medium for acquiring multimedia data
US11281674B2 (en) Grouping data in a heap using tags
CN108984780B (en) Method and device for managing disk data based on data structure supporting repeated key value tree
CN110647517B (en) Processing method and device for table data structure
KR101895848B1 (en) Document security 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