KR101703828B1 - Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same - Google Patents

Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same Download PDF

Info

Publication number
KR101703828B1
KR101703828B1 KR1020150143778A KR20150143778A KR101703828B1 KR 101703828 B1 KR101703828 B1 KR 101703828B1 KR 1020150143778 A KR1020150143778 A KR 1020150143778A KR 20150143778 A KR20150143778 A KR 20150143778A KR 101703828 B1 KR101703828 B1 KR 101703828B1
Authority
KR
South Korea
Prior art keywords
index tag
tree
search
node
index
Prior art date
Application number
KR1020150143778A
Other languages
Korean (ko)
Inventor
김형석
한광택
최석진
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020150143778A priority Critical patent/KR101703828B1/en
Application granted granted Critical
Publication of KR101703828B1 publication Critical patent/KR101703828B1/en

Links

Images

Classifications

    • G06F17/30327

Abstract

Disclosed are a method of creating an index tag for an encrypted data, a method of searching the encrypted data using the index tag, and a database apparatus for the same. The method of creating an index tag for an encrypted data according to an embodiment of the present invention comprises: a step of allocating an unique number to all nodes of a B+ tree from a root node of the B+ tree; a step that a leaf node of the B+ tree creates an index tag by sequentially adding a number after the unique number corresponding to the leaf node; and a step of allocating the index tag to a key value corresponding to an encrypted data. Therefore, a sorting function using the index tag is provided.

Description

암호화된 데이터에 대한 색인 태그 생성 방법, 색인 태그를 이용한 암호화된 데이터 검색 방법 및 이를 위한 데이터베이스 장치 {METHOD OF GENERATING INDEX TAG FOR ENCRYPTED DATA. METHOD OF SEARCHING ENCRYPTED DATA USING INDEX TAG AND DATABASE APPARATUS FOR THE SAME}TECHNICAL FIELD [0001] The present invention relates to an index tag generation method for encrypted data, an encrypted data retrieval method using an index tag, and a database apparatus for the same. METHOD OF SEARCHING ENCRYPTED DATA USING INDEX TAG AND DATABASE APPARATUS FOR THE SAME}

본 발명은 암호화된 데이터를 저장한 데이터베이스에 관한 것으로, 특히 색인 태그를 통해 암호화된 데이터(컬럼)에 대한 정렬 및 검색 기능을 제공하는 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a database storing encrypted data, and more particularly, to a technique for providing sorting and searching functions for encrypted data (columns) through an index tag.

데이터베이스 암호화는 데이터에 대한 정보보호를 목적으로 데이터를 암호문으로 변환하여 데이터베이스에 저장하는 기술이다. 그러나, 암호화된 데이터가 데이터베이스에 저장되기 때문에 암호화 수행 전 평문에 대한 검색과 정렬을 위해서 암호화된 컬럼을 복호화하는 작업이 필요하다. 암호화된 컬럼에 대한 정렬 정보가 없는 경우, 암호화된 데이터 검색시 해당 컬럼에 대한 전체 복호화가 불가피하며, 이러한 전체 복호화는 데이터베이스 시스템의 성능 저하를 야기한다.Database encryption is a technique for converting data into ciphertext and storing it in a database for the purpose of protecting information about the data. However, since the encrypted data is stored in the database, it is necessary to decrypt the encrypted column to search for and sort the plaintext before performing the encryption. If there is no sorting information for an encrypted column, full decryption of the corresponding column is inevitable when retrieving the encrypted data, and this total decryption causes degradation of the performance of the database system.

한국공개특허 2010-0112298호는 암호화할 데이터의 특성에 따라 데이터를 부분적으로 암호화하고, 부분 암호화에 따른 인덱스 검색을 수행하기 위한 시스템을 개시하고 있다. 그러나, 한국공개특허 2010-0112298호는 데이터를 전부 암호화하는 경우에 적용이 불가능한 기술이다.Korean Patent Publication No. 2010-0112298 discloses a system for partially encrypting data according to characteristics of data to be encrypted and performing an index search according to partial encryption. However, Korean Patent Publication No. 2010-0112298 is a technique that can not be applied when all data is encrypted.

한국공개특허 2006-0007925호는 암호화된 컬럼을 복호화한 뒤, 평문에 대한 순서를 나타내는 별도의 비트맵 인덱스를 생성하는 기술을 개시하고 있다. 그러나, 한국공개특허 2006-0007925호는 데이터에 대한 색인을 비트맵으로 표현하므로 데이터 크기에 비례하여 색인의 크기가 증가하는 문제가 있다.Korean Unexamined Patent Publication No. 2006-0007925 discloses a technique for decrypting an encrypted column and then generating a separate bitmap index indicating the order of plain text. However, Korean Unexamined Patent Publication No. 2006-0007925 has a problem that the size of the index increases in proportion to the data size because the index of the data is represented by the bitmap.

따라서, 보다 효율적으로 암호화된 컬럼을 정렬하고, 검색할 수 있는 새로운 암호화된 데이터에 대한 색인 기술의 필요성이 절실하게 대두된다.Thus, there is a need for indexing techniques for new encrypted data that can be sorted and retrieved more efficiently for encrypted columns.

본 발명의 목적은 B+ 트리 구조를 이용하여 색인 태그를 암호화된 데이터에 할당함으로써, 색인 태그를 통한 정렬 기능을 제공하는 것이다.An object of the present invention is to provide an alignment function through an index tag by assigning an index tag to encrypted data using a B + tree structure.

또한, 본 발명의 목적은 B+ 트리 구조 기반 색인 태그를 이용하여 검색 수행시 B+ 트리 검색을 통해 불필요한 데이터 복호화를 최소화하는 것이다.It is another object of the present invention to minimize unnecessary data decryption through B + tree search when performing a search using a B + tree structure based index tag.

또한, 본 발명의 목적은 효율적으로 암호화된 데이터에 대한 정렬 및 검색을 수행하면서도, 평문에 대한 노출이나 유추를 방지하여 데이터베이스 암호화의 기밀성을 제공하는 것이다.It is also an object of the present invention to provide privacy and confidentiality of the database encryption by performing sorting and retrieval of efficiently encrypted data while preventing exposure or analogy to plain text.

상기한 목적을 달성하기 위한 본 발명에 따른 암호화된 데이터에 대한 색인 태그 생성 방법은, B+ 트리의 루트 노드(root node)부터 상기 B+ 트리의 모든 노드들에 대하여 고유 번호를 할당하는 단계; 상기 B+ 트리의 리프 노드(leaf node)가 상기 리프 노드에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 색인 태그를 생성하는 단계; 및 상기 색인 태그를 암호화된 데이터에 상응하는 키 값에 순차적으로 할당하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of generating an index tag for encrypted data, the method comprising: assigning a unique number to all nodes of the B + tree from a root node of the B + tree; Generating index tags by connecting leaf nodes of the B + tree to leaf nodes sequentially after a unique number corresponding to the leaf node; And sequentially assigning the index tag to a key value corresponding to the encrypted data.

이 때, 상기 색인 태그의 길이는 상기 B+ 트리의 높이와 동일하고, 상기 색인 태그의 크기에 따라 상기 색인 태그에 상응하는 암호화된 데이터의 정렬 순서가 정해질 수 있다.At this time, the length of the index tag is equal to the height of the B + tree, and the sort order of the encrypted data corresponding to the index tag can be determined according to the size of the index tag.

이 때, 추가 번호는 1부터 시작하는 자연수일 수 있다.At this time, the additional number may be a natural number starting from 1. [

이 때, 고유 번호는 상기 모든 노드들 각각이 부여 받은 번호 뒤에 0부터 시작하는 추가 번호를 붙여서 자식 노드에 상응하는 상기 고유 번호를 부여함으로써 생성될 수 있다.In this case, the unique number may be generated by appending an additional number starting from 0 after the number given by each of the nodes, and assigning the unique number corresponding to the child node.

또한, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법은, 검색을 수행할 B+ 트리의 노드의 노드 번호, 상기 노드의 트리 레벨 및 색인 태그의 길이 중 어느 하나 이상을 초기화하는 단계; 상기 색인 태그를 이용한 검색문을 생성하는 단계; 상기 검색문을 이용하여 상기 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 상기 B+ 트리의 노드를 추출하는 단계; 및 상기 B+ 트리의 노드에 상응하는 암호화된 데이터를 이용하여 검색 결과를 생성하는 단계를 포함한다.The retrieval method using the index tag for the encrypted data according to an embodiment of the present invention may further include retrieving at least one of the node number of the node of the B + tree to be retrieved, the tree level of the node, Initializing; Generating a search query using the index tag; Extracting a node of the B + tree corresponding to the search statement by searching for the level of the B + tree using the search statement; And generating a search result using the encrypted data corresponding to the node of the B + tree.

이 때, 검색문은 상기 색인 태그에 대한 와일드카드를 포함하는 라이크(like) 검색문일 수 있다.At this time, the search statement may be a like search statement including a wildcard for the index tag.

이 때, 검색문은 중복 검색을 피하기 위한 중복 배제 파트를 포함할 수 있다.At this time, the search statement may include a duplicate elimination part to avoid duplicate searches.

이 때, 검색문은 루트 노드에 상응하는 레벨을 제외한 레벨에 대하여 이전 레벨에 상응하는 검색문을 통한 검색 결과에 기반하여 결정되는 가변 파트를 포함할 수 있다.At this time, the search statement may include a variable part that is determined based on the search result through the search statement corresponding to the previous level with respect to the level excluding the level corresponding to the root node.

이 때, 가변 파트는 상기 레벨에 따라 자릿수가 결정될 수 있다.At this time, the number of digits of the variable part can be determined according to the level.

이 때, 와일드카드는 상기 가변 파트가 있는 경우 상기 가변 파트 바로 뒤에 위치할 수 있다.At this time, the wild card may be located immediately after the variable part if the variable part exists.

이 때, 검색 결과를 생성하는 단계는 상기 검색문에 상응하는 상기 B+ 트리의 노드에 대해서만 데이터 복호화를 수행할 수 있다.At this time, the step of generating a search result may perform data decoding only on nodes of the B + tree corresponding to the search statement.

또한, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치는, B+ 트리의 리프 노드(leaf node)에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 생성된 색인 태그를 암호화된 데이터에 상응하는 키 값에 순차적으로 할당하는 색인 태그 생성부; 및 상기 색인 태그를 이용한 검색문을 생성하고, 상기 검색문을 이용하여 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 검색 결과를 생성하는 색인 태그 검색부를 포함한다.In addition, the database device using the index tag for the encrypted data according to an embodiment of the present invention includes an index tag generated by sequentially connecting additional numbers after a unique number corresponding to a leaf node of a B + tree, An index tag generating unit for sequentially assigning the key value corresponding to the encrypted data to the key value; And an index tag search unit for generating a search query using the index tag and searching for each level of the B + tree using the search query to generate a search result corresponding to the search query.

이 때, 색인 태그 검색부는 상기 검색문을 이용하여 상기 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 상기 B+ 트리의 노드를 추출하고, 상기 B+ 트리의 노드에 상응하는 암호화된 데이터를 이용하여 상기 검색 결과를 생성할 수 있다.At this time, the index tag search unit searches the level of the B + tree using the search statement to extract the node of the B + tree corresponding to the search statement, and transmits the encrypted data corresponding to the node of the B + tree To generate the search result.

이 때, 검색문은 상기 색인 태그에 대한 와일드카드를 포함하는 라이크(like) 검색문일 수 있다.At this time, the search statement may be a like search statement including a wildcard for the index tag.

이 때, 검색문은 루트 노드에 상응하는 레벨을 제외한 레벨에 대하여 이전 레벨에 상응하는 검색문을 통한 검색 결과에 기반하여 결정되는 가변 파트를 포함할 수 있다.At this time, the search statement may include a variable part that is determined based on the search result through the search statement corresponding to the previous level with respect to the level excluding the level corresponding to the root node.

이 때, 가변 파트는 상기 레벨에 따라 자릿수가 결정될 수 있다.At this time, the number of digits of the variable part can be determined according to the level.

이 때, 와일드카드는 상기 가변 파트가 있는 경우 가변 파트 바로 뒤에 위치할 수 있다.At this time, the wild card may be located immediately after the variable part if the variable part exists.

이 때, 색인 태그 검색부는 상기 검색문에 상응하는 상기 B+ 트리의 노드에 대해서만 데이터 복호화를 수행할 수 있다.At this time, the index tag search unit can perform data decoding only on the node of the B + tree corresponding to the search statement.

이 때, 색인 태그는 상기 B+ 트리의 리프 노드에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 생성될 수 있다.At this time, the index tag can be generated by sequentially connecting additional numbers after unique numbers corresponding to the leaf nodes of the B + tree.

이 때, 색인 태그의 길이는 상기 B+ 트리의 높이와 동일하고, 상기 색인 태그의 크기에 따라 상기 색인 태그에 상응하는 암호화된 데이터의 정렬 순서가 정해질 수 있다.At this time, the length of the index tag is equal to the height of the B + tree, and the sort order of the encrypted data corresponding to the index tag can be determined according to the size of the index tag.

본 발명에 따르면, B+ 트리 구조를 이용하여 색인 태그를 암호화된 데이터에 할당함으로써, 색인 태그를 통한 정렬 기능을 제공할 수 있다.According to the present invention, an index tag can be allocated to encrypted data using a B + tree structure, thereby providing an alignment function through an index tag.

또한, 본 발명은 B+ 트리 구조 기반 색인 태그를 이용하여 검색 수행시 B+ 트리 검색을 통해 불필요한 데이터 복호화를 최소화할 수 있다.In addition, the present invention minimizes unnecessary data decoding through B + tree search when a search is performed using a B + tree structure based index tag.

또한, 본 발명은 효율적으로 암호화된 데이터에 대한 정렬 및 검색을 수행하면서도, 평문에 대한 노출이나 유추를 방지하여 데이터베이스 암호화의 기밀성을 제공할 수 있다.In addition, the present invention can provide sorting and retrieval of encrypted data and confidentiality of database encryption by preventing exposure or analogy to plaintexts.

도 1은 B+ 트리 구조를 나타낸 도면이다.
도 2는 폭 우선 서치 방식으로 색인 태그를 부여하는 과정을 나타낸 도면이다.
도 3은 노드의 키 값에 색인 태그가 할당되는 예를 나타낸 도면이다.
도 4는 깊이 우선 서치 방식으로 색인 태그를 부여하는 과정을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그 생성 방법을 나타낸 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법을 나타낸 동작 흐름도이다.
도 7 내지 도 12는 색인 태그를 활용한 검색 과정을 나타낸 도면이다.
도 13은 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치를 나타낸 블록도이다.
1 is a diagram showing a B + tree structure.
FIG. 2 is a diagram illustrating a process of assigning an index tag in a width-first search method.
3 is a diagram showing an example in which an index tag is assigned to a key value of a node.
4 is a diagram illustrating a process of assigning an index tag in a depth-first search method.
5 is a flowchart illustrating an index tag generation method for encrypted data according to an exemplary embodiment of the present invention.
6 is a flowchart illustrating a search method using an index tag for encrypted data according to an exemplary embodiment of the present invention.
FIGS. 7 to 12 are diagrams illustrating a search process using an index tag.
13 is a block diagram illustrating a database device using an index tag for encrypted data according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will now be described in detail with reference to the accompanying drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shapes and sizes of the elements in the drawings and the like can be exaggerated for clarity.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 B+ 트리 구조를 나타낸 도면이다.1 is a diagram showing a B + tree structure.

도 1을 참조하면, B+ 트리는 자식 노드를 가지는 논-리프(non-leaf) 노드(120) 및 자식 노드를 가지지 않는 리프(leaf) 노드(130)를 포함한다. 특히, 논-리프 노드(120)에는 최상단에 루트(root) 노드(120)가 존재한다.Referring to FIG. 1, a B + tree includes a non-leaf node 120 having child nodes and a leaf node 130 having no child nodes. In particular, at the top of the non-leaf node 120, there is a root node 120.

B+ 트리는 DBMS에서 컬럼의 정렬 상태를 유지하기 위한 자료 구조로, 본 발명에서는 B+ 트리 구조를 색인 태그로 표현하는 방법을 제안한다.The B + tree is a data structure for maintaining the alignment of the columns in the DBMS. In the present invention, a method of representing the B + tree structure by an index tag is proposed.

B+ 트리에서 모든 리프 노드는 동일한 높이(루트로부터의 거리)를 가지며, 각 노드가 가지는 자식의 최대 개수를 m(m은 0 이상의 정수)이라고 했을 때, 루트 노드는 2~m개의 자식 노드를 가지며, 루트 노드를 제외한 논-리프 노드는

Figure 112015099525088-pat00001
~m개의 자식 노드를 가진다. 또한, 루트 노드는 1~m-1개의 키를 가지며, 루트 노드가 아닌 리프 노드는
Figure 112015099525088-pat00002
~m-1의 키를 가진다. 또한, 논-리프 노드가 가지는 키 개수는 자식 노드의 개수보다 1 작다.In the B + tree, all leaf nodes have the same height (distance from the root), and the maximum number of children each node has is m (m is an integer greater than or equal to 0), the root node has 2 to m child nodes , The non-leaf node excluding the root node
Figure 112015099525088-pat00001
It has ~ m child nodes. In addition, the root node has 1 to m-1 keys, and leaf nodes other than the root node
Figure 112015099525088-pat00002
It has a key of ~ m-1. Also, the number of keys of a non-leaf node is one less than the number of child nodes.

도 1에 도시된 예는 m=5인 B+ 트리를 나타낸 것으로, 루트 노드를 제외한 논-리프 노드들은 3~5개의 자식 노드를 가지며, 리프 노드들은 3~4개의 키 값을 가진다.The example shown in FIG. 1 shows a B + tree with m = 5, where non-leaf nodes other than the root node have 3 to 5 child nodes, and leaf nodes have 3 to 4 key values.

본 발명의 일실시예에 따르면, B+ 트리에서 모든 키 값은 리프 노드에 존재한다.According to one embodiment of the present invention, all key values in the B + tree are present at the leaf node.

본 발명에서 리프 노드에 존재하는 키 값에 고유한 색인 태그 값을 부여하는 규칙은 다음과 같다. 루트 노드는 각 자식 노드에게 정렬 순서대로 0부터 고유한 번호(정수)를 부여한다. 고유한 번호를 부여 받은 논-리프 노드는 부여 받은 번호 뒤에 0부터 번호를 이어 붙여, 정렬순서대로 자식 노드에게 고유번호를 부여한다. 가령 논-리프 노드 A가 상위 노드로부터 고유번호 1을 부여 받은 경우, 논-리프 노드 A는 자식 노드 B, C, D에게 정렬 순서대로 고유번호 10, 11, 12를 부여한다. 고유한 번호를 부여 받은 리프 노드는 부여 받은 번호 뒤에 1부터 번호(정수)를 부가하여 정렬 순서를 따라 각 키 값에 고유한 색인 태그 값을 부여한다.In the present invention, a rule for assigning a unique index tag value to a key value existing in a leaf node is as follows. The root node assigns each child node a unique number (integer) from 0 in sort order. A non-leaf node having a unique number is assigned a unique number to the child node in the sorting order by appending a number from 0 to the number after the assigned number. For example, when the non-leaf node A receives a unique number 1 from an upper node, the non-leaf node A assigns the child nodes B, C, and D the unique numbers 10, 11, A leaf node assigned a unique number assigns a unique integer index tag value to each key value by adding a number (integer) from 1 after the assigned number.

본 발명에서 부여되는 번호(고유번호, 추가번호 등)는 모두 숫자나 문자를 포괄하는 개념으로, 선/후 관계를 나타낼 수 있는 모든 기호를 포함할 수 있다. 예를 들어, 번호는 정수, 자연수 등의 숫자일 수 있고, 한 자리 이상의 알파벳 문자일 수도 있다. 이 때, 숫자는 10진수뿐만 아니라 16진수, 8진수 또는 2진수 등일 수도 있다.The number (unique number, additional number, etc.) given in the present invention is a concept including numbers or letters, and may include all symbols capable of representing a pre / post relationship. For example, the number may be an integer, a natural number, or the like, or may be one or more alphabetic characters. In this case, the number may be a hexadecimal number, an octal number, or a binary number as well as a decimal number.

도 2는 폭 우선 서치(Breadth First Search) 방식으로 색인 태그를 부여하는 과정을 나타낸 도면이다.FIG. 2 is a diagram illustrating a process of assigning an index tag in a breadth first search method.

도 2를 참조하면, node 1-> node 2-> node 3-> node 4-> node 5-> node 6-> node 7-> node 8-> node 9 순서로 트리를 순회하며 리프 노드에 있는 키 값에 색인 태그가 부여되는 것을 알 수 있다.Referring to FIG. 2, the tree is traversed in the order of node 1 -> node 2 -> node 3 -> node 4 -> node 5 -> node 6 -> node 7 -> node 8 -> node 9, It can be seen that an index tag is assigned to the key value.

루트 노드(210)는 자식노드인 node 2(220)와 node 3(230)에 각각 고유번호 0과 1번을 부여한다.The root node 210 assigns the unique numbers 0 and 1 to the node 2 (220) and the node 3 (230), which are child nodes, respectively.

node 2(220)는 node 4(240), node 5(250), node 6(260)에게 고유번호 00, 01, 02를 각각 부여한다. 또한, node 3(230)는 node 7(270), node 8(280), node 9(290)에 고유 번호 10, 11, 12를 부여한다. 리프 노드는 자신의 고유 번호 뒤에 키 값의 순서에 맞춰 추가 번호를 부가하여 색인 태그를 생성한다. node 2 220 assigns its own numbers 00, 01 and 02 to node 4 240, node 5 250 and node 6 260, respectively. In addition, the node 3 230 assigns the unique numbers 10, 11, and 12 to the node 7 270, the node 8 280, and the node 9 290. The leaf node generates an index tag by appending an additional number to the leaf node in accordance with the sequence of key values after the unique number.

예를 들어, 고유 번호 11을 부여 받은 node 8(280)이 키 값 w, x, y, z를 가지고 있다면 여기에 색인 태그 111, 112, 113, 114를 각각 부여할 수 있다.For example, if the node 8 (280) having the unique number 11 has key values w, x, y, and z, index tags 111, 112, 113, and 114 may be respectively assigned thereto.

도 3은 노드의 키 값에 색인 태그가 할당되는 예를 나타낸 도면이다.3 is a diagram showing an example in which an index tag is assigned to a key value of a node.

도 3을 참조하면, node 8(381)이 키 값 w, x, y, z를 가지고 있을 때, 색인 태그가 테이블(382)과 같이 할당된 것을 알 수 있다. 즉, 테이블(382)은 각 키 값에 부여된 색인 태그를 보여준다.Referring to FIG. 3, when node 8 381 has key values w, x, y, z, it can be seen that the index tag is assigned as table 382. That is, the table 382 shows the index tag assigned to each key value.

도 2에 도시된 예에서, B+ 트리의 높이는 3이며, node 1(210)은 레벨 1에 속하며, node 2(220), node 3(230)은 레벨 2에, 그리고 나머지 리프 노드들(240, 250, 260, 270, 280, 290)은 레벨 3에 속한다. 또한, 각 레벨별로 고유번호가 부여되므로 리프 노드에 있는 모든 항목의 색인 태그의 길이는 3이 된다. 각 레벨에서 정렬 순서대로 고유번호가 부여되었기 때문에, 색인 태그의 정렬 순서는 B+ 트리에서의 정렬 순서와 동일하다.2, the height of the B + tree is 3, and node 1 210 belongs to level 1, node 2 220, node 3 230 to level 2, and the remaining leaf nodes 240, 250, 260, 270, 280, 290) belong to level 3. In addition, since the unique number is assigned to each level, the length of the index tag of all the items in the leaf node is 3. Since each level is assigned a unique number in the sort order, the sort order of the index tag is the same as the sort order in the B + tree.

도 4는 깊이 우선 서치(Depth First Search) 방식으로 색인 태그를 부여하는 과정을 나타낸 도면이다.FIG. 4 is a diagram illustrating a process of assigning an index tag using a depth first search method.

도 4를 참조하면, node 1-> node 2-> node 4-> node 5-> node 6-> node 3-> node 7-> node 8-> node 9 순서로 트리를 순회하며 리프 노드에 있는 키 값에 색인 태그가 부여되는 것을 알 수 있다. 리프 노드는 각 키 값에 고유한 색인 태그 값을 부여한다. 각 키 값에 부여된 색인 태그의 결과는 도 2의 경우와 동일하다.Referring to FIG. 4, the tree is traversed in the order of node 1 -> node 2 -> node 4 -> node 5 -> node 6 -> node 3 -> node 7 -> node 8 -> node 9, It can be seen that an index tag is assigned to the key value. The leaf node assigns a unique index tag value to each key value. The result of the index tag assigned to each key value is the same as in Fig.

본 발명에서 제안된 색인 태그의 특징은 다음과 같다.The features of the index tag proposed in the present invention are as follows.

색인 태그의 길이는 B+ 트리의 높이와 동일하며, 낮은 색인 태그를 가지는 항목은 높은 색인 태그를 가지는 항목보다 빠른 정렬 순서를 가진다.The length of the index tag is the same as the height of the B + tree. Items with a low index tag have a faster sort order than items with a high index tag.

본 발명에서 제시한 색인 태그를 암호화된 컬럼에 대해 적용할 경우, 색인 태그를 이용해 평문에 대한 정렬 순서를 나타낼 수 있다.When the index tag proposed in the present invention is applied to an encrypted column, the sort order for plain text can be indicated using an index tag.

도 5는 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그 생성 방법을 나타낸 동작 흐름도이다.5 is a flowchart illustrating an index tag generation method for encrypted data according to an exemplary embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그 생성 방법은, B+ 트리의 루트 노드(root node)로부터 상기 B+ 트리의 모든 노드들에 대하여 고유 번호를 할당한다(S510).Referring to FIG. 5, an index tag generation method for encrypted data according to an embodiment of the present invention assigns a unique number to all nodes of the B + tree from a root node of the B + tree ( S510).

이 때, 색인 태그의 길이는 상기 B+ 트리의 높이와 동일하고, 상기 색인 태그의 크기에 따라 상기 색인 태그에 상응하는 암호화된 데이터의 정렬 순서가 정해질 수 있다.At this time, the length of the index tag is equal to the height of the B + tree, and the sort order of the encrypted data corresponding to the index tag can be determined according to the size of the index tag.

또한, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그 생성 방법은, B+ 트리의 리프 노드(leaf node)가 상기 리프 노드에 상응하는 고유 번호 뒤에 순차적으로 추가 번호를 연결하여 색인 태그를 생성한다(S520).Also, an index tag generation method for encrypted data according to an exemplary embodiment of the present invention is a method for generating an index tag for an encrypted data by associating an additional number sequentially with a unique number corresponding to the leaf node of a B + (S520).

이 때, 추가 번호는 1부터 시작하는 자연수일 수 있다.At this time, the additional number may be a natural number starting from 1. [

이 때, 고유 번호는 상기 모든 노드들 각각이 부여 받은 번호 뒤에 0부터 시작하는 추가 번호를 붙여서 자식 노드(child node)에 상응하는 상기 고유 번호를 부여함으로써 생성될 수 있다.In this case, the unique number may be generated by appending an additional number starting from 0 after the number given by each of the nodes, and assigning the unique number corresponding to the child node.

또한, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그 생성 방법은, 상기 색인 태그를 암호화된 데이터에 상응하는 키 값에 순차적으로 할당한다(S530).In addition, in the method of generating an index tag for encrypted data according to an embodiment of the present invention, the index tag is sequentially allocated to a key value corresponding to the encrypted data (S530).

이와 같이, 본 발명은 데이터베이스 암호화 적용시 암호화된 컬럼에 대한 평문의 순서를 색인 태그를 이용하여 정렬할 수 있고, 색인 태그를 활용한 트리 검색을 수행하여 효율적인 검색이 가능하다.As described above, according to the present invention, it is possible to arrange the order of plaintexts for encrypted columns in an application of database encryption using an index tag, and perform efficient tree search by performing an index tag search.

도 6은 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법을 나타낸 동작 흐름도이다.6 is a flowchart illustrating a search method using an index tag for encrypted data according to an exemplary embodiment of the present invention.

도 6을 참조하면, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법은 먼저 검색을 수행할 B+ 트리의 노드의 노드 번호, 상기 노드의 트리 레벨 및 색인 태그의 길이 중 어느 하나 이상을 초기화한다(S610).Referring to FIG. 6, a search method using an index tag for encrypted data according to an exemplary embodiment of the present invention includes a step of determining a node number of a node of a B + tree to be searched, a tree level of the node, And initializes at least one of them (S610).

즉, 단계(S610)는 검색을 수행하기 위해 검색할 값과 조회를 수행할 노드의 고유번호(nodeID), 검색을 수행할 노드의 트리 레벨(level) 및 색인 태그의 길이(h)를 초기화할 수 있다. 이 때, 검색할 데이터(Key)는 데이터베이스에서 찾고자 하는 복호화된(암호화되지 않은) 데이터일 수 있다.That is, in step S610, a value to be searched for, a unique number (nodeID) of a node to perform a query, a tree level of a node to be searched, and a length h of an index tag are initialized . At this time, the data to be searched (Key) may be decrypted (unencrypted) data to be searched in the database.

본 발명에서 각각의 조회는 레벨별로 수행되기 때문에 최대 h번 수행된다(S620).In the present invention, since each inquiry is performed for each level, it is performed a maximum of h times (S620).

본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법은 색인 태그를 이용한 검색문을 생성한다(S625).The search method using the index tag for the encrypted data according to an embodiment of the present invention generates a search statement using the index tag (S625).

이 때, 검색문은 색인 태그에 대한 와일드카드를 포함하는 라이크(like) 검색문일 수 있다.At this time, the search statement may be a like search statement including a wildcard for the index tag.

이 때, 와일드카드는 '_'일 수 있다. 이 때, 와일드카드 '_'는 임의의 문자열을 대체하는 것일 수 있다. 예를 들어, 라이크 검색문의 검색 조건이 'ABC_DFG'일 경우 ABC로 시작하고 EFG로 끝나는 7자리 임의의 문자열이 검색될 수 있다.At this time, the wildcard may be '_'. At this time, the wildcard '_' may be to replace any string. For example, if the search condition of the likesearch query is 'ABC_DFG', a 7-character string starting with ABC and ending with EFG may be searched.

이 때, 검색문은 중복 검색을 피하기 위한 중복 배제 파트를 포함할 수 있다.At this time, the search statement may include a duplicate elimination part to avoid duplicate searches.

이 때, 검색문은 루트 노드에 상응하는 레벨을 제외한 레벨에 대하여 이전 레벨에 상응하는 검색문을 통한 검색 결과에 기반하여 결정된 가변 파트를 포함할 수 있다.At this time, the search statement may include a variable part determined based on the search result through the search statement corresponding to the previous level with respect to the level excluding the level corresponding to the root node.

이 때, 가변 파트는 레벨에 따라 자릿수가 결정될 수 있다.At this time, the number of digits of the variable part can be determined according to the level.

이 때, 와일드카드는 상기 가변 파트가 있는 경우 상기 가변 파트 바로 뒤에 위치할 수 있다.At this time, the wild card may be located immediately after the variable part if the variable part exists.

본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법은 노드의 고유번호(nodeID)를 이용한 like 검색을 수행한다(S630).The retrieval method using the index tag for the encrypted data according to the embodiment of the present invention performs like retrieval using the unique number (nodeID) of the node (S630).

또한, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법은 검색된 레코드들 각각에 대하여(S640, S641), 조회된 레코드를 색인 태그 순서대로 추출하여(S642) 검색하려는 키 값(key)과 비교한다(S643).The retrieval method using the index tag for the encrypted data according to the embodiment of the present invention extracts the retrieved records in the order of index tags (S642) for each retrieved record (S640, S641) With a value (key) (S643).

단계(S643)의 판단 결과, 조회된 레코드가 검색하려는 키 값보다 작은 경우 다음 항목에 대한 검색이 수행되도록 한다(S644).If it is determined in step S643 that the searched record is smaller than the key value to be searched, the search for the next item is performed (S644).

단계(S643)의 판단 결과, 조회된 레코드가 검색하려는 키 값과 작거나 같은 경우, 두 값이 동일한지 여부를 판단하고(S645), 동일한 경우 해당 색인 태그를 리턴한다(S650).If it is determined in step S643 that the retrieved record is smaller than or equal to the key value to be retrieved, it is determined in step S645 whether the two values are identical to each other. If they are identical, the corresponding index tag is returned in step S650.

단계(S645)의 판단 결과, 두 값이 동일하지 않은 경우(키 값보다 큰 항목이 발견되었거나, 더 이상 비교할 값이 없는 경우) 다음 like 검색을 위해 다음 검색을 수행할 고유번호(nodeID)와 레벨(level)을 갱신한다(S660).As a result of the determination in step S645, if the two values are not the same (an item larger than the key value is found, or there is no value to be compared any more), a unique number (nodeID) (S660).

단계(S620)의 판단 결과 레벨(level)이 색인 태그의 길이보다 크면 해당 키 값에 상응하는 데이터가 검색되지 아니한 것이므로 검색 실패를 리턴하고 고유번호를 리터한다(S670).If it is determined in step S620 that the level is greater than the length of the index tag, data corresponding to the key value is not retrieved. Therefore, the retrieval failure is returned and the unique number is written (S670).

도 6을 통해 설명한 각 레벨별 검색은 일차적으로 고유번호에 해당하는 노드를 찾고, 해당 노드에 해당하는 암호화된 데이터들 중에서 키 값에 해당하는 데이터를 찾아서 리턴하는 과정으로 볼 수 있다.6 is a process of searching for a node corresponding to a unique number and searching for data corresponding to a key value among encrypted data corresponding to the corresponding node and returning it.

즉, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법은 검색문을 이용하여 B+ 트리의 레벨별로 검색을 수행하여 검색문에 상응하는 B+ 트리의 노드를 추출하는 과정(S630)과, 상기 B+ 트리의 노드에 상응하는 암호화된 데이터를 이용하여 검색 결과를 생성하는 과정(S641, S642, S643, S644, S645, S650, S660)을 포함하는 것으로 볼 수 있다.That is, a method of searching for encrypted data using an index tag according to an embodiment of the present invention includes searching a level of a B + tree using a search statement and extracting a node of a B + tree corresponding to a search statement S642, S643, S644, S645, S650, and S660) of generating the search result using the encrypted data corresponding to the node of the B + tree.

특히, 단계(S642)는 암호화된 데이터를 복호화하는 과정에 해당하나, 본 발명의 경우 검색된 B+ 트리상의 노드에 대해서만 수행되므로 불필요한 복호화를 최소화하면서도 빠른 암호화된 데이터 검색이 가능하다.In particular, the step S642 corresponds to the process of decrypting the encrypted data, but in the case of the present invention, since it is performed only for the node on the B + tree searched in the present invention, fast encrypted data search is possible while unnecessary decryption is minimized.

예를 들어, B+ 트리의 높이가 5이고 색인 태그가 저장된 테이블이 index_table, 색인 태그가 저장된 컬럼(column)이 index_tag라고 했을 때, 각 레벨에서 수행되는 라이크 검색문은 다음과 같이 구성될 수 있다.For example, if the height of the B + tree is 5, the table in which the index tag is stored is index_table, and the column in which the index tag is stored is index_tag, the likelihood search statement executed at each level can be configured as follows.

조회1: select * from index_table where index_tag like '_0001' and index_tag != '00001'View 1: select * from index_table where index_tag like '_0001' and index_tag! = '00001'

조회2: select * from index_table where index_tag like 'X1_001' and index_tag != 'X10001'View 2: select * from index_table where index_tag like 'X 1 _001' and index_tag! = 'X 1 0001'

조회3: select * from index_table where index_tag like 'X1X2_01' and index_tag != 'X1X2001'View 3: select * from index_table where index_tag like 'X 1 X 2 _01' and index_tag! = 'X 1 X 2 001'

조회4: select * from index_table where index_tag like 'X1X2X3_1' and index_tag != 'X1X2X301'View 4: select * from index_table where index_tag like 'X 1 X 2 X 3 _1' and index_tag! = 'X 1 X 2 X 3 01'

조회5: select * from index_table where index_tag like 'X1X2X3X4_'View 5: select * from index_table where index_tag like 'X 1 X 2 X 3 X 4 _'

상기 검색문의 Xi는 i번째 검색문에서 결정되며, 다음 조회를 수행할 노드의 고유번호가 된다. 또한, like문 뒤에는 중복 검색을 피하기 위한 조건문이 있는 index_tag != 'X1...1'이 있다.The search query X i is determined in the i-th search statement and becomes the unique number of the node to perform the next query. Also, behind the like statement is index_tag! = 'X 1 ... 1' with conditional statements to avoid duplicate searches.

검색에서 추출된 항목은 트리 검색 수행 시, 각 레벨에서 선택된 노드의 항목을 나타낸다.The items extracted from the search represent the items of the node selected at each level when performing the tree search.

조회1에서 추출된 항목은 B+ 트리에서 루트 노드(level 1에 위치)에 존재하는 항목과 동일하며, 조회2에서 추출된 항목은 B+ 트리에서 다음 조회 대상으로 선택된 노드(level 2에 위치)의 항목과 동일하다.The item extracted from the query 1 is the same as the item existing in the root node (located at level 1) in the B + tree, and the item extracted from the query 2 is the item of the node .

트리 검색은 트리 높이만큼 검색을 수행하기 때문에 조회5까지 수행 후에도 해당하는 키 값을 못 찾은 경우, 해당 키 값이 없음을 의미한다.Tree search performs a search as much as the tree height, meaning that if the corresponding key value can not be found even after performing the query 5, it means that the corresponding key value does not exist.

본 발명에서 제시한 색인 태그를 암호화된 컬럼에 대해 적용할 경우, 색인 태그 추출 과정(S642)에서 복호화 과정이 필요하며, 본 발명에 따르면 트리 검색을 통해 불필요한 복호화 횟수를 획기적으로 줄일 수 있다.When the index tag proposed in the present invention is applied to an encrypted column, a decryption process is required in the index tag extraction process (S642). According to the present invention, unnecessary decoding times can be drastically reduced through tree search.

도 7 내지 도 12는 색인 태그를 활용한 검색 과정을 나타낸 도면이다.FIGS. 7 to 12 are diagrams illustrating a search process using an index tag.

인덱스 테이블(index_table)(511, 521, 531)에는 암호화된 데이터(enc_data)와 데이터의 색인 태그(index_tag)가 저장되어 있다.The index table (index_table) 511, 521, and 531 stores encrypted data enc_data and an index tag of data index_tag.

먼저, 루트 노드(510)의 항목을 다음과 같이 조회한다.First, an item of the root node 510 is inquired as follows.

조회1: select * from index_table where index_tag like '_01' and index_tag != '001'View 1: select * from index_table where index_tag like '_01' and index_tag! = '001'

조회1의 결과로 도 8에 도시된 바와 같이 index_tag의 값이 101인 레코드가 조회된다. 해당 레코드의 enc_data를 복호화한 뒤 검색하려는 값 a와 비교한다. a가 색인 태그 101을 가지는 항목의 값보다 큰 경우, 도 9에 도시된 node 3(520)에 대한 조회를 다음과 같이 수행한다.As a result of inquiry 1, a record having a value of index_tag of 101 is inquired as shown in FIG. The enc_data of the record is decoded and compared with the value a to be searched. If a is larger than the value of the item having the index tag 101, the inquiry about the node 3 520 shown in FIG. 9 is performed as follows.

조회2: select * from index_table where index_tag like '1_1' and index_tag != '101'View 2: select * from index_table where index_tag like '1_1' and index_tag! = '101'

조회2의 결과로 도 10에 도시된 바와 같이 index_tag의 값이 111, 121인 레코드가 조회된다. 조회된 레코드의 enc_data를 순서대로 복호화하여 값 a와 비교한다. 만약 값 a가 색인 태그 111을 가지는 레코드의 복호화 결과보다 크고, 색인 태그 121을 가지는 레코드의 복호화 결과보다 작다면 도 11에 도시된 node 8(530)에 대한 조회를 다음과 같이 수행한다.As a result of inquiry 2, records having index_tag values of 111 and 121 are retrieved as shown in FIG. The enc_data of the retrieved record is decoded in order and compared with the value a. If the value a is larger than the decoding result of the record having the index tag 111 and smaller than the decoding result of the record having the index tag 121, the query for the node 8 (530) shown in FIG. 11 is performed as follows.

조회3: select * from index_table where index_tag like '11_'View 3: select * from index_table where index_tag like '11_'

조회3의 결과로 도 12에 도시된 바와 같이 index_tag의 값이 111, 112, 113, 114인 레코드가 조회된다. 조회된 레코드의 enc_data를 순서대로 복호화하여 값 a와 비교한다. 동일한 값을 찾으면 해당 색인 태그를 리턴하고, 동일한 값을 찾지 못하면 키 값이 없음을 리턴한다.As a result of inquiry 3, records having index_tag values of 111, 112, 113, and 114 are retrieved as shown in FIG. The enc_data of the retrieved record is decoded in order and compared with the value a. If the same value is found, the corresponding index tag is returned. If the same value is not found, the key value is returned.

이상에서 설명한 과정에서, 본 발명의 색인 태그를 이용한 검색 방법은 먼저 도 11에 도시된 노드8(530)을 찾고 노드8에 상응하는 색인 태그들(111, 112, 113, 114)에 상응하는 암호화된 데이터로부터 검색 결과를 생성하는 것으로 볼 수 있다.In the process described above, the search method using the index tag of the present invention first finds the node 8 530 shown in FIG. 11 and searches for an encryption (encryption) corresponding to the index tags 111, 112, 113, It can be seen that the search result is generated from the obtained data.

본 발명에 따르면, 색인 태그를 활용하여 트리 검색을 수행하므로, 검색을 수행하기 위한 최악의 경우(worst case)에도 색인 태그는 데이터 크기 n에 대해 로그 크기(log(n))에 비례하여 증가하므로 불필요한 데이터 액세스를 최소화할 수 있다.According to the present invention, since the tree search is performed using the index tag, the index tag increases in proportion to the log size (log (n)) with respect to the data size n even in the worst case for performing the search Unnecessary data access can be minimized.

도 13은 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치를 나타낸 블록도이다.13 is a block diagram illustrating a database device using an index tag for encrypted data according to an embodiment of the present invention.

도 13을 참조하면, 본 발명의 일실시예에 따른 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치는 색인 태그 생성부(1310), 색인 태그 검색부(1320) 및 암호화 데이터 DB(1330)를 포함한다.13, the database apparatus using index tags for encrypted data according to an embodiment of the present invention includes an index tag generation unit 1310, an index tag search unit 1320, and an encrypted data DB 1330 do.

색인 태그 생성부(1310)는 B+ 트리의 리프 노드(leaf node)에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 생성된 색인 태그를 암호화된 데이터에 상응하는 키 값에 순차적으로 할당한다.The index tag generating unit 1310 sequentially assigns the index numbers generated by sequentially connecting the additional numbers after the unique numbers corresponding to the leaf nodes of the B + tree to the key values corresponding to the encrypted data.

이 때, 색인 태그는 상기 B+ 트리의 리프 노드에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 생성될 수 있다.At this time, the index tag can be generated by sequentially connecting additional numbers after unique numbers corresponding to the leaf nodes of the B + tree.

이 때, 색인 태그의 길이는 상기 B+ 트리의 높이와 동일하고, 상기 색인 태그의 크기에 따라 상기 색인 태그에 상응하는 암호화된 데이터의 정렬 순서가 정해질 수 있다.At this time, the length of the index tag is equal to the height of the B + tree, and the sort order of the encrypted data corresponding to the index tag can be determined according to the size of the index tag.

색인 태그 검색부(1320)는 상기 색인 태그를 이용한 검색문을 생성하고, 상기 검색문을 이용하여 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 검색 결과를 생성한다.The index tag searching unit 1320 generates a search query using the index tag, and searches for the level of the B + tree using the search query to generate a search result corresponding to the search query.

이 때, 색인 태그 검색부(1320)는 상기 검색문을 이용하여 상기 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 상기 B+ 트리의 노드를 추출하고, 상기 B+ 트리의 노드에 상응하는 암호화된 데이터를 이용하여 상기 검색 결과를 생성할 수 있다.At this time, the index tag search unit 1320 searches the level of the B + tree using the search statement to extract the node of the B + tree corresponding to the search statement, The search result can be generated using the encrypted data.

이 때, 검색문은 상기 색인 태그에 대한 와일드카드를 포함하는 라이크(like) 검색문일 수 있다. 이 때, 검색문은 구조화 질의어(SQL; Structured Query Language)일 수 있다. At this time, the search statement may be a like search statement including a wildcard for the index tag. At this time, the retrieval statement may be a structured query language (SQL).

이 때, 검색문은 루트 노드에 상응하는 레벨을 제외한 레벨에 대하여 이전 레벨에 상응하는 검색문을 통한 검색 결과에 기반하여 결정되는 가변 파트를 포함할 수 있다.At this time, the search statement may include a variable part that is determined based on the search result through the search statement corresponding to the previous level with respect to the level excluding the level corresponding to the root node.

이 때, 가변 파트는 상기 레벨에 따라 자릿수가 결정될 수 있다.At this time, the number of digits of the variable part can be determined according to the level.

이 때, 와일드카드는 상기 가변 파트가 있는 경우 상기 가변 파트 바로 뒤에 위치할 수 있다.At this time, the wild card may be located immediately after the variable part if the variable part exists.

이 때, 색인 태그 검색부(1320)는 상기 검색문에 상응하는 상기 B+ 트리의 노드에 대해서만 데이터 복호화를 수행할 수 있다.At this time, the index tag searching unit 1320 can perform data decoding only on the nodes of the B + tree corresponding to the search query.

암호화 데이터 DB(1330)는 암호화된 데이터를 저장한다. 이 때, 암호화 데이터 DB(1330)는 색인 태그 생성부(1310)에서 생성된 색인 태그를 암호화된 데이터에 맵핑하여 함께 저장할 수 있다.The encrypted data DB 1330 stores the encrypted data. At this time, the encrypted data DB 1330 can map the index tags generated by the index tag generation unit 1310 to the encrypted data and store them together.

이상에서와 같이 본 발명에 따른 암호화된 데이터에 대한 색인 태그 생성 방법, 색인 태그를 이용한 암호화된 데이터 검색 방법 및 이를 위한 데이터베이스 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the index tag generation method for the encrypted data, the encrypted data retrieval method using the index tag, and the database apparatus for the encrypted data according to the present invention can be applied to a limited configuration and method of the embodiments described above The above embodiments may be constructed by selectively combining all or some of the embodiments so that various modifications may be made.

1310: 색인 태그 생성부
1320: 색인 태그 검색부
1330: 암호화 데이터 DB
1310: Index tag generation unit
1320: Index tag search unit
1330: Encrypted data DB

Claims (20)

암호화된 데이터를 저장하는 데이터베이스 장치가 색인 태그를 생성하는 색인 태그 생성 방법에 있어서,
B+ 트리의 루트 노드(root node)부터 상기 B+ 트리의 모든 노드들에 대하여 고유 번호를 할당하는 단계;
상기 B+ 트리의 리프 노드(leaf node)가 상기 리프 노드에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 색인 태그를 생성하는 단계; 및
상기 색인 태그를 암호화된 데이터에 상응하는 키 값에 순차적으로 할당하는 단계를 포함하고,
상기 색인 태그의 길이는 상기 B+ 트리의 높이와 동일하고, 상기 색인 태그의 크기에 따라 상기 색인 태그에 상응하는 암호화된 데이터의 정렬 순서가 정해지는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그 생성 방법.
A method of generating an index tag in which a database device storing encrypted data generates an index tag,
Assigning a unique number to all nodes of the B + tree from a root node of the B + tree;
Generating index tags by connecting leaf nodes of the B + tree to leaf nodes sequentially after a unique number corresponding to the leaf node; And
And sequentially assigning the index tag to a key value corresponding to the encrypted data,
Wherein the length of the index tag is equal to the height of the B + tree, and the sorting order of the encrypted data corresponding to the index tag is determined according to the size of the index tag. .
삭제delete 청구항 1에 있어서,
상기 추가 번호는 1부터 시작하는 자연수인 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그 생성 방법.
The method according to claim 1,
Wherein the additional number is a natural number starting from 1. < RTI ID = 0.0 > 8. < / RTI >
청구항 3에 있어서,
상기 고유 번호는
상기 모든 노드들 각각이 부여 받은 번호 뒤에 0부터 시작하는 추가 번호를 붙여서 자식 노드에 상응하는 상기 고유 번호를 부여함으로써 생성되는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그 생성 방법.
The method of claim 3,
The unique number
Wherein each of the nodes is generated by appending an additional number starting from 0 after the assigned number to the unique number corresponding to the child node.
암호화된 데이터를 저장하는 데이터베이스 장치가 색인 태그를 이용하여 암호화된 데이터를 검색하는 검색 방법에 있어서,
검색을 수행할 B+ 트리의 노드의 노드 번호, 상기 노드의 트리 레벨 및 색인 태그의 길이 중 어느 하나 이상을 초기화하는 단계;
상기 색인 태그를 이용한 검색문을 생성하는 단계;
상기 검색문을 이용하여 상기 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 상기 B+ 트리의 노드를 추출하는 단계; 및
상기 B+ 트리의 노드에 상응하는 암호화된 데이터를 이용하여 검색 결과를 생성하는 단계
를 포함하는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 검색 방법.
A retrieval method for a database apparatus storing encrypted data to retrieve encrypted data using an index tag,
Initializing at least one of a node number of a node of a B + tree to be searched, a tree level of the node, and a length of an index tag;
Generating a search query using the index tag;
Extracting a node of the B + tree corresponding to the search statement by searching for the level of the B + tree using the search statement; And
Generating a search result using the encrypted data corresponding to the node of the B + tree
The method of claim 1, further comprising:
청구항 5에 있어서,
상기 검색문은
상기 색인 태그에 대한 와일드카드를 포함하는 라이크(like) 검색문인 것을 특징으로 하는 색인 태그를 이용한 검색 방법.
The method of claim 5,
The search statement
Wherein the query is a like search query including a wildcard for the index tag.
청구항 6에 있어서,
상기 검색문은
중복 검색을 피하기 위한 중복 배제 파트를 포함하는 것을 특징으로 하는 색인 태그를 이용한 검색 방법.
The method of claim 6,
The search statement
And a duplicate elimination part for avoiding duplicate search.
청구항 7에 있어서,
상기 검색문은
루트 노드에 상응하는 레벨을 제외한 레벨에 대하여 이전 레벨에 상응하는 검색문을 통한 검색 결과에 기반하여 결정되는 가변 파트를 포함하는 것을 특징으로 하는 색인 태그를 이용한 검색 방법.
The method of claim 7,
The search statement
And a variable part determined based on a search result through a search statement corresponding to a previous level with respect to a level excluding a level corresponding to a root node.
청구항 8에 있어서,
상기 가변 파트는
상기 레벨에 따라 자릿수가 결정되는 것을 특징으로 하는 색인 태그를 이용한 검색 방법.
The method of claim 8,
The variable part
And the number of digits is determined according to the level.
청구항 9에 있어서,
상기 와일드카드는 상기 가변 파트가 있는 경우 상기 가변 파트 바로 뒤에 위치하는 것을 특징으로 하는 색인 태그를 이용한 검색 방법.
The method of claim 9,
Wherein the wildcard is located immediately after the variable part if the variable part is present.
청구항 10에 있어서,
상기 검색 결과를 생성하는 단계는
상기 검색문에 상응하는 상기 B+ 트리의 노드에 대해서만 데이터 복호화를 수행하는 것을 특징으로 하는 색인 태그를 이용한 검색 방법.
The method of claim 10,
The step of generating the search result
Wherein the data decoding is performed only on the node of the B + tree corresponding to the search statement.
B+ 트리의 리프 노드(leaf node)에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 생성된 색인 태그를 암호화된 데이터에 상응하는 키 값에 순차적으로 할당하는 색인 태그 생성부; 및
상기 색인 태그를 이용한 검색문을 생성하고, 상기 검색문을 이용하여 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 검색 결과를 생성하는 색인 태그 검색부를 포함하고,
상기 색인 태그의 길이는 상기 B+ 트리의 높이와 동일하고, 상기 색인 태그의 크기에 따라 상기 색인 태그에 상응하는 암호화된 데이터의 정렬 순서가 정해지는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
An index tag generating unit sequentially assigning index numbers generated by sequentially connecting additional numbers after a unique number corresponding to a leaf node of the B + tree to a key value corresponding to the encrypted data; And
And an index tag search unit for generating a search query using the index tag and searching for each level of the B + tree using the search query to generate a search result corresponding to the search query,
Wherein a length of the index tag is equal to a height of the B + tree, and an arrangement order of encrypted data corresponding to the index tag is determined according to the size of the index tag. Database device.
청구항 12에 있어서,
상기 색인 태그 검색부는
상기 검색문을 이용하여 상기 B+ 트리의 레벨별로 검색을 수행하여 상기 검색문에 상응하는 상기 B+ 트리의 노드를 추출하고,
상기 B+ 트리의 노드에 상응하는 암호화된 데이터를 이용하여 상기 검색 결과를 생성하는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
The method of claim 12,
The index tag search unit
Extracting a node of the B + tree corresponding to the search statement by searching for the level of the B + tree using the search statement,
And the search result is generated using the encrypted data corresponding to the node of the B + tree.
청구항 13에 있어서,
상기 검색문은
상기 색인 태그에 대한 와일드카드를 포함하는 라이크(like) 검색문인 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
14. The method of claim 13,
The search statement
Wherein the index tag is a like search query including a wild card for the index tag.
청구항 14에 있어서,
상기 검색문은
루트 노드에 상응하는 레벨을 제외한 레벨에 대하여 이전 레벨에 상응하는 검색문을 통한 검색 결과에 기반하여 결정되는 가변 파트를 포함하는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
15. The method of claim 14,
The search statement
And a variable part which is determined based on a search result through a search statement corresponding to a previous level with respect to a level excluding a level corresponding to a root node.
청구항 15에 있어서,
상기 가변 파트는
상기 레벨에 따라 자릿수가 결정되는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
16. The method of claim 15,
The variable part
And the number of digits is determined according to the level.
청구항 16에 있어서,
상기 와일드카드는 상기 가변 파트가 있는 경우 상기 가변 파트 바로 뒤에 위치하는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
18. The method of claim 16,
Wherein the wildcard is located immediately after the variable part if the variable part is present.
청구항 17에 있어서,
상기 색인 태그 검색부는
상기 검색문에 상응하는 상기 B+ 트리의 노드에 대해서만 데이터 복호화를 수행하는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
18. The method of claim 17,
The index tag search unit
And decrypts only the node of the B + tree corresponding to the retrieval statement using the index tag for the encrypted data.
청구항 18에 있어서,
상기 색인 태그는
상기 B+ 트리의 리프 노드에 상응하는 고유번호 뒤에 순차적으로 추가 번호를 연결하여 생성되는 것을 특징으로 하는 암호화된 데이터에 대한 색인 태그를 이용한 데이터베이스 장치.
19. The method of claim 18,
The index tag
Wherein the index number is generated by concatenating additional numbers sequentially after a unique number corresponding to a leaf node of the B + tree.
삭제delete
KR1020150143778A 2015-10-15 2015-10-15 Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same KR101703828B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150143778A KR101703828B1 (en) 2015-10-15 2015-10-15 Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150143778A KR101703828B1 (en) 2015-10-15 2015-10-15 Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same

Publications (1)

Publication Number Publication Date
KR101703828B1 true KR101703828B1 (en) 2017-02-08

Family

ID=58155754

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150143778A KR101703828B1 (en) 2015-10-15 2015-10-15 Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same

Country Status (1)

Country Link
KR (1) KR101703828B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980796A (en) * 2017-03-27 2017-07-25 河南科技大学 MDB is based under cloud environment+The multiple domain of tree connects the searching method of keyword
US20190384792A1 (en) * 2004-06-30 2019-12-19 Robert T. And Virginia T. Jenkins As Trustees Of The Jenkins Family Trust Dated Feb. 8, 2002 Method and/or system for performing tree matching
KR20200029431A (en) * 2020-03-11 2020-03-18 주식회사 티맥스데이터 Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor
CN111597582A (en) * 2020-05-18 2020-08-28 北京思特奇信息技术股份有限公司 Method for constructing encrypted reverse order rectangular tree and space keyword query method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090048623A (en) * 2006-09-06 2009-05-14 마이크로소프트 코포레이션 Encrypted data search

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090048623A (en) * 2006-09-06 2009-05-14 마이크로소프트 코포레이션 Encrypted data search

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190384792A1 (en) * 2004-06-30 2019-12-19 Robert T. And Virginia T. Jenkins As Trustees Of The Jenkins Family Trust Dated Feb. 8, 2002 Method and/or system for performing tree matching
CN106980796A (en) * 2017-03-27 2017-07-25 河南科技大学 MDB is based under cloud environment+The multiple domain of tree connects the searching method of keyword
CN106980796B (en) * 2017-03-27 2020-03-06 河南科技大学 MDB-based cloud environment+Search method of tree multi-domain connection keywords
KR20200029431A (en) * 2020-03-11 2020-03-18 주식회사 티맥스데이터 Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor
KR102127785B1 (en) 2020-03-11 2020-06-29 주식회사 티맥스티베로 Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor
CN111597582A (en) * 2020-05-18 2020-08-28 北京思特奇信息技术股份有限公司 Method for constructing encrypted reverse order rectangular tree and space keyword query method
CN111597582B (en) * 2020-05-18 2023-07-21 北京思特奇信息技术股份有限公司 Method for constructing encrypted inverted rectangular tree and space keyword query method

Similar Documents

Publication Publication Date Title
US8811611B2 (en) Encryption/decryption of digital data using related, but independent keys
CN108334612B (en) Shape-near Chinese character full-text fuzzy retrieval method aiming at ciphertext domain
US11709948B1 (en) Systems and methods for generation of secure indexes for cryptographically-secure queries
US10467420B2 (en) Systems for embedding information in data strings
KR101703828B1 (en) Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same
CN101930524B (en) Document information creation device, document registration system and document information creation method
CN103119594A (en) Searchable encryption processing system
US20100198846A1 (en) Method for order invariant correlated encrypting of data and sql queries for maintaining data privacy and securely resolving customer defects
CA3082614A1 (en) A computer-implemented method of performing format-preserving encryption of a data object of variable size
EP2783322A1 (en) Secure database searching
Rane et al. Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data
JP6632780B2 (en) Data processing device, data processing method, and data processing program
CN107315539B (en) Data storage method and data extraction method
CN109492410A (en) Data can search for encryption and keyword search methodology, system and terminal, equipment
WO2021255668A1 (en) A computer implemented method for the generation and management of codes.
KR101045222B1 (en) Method of encrypting and synthesizing personal information into order information and contents information, apparatus, server and recording media
KR100910303B1 (en) Data encryption and decryption apparatus using variable code table and method thereof
US11106740B2 (en) Search device, search system, search method, and computer readable medium
KR101977128B1 (en) Fixed length encryption apparatus and method for long text strings
KR101095862B1 (en) Data encryption apparatus and method, data decoding apparatus, data searching method
JP4552044B2 (en) Encrypted data creation device and method, and program thereof
CN116894273B (en) File encryption method, decryption method, equipment and medium based on exclusive or sum remainder
US11494499B1 (en) Searching encrypted data stores
KR102108542B1 (en) Security method for video metadata and method for searching encrypted video using the same
CN111602127A (en) Data management device, search device, registration device, data management method, and data management program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 4