KR102131306B1 - Apparatus for M anaging Data, Method for Managing Data, System for Managing Data - Google Patents
Apparatus for M anaging Data, Method for Managing Data, System for Managing Data Download PDFInfo
- Publication number
- KR102131306B1 KR102131306B1 KR1020130090463A KR20130090463A KR102131306B1 KR 102131306 B1 KR102131306 B1 KR 102131306B1 KR 1020130090463 A KR1020130090463 A KR 1020130090463A KR 20130090463 A KR20130090463 A KR 20130090463A KR 102131306 B1 KR102131306 B1 KR 102131306B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- user
- data management
- keywords
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 데이터관리장치, 데이터관리방법 및 데이터관리시스템에 관한 것으로서, 본 발명의 실시 예에 따른 데이터관리장치는 복수의 키워드를 암호화하여 저장하고, 키워드를 포함하는 데이터의 ID 정보들의 집합에 대한 블룸 필터를 암호화하여 저장하는 저장부, 사용자로부터의 요청에 근거하여 저장부에서 동일 키워드에 대응되는 열의 ID 정보들의 집합을 추출하는 제어부, 및 추출한 ID 정보들의 집합을 복호화하는 복호화부를 포함하되, 제어부는 복호화한 ID 정보에 매칭되는 데이터를 사용자에게 제공하고, ID 정보들의 집합은, 비트 정보로서 처리되는 것을 특징으로 한다.The present invention relates to a data management device, a data management method, and a data management system. The data management device according to an embodiment of the present invention encrypts and stores a plurality of keywords, and sets the ID information of the data including the keyword. A storage unit that encrypts and stores the bloom filter, a control unit that extracts a set of ID information corresponding to the same keyword from the storage unit based on a request from the user, and a decoding unit that decodes the set of extracted ID information. Is characterized in that the data matching the decoded ID information is provided to the user, and the set of ID information is processed as bit information.
Description
본 발명은 데이터관리장치, 데이터관리방법 및 데이터관리시스템에 관한 것으로서, 더 상세하게는 예컨대 클라우드 환경 하에서 외부 저장 공간에 데이터와 키워드를 암호화하여 저장하고, 키워드들에 대한 검색 가능한 암호문을 생성하며, 가령 검색하려는 키워드에 대한 토큰을 이용해 암호화된 키워드들로부터 해당 키워드를 포함하는 데이터의 검색 등을 가능케 하는 데이터관리장치, 데이터관리방법 및 데이터관리시스템에 관한 것이다.The present invention relates to a data management device, a data management method and a data management system, and more specifically, encrypts and stores data and keywords in an external storage space under a cloud environment, and generates a searchable ciphertext for keywords, For example, the present invention relates to a data management device, a data management method, and a data management system that enables retrieval of data including the keyword from keywords encrypted by using a token for the keyword to be searched.
암호화된 데이터들에 대해 키워드 검색을 허용하는 검색 가능 암호 시스템(Encrypted Keyword Search)은 대칭키 기반 기법과 비대칭키 기반 기법으로 나눠지는데, 대칭키 기반 기법은 데이터를 업로드하고 다운로드하는 대상이 동일하며, 비대칭키 기법은 그 대상이 서로 다르다. Encrypted Keyword Search, which allows keyword search for encrypted data, is divided into a symmetric key-based technique and an asymmetric key-based technique. The symmetric key-based technique has the same object for uploading and downloading data, The asymmetric key technique has different targets.
대칭키를 이용하는 키워드 기반 검색 가능 암호시스템에서 사용자는 외부 저장공간에 자신의 비밀키로 암호화된 데이터와 해당 인덱스를 저장한다. 인덱스는 데이터가 포함하고 있는 키워드들에 대한 정보를 암호화한 것으로, 암호화된 데이터를 키워드에 기반해서 검색할 때 사용된다. 검색시 사용자는 검색 키워드에 해당하는 토큰을 서버에 전달하고, 서버는 토큰과 인덱스를 이용하여 일련의 테스트 과정을 거친 후에 암호화된 데이터들을 사용자에게 반환한다. 그리고 사용자는 자신의 비밀키를 이용하여 데이터를 복호화한다.In a keyword-based searchable encryption system using a symmetric key, a user stores data encrypted with his secret key and its index in an external storage space. The index is an encryption of information on keywords included in the data, and is used when searching the encrypted data based on the keyword. When searching, the user passes the token corresponding to the search keyword to the server, and the server returns the encrypted data to the user after a series of test processes using the token and index. And the user decrypts the data using his/her own secret key.
대칭키를 이용한 키워드 기반 검색 암호시스템은 검색 방법에 따라 포워드 인덱스(forward index) 방식과 인버티드(inverted index) 방식으로 나누어진다. forward index 방식에서는 각 데이터가 포함하는 키워드들을 집합(set)으로 저장하며, 각 집합이 검색 키워드를 포함하는지를 검사한다. 그렇기 때문에 저장되어 있는 데이터 개수에 비례하여 검색 시간이 증가한다. 그러나 데이터마다 암호화된 키워드들의 집합이 독립적으로 존재하기 때문에 새로운 데이터를 추가하거나 저장된 데이터를 삭제하는 것이 용이하다. 반면, inverted index 방식에서는 각각의 키워드마다 그 키워드를 포함하는 데이터의 ID들을 집합으로 저장하며, 검색시 검색 키워드에 해당하는 집합에 포함되는 데이터를 반환한다. 그렇기 때문에 forward index 방식과 비교하여 검색 속도가 빠르다. 그러나 키워드에 따라 데이터의 ID들이 집합으로 저장되어 있기 때문에, 추가 및 삭제되는 데이터가 포함하고 있는 키워드에 해당하는 집합을 추가 및 삭제시 매번 업데이트해야 한다는 단점이 있다.The keyword-based search encryption system using a symmetric key is divided into a forward index method and an inverted index method according to a search method. In the forward index method, keywords included in each data are stored as a set, and it is checked whether each set includes a search keyword. Therefore, the search time increases in proportion to the number of stored data. However, it is easy to add new data or delete stored data because there is an independent set of encrypted keywords for each data. On the other hand, in the inverted index method, IDs of data including the keyword are stored as a set for each keyword, and data included in the set corresponding to the search keyword is returned when searching. Therefore, the search speed is faster than the forward index method. However, since IDs of data are stored as a set according to a keyword, there is a disadvantage that a set corresponding to a keyword included in data to be added and deleted needs to be updated every time when adding and deleting.
그런데, 종래에 알려진 키워드 기반 검색 가능 암호시스템들은 단일 키워드(single keyword) 검색에 초점을 두고 있으며, 키워드들의 교집합 검색(conjunctive search)과 키워드들의 합집합 검색(disjunctive search)을 지원하는 불리안 검색(boolean search)에 대해서는 효율적인 검색 방법을 제시하지 못하고 있다.However, conventionally known keyword-based searchable cryptosystems focus on single keyword search, and boolean supports conjunctive search of keywords and disjunctive search of keywords. search), it is not possible to propose an efficient search method.
또한 종래의 시스템들은 기존 데이터베이스(DB)의 수정 없이는 적용이 불가능하며, 데이터의 추가 및 삭제시 키워드에 해당하는 데이터의 ID들의 집합을 업데이트하기 위하여 많은 비용이 소요되는 문제가 있다.In addition, conventional systems cannot be applied without modification of an existing database (DB), and there is a problem in that a large amount of cost is required to update a set of IDs of data corresponding to keywords when adding and deleting data.
본 발명의 실시 예는 예컨대 클라우드 환경 하에서 외부 저장 공간에 데이터와 키워드를 암호화하여 저장하고, 키워드들에 대한 검색 가능한 암호문을 생성하며, 가령 검색하려는 키워드에 대한 토큰을 이용하여 암호화된 키워드들로부터 해당 키워드를 포함하는 데이터의 검색 등을 가능케 하는 데이터관리장치, 데이터 관리 방법 및 데이터 관리 시스템을 제공함에 그 목적이 있다.According to an embodiment of the present invention, data and keywords are encrypted and stored in an external storage space under a cloud environment, for example, a searchable cipher text is generated for keywords, and the corresponding keyword is encrypted using a token for a keyword to be searched. An object of the present invention is to provide a data management device, a data management method, and a data management system that enable retrieval of data including keywords.
본 발명의 실시 예에 따른 데이터관리장치는 복수의 키워드를 암호화하여 저장하고, 상기 키워드를 포함하는 데이터의 ID 정보들의 집합을 암호화하여 저장하는 저장부, 사용자로부터의 요청에 근거하여 상기 저장부에서 동일 키워드에 대응되는 열의 상기 ID 정보들의 집합을 추출하는 제어부, 및 상기 추출한 ID 정보들의 집합을 복호화하는 복호화부를 포함하되, 상기 제어부는, 상기 복호화한 ID 정보에 매칭되는 데이터를 상기 사용자에게 제공하고, 상기 ID 정보들의 집합은, 비트(bit) 정보로서 처리된다.The data management apparatus according to an embodiment of the present invention encrypts and stores a plurality of keywords, and stores the data by encrypting and storing a set of ID information of the data including the keyword, based on a request from a user. A control unit for extracting the set of ID information in a column corresponding to the same keyword, and a decoding unit for decoding the set of extracted ID information, wherein the control unit provides data matching the decoded ID information to the user , The set of ID information is processed as bit information.
여기서, 상기 비트 정보는 블룸 필터(bloom filter) 또는 비트맵(bit map)의 형태로 표현될 수 있다.Here, the bit information may be expressed in the form of a bloom filter or a bit map.
상기 비트 정보의 개수(number)는 상기 데이터의 개수와 일치할 수 있다.The number of bit information may match the number of data.
한편, 상기 데이터관리장치는 상기 사용자가 상기 데이터의 추가 또는 삭제를 요청하는 경우, 추가되는 키워드 및 데이터를 암호화하여 상기 저장부에 저장시키는 암호화부를 더 포함할 수 있다. Meanwhile, when the user requests the addition or deletion of the data, the data management device may further include an encryption unit that encrypts the added keywords and data and stores the added keywords and data in the storage unit.
한편, 상기 사용자로부터의 토큰(token)을 수신하여 상기 데이터의 검색, 추가 또는 삭제를 요청받는 인터페이스부를 더 포함하며, 상기 토큰은 키워드와 상기 암호화 및 상기 복호화를 위한 키를 포함할 수 있다. On the other hand, by receiving a token (token) from the user further comprises an interface unit to request the search, addition or deletion of the data, the token may include a key for the keyword and the encryption and decryption.
한편, 상기 데이터관리장치는 상기 사용자가 복수의 키워드를 포함하는 상기 데이터를 요청하는 경우, 상기 복수의 키워드에 각각 해당되는 열의 ID 정보들의 집합을 논리 연산하여 연산 결과를 출력하는 연산부를 더 포함하되, 상기 제어부는, 상기 연산 결과의 비트 정보를 근거로 상기 데이터를 사용자에게 제공할 수 있다. Meanwhile, when the user requests the data including a plurality of keywords, the data management apparatus further includes an operation unit for logically calculating a set of ID information corresponding to each of the plurality of keywords to output a calculation result. , The controller may provide the data to the user based on the bit information of the operation result.
또한, 본 발명의 실시 예에 따른 데이터관리방법은 복수의 키워드를 암호화하여 저장하고, 상기 키워드를 포함하는 데이터의 ID 정보들의 집합을 암호화하여 저장부에 저장하는 단계, 사용자로부터의 요청에 근거하여 상기 저장부에서 동일 키워드에 대응되는 열의 상기 ID 정보들의 집합을 추출하는 단계, 상기 추출한 ID 정보들의 집합을 복호화하는 단계, 및 상기 복호화한 ID 정보에 매칭되는 데이터를 상기 사용자에게 제공하는 단계를 포함하되, 상기 ID 정보들의 집합은, 비트 정보로서 처리된다. In addition, in the data management method according to an embodiment of the present invention, a plurality of keywords are encrypted and stored, and a set of ID information of the data including the keywords is encrypted and stored in a storage unit, based on a request from a user Extracting the set of ID information in a column corresponding to the same keyword from the storage unit, decoding the set of extracted ID information, and providing data matching the decoded ID information to the user However, the set of ID information is processed as bit information.
여기서, 상기 비트 정보는 블룸 필터 또는 비트맵의 형태로 표현될 수 있다.Here, the bit information may be expressed in the form of a bloom filter or a bitmap.
또한 상기 비트 정보의 개수는 상기 데이터의 개수와 일치할 수 있다. Also, the number of bit information may match the number of data.
한편, 상기 데이터관리방법은, 상기 사용자가 상기 데이터의 추가 또는 삭제를 요청하는 경우, 추가되는 키워드 및 데이터를 암호화하여 상기 저장부에 저장시키는 단계를 더 포함할 수 있다. Meanwhile, when the user requests to add or delete the data, the data management method may further include encrypting the added keyword and data and storing the added keyword and data in the storage unit.
한편, 상기 사용자로부터 토큰(token)을 수신하여 상기 데이터의 검색, 추가 또는 삭제를 요청받는 단계를 더 포함하며, 상기 토큰은 키워드와 상기 암호화 및 상기 복호화를 위한 키를 포함할 수 있다. On the other hand, receiving the token (token) from the user further comprises the step of requesting the search, addition or deletion of the data, the token may include a key for the keyword and the encryption and decryption.
한편, 상기 데이터관리방법은, 상기 사용자가 복수의 키워드를 포함하는 상기 데이터를 요청하는 경우, 상기 복수의 키워드에 각각 해당되는 열의 ID 정보들의 집합을 논리 연산하여 연산 결과를 출력하는 단계를 더 포함하되, 상기 사용자에게 제공하는 단계는, 상기 연산 결과의 비트 정보를 근거로 상기 데이터를 사용자에게 제공할 수 있다.Meanwhile, the data management method further includes, when the user requests the data including a plurality of keywords, logically calculating a set of ID information corresponding to each of the plurality of keywords to output a calculation result. However, in the step of providing to the user, the data may be provided to the user based on the bit information of the operation result.
한편, 본 발명의 실시 예에 따른 데이터관리시스템은 복수의 키워드와, 상기 복수의 키워드 각각에 매칭시켜 하나의 데이터에 부가되는 ID 정보들의 집합을 암호화하여 저장하고, 사용자로부터 제공된 키워드에 근거하여 상기 암호화한 ID 정보를 비트 정보의 형태로 처리하는 제1 데이터관리장치, 및 상기 ID 정보와, 각 ID 정보에 매칭시켜 상기 데이터를 저장하고, 상기 제1 데이터관리장치에서 처리된 비트 형태의 상기 ID 정보에 근거하여 상기 저장한 데이터를 검색하여 상기 사용자에게 제공하는 제2 데이터관리장치를 포함한다.Meanwhile, the data management system according to an embodiment of the present invention encrypts and stores a set of ID information added to one data by matching a plurality of keywords and each of the plurality of keywords, and based on the keyword provided from the user. A first data management apparatus for processing the encrypted ID information in the form of bit information, and the ID information and the ID information matched with each ID information to store the data, and the ID in the form of bits processed by the first data management apparatus And a second data management device that retrieves the stored data based on information and provides it to the user.
도 1은 본 발명의 실시 예에 따른 데이터 관리 시스템의 구조를 나타내는 도면,
도 2는 도 1의 데이터관리장치 1 및 2의 인덱스 및 데이터 테이블의 예시도,
도 3은 본 발명의 실시 예에 따른 인버티드 인덱스(inverted index)의 예시도,
도 4는 도 1의 데이터관리장치 1의 구조를 나타내는 블록다이어그램,
도 5는 본 발명의 실시 예에 따른 데이터 검색 과정을 설명하기 위한 도면,
도 6은 본 발명의 실시 예에 따른 데이터 추가 과정을 설명하기 위한 도면,
도 7은 본 발명의 실시 예에 따른 데이터 삭제 과정을 설명하기 위한 도면, 그리고
도 8은 본 발명의 실시 예에 따른 데이터 관리 방법을 나타내는 흐름도이다.1 is a view showing the structure of a data management system according to an embodiment of the present invention,
2 is an exemplary view of the index and data table of the
3 is an exemplary view of an inverted index according to an embodiment of the present invention,
4 is a block diagram showing the structure of the
5 is a view for explaining a data search process according to an embodiment of the present invention,
6 is a view for explaining a data addition process according to an embodiment of the present invention,
7 is a view for explaining a data deletion process according to an embodiment of the present invention, and
8 is a flowchart illustrating a data management method according to an embodiment of the present invention.
이하, 도면을 참조하여 본 발명의 실시 예에 대하여 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
본 발명의 실시 예는 키워드 기반 검색이 가능한 암호시스템으로서 EKS 시스템이라 명명될 수 있다. EKS 시스템은 본 발명의 실시 예에 따라 인버티드 인덱스 방식으로 블룸 필터를 적용하여 인덱스를 효율적으로 관리한다. EKS 시스템에서 사용자는 외부에 키워드 검색을 위한 인덱스 테이블과 데이터 검색을 위한 데이터 테이블을 두고, 검색(search), 추가(add) 및 삭제(delete) 요청을 통해 외부의 암호화된 데이터를 검색, 추가 및 삭제한다. 본 발명의 실시 예에서는 인덱스 테이블의 유지 대상은 Manager_1, 데이터 테이블의 유지 대상은 Manager_2라 명명할 수 있고, Manager_1 및 Manager_2는 하나의 Manager로 통합될 수 있다.An embodiment of the present invention may be called an EKS system as a keyword-based searchable encryption system. The EKS system efficiently manages the index by applying a bloom filter in an inverted index method according to an embodiment of the present invention. In the EKS system, users have an external index table for keyword search and a data table for data search, and search, add and delete external encrypted data through search, add, and delete requests. Delete it. In an embodiment of the present invention, the maintenance target of the index table may be referred to as Manager_1, the maintenance target of the data table may be referred to as Manager_2, and Manager_1 and Manager_2 may be integrated into one Manager.
도 1은 본 발명의 실시 예에 따른 데이터관리시스템의 구조를 나타내는 도면이고, 도 2는 도 1의 데이터관리장치 1 및 2의 인덱스 및 데이터 테이블의 예시도이며, 도 3은 본 발명의 실시 예에 따른 인버티드 인덱스의 예시도이다.1 is a diagram showing the structure of a data management system according to an embodiment of the present invention, Figure 2 is an exemplary view of the index and data table of the
도 1에 도시된 바와 같이, 본 발명의 실시 예에 따른 데이터관리시스템(90)은 사용자 장치(100), 통신망(110), 데이터관리장치 1(Manager 1)(120_1) 및 데이터관리장치 2(Manager 2)(120_2)의 일부 또는 전부를 포함한다.As shown in FIG. 1, the
여기서, 데이터관리장치 2(120_2)는 DB가 될 수 있으며, 일부 또는 전부를 포함한다는 것은 데이터관리장치 1(120_1) 및 데이터관리장치 2(120_2)가 통합되어 하나의 데이터관리장치(혹은 클라우드 장치)가 될 수 있고, 통신망(110)과 결합하여 클라우드 망을 형성할 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.Here, the data management device 2 (120_2) may be a DB, and includes some or all of the data management device 1 (120_1) and data management device 2 (120_2) are integrated into one data management device (or cloud device) ), and means to be able to form a cloud network by combining with the
사용자 장치(100)는 사용자가 데이터 생성 작업을 수행하기 위한 장치에 해당된다. 예를 들어, 사용자 장치(100)는 문서 작업을 수행하기 위한 랩탑 및 데스크탑 컴퓨터가 될 수 있고, 사진 및 동영상과 같은 촬영 데이터를 생성하기 위한 휴대폰 및 녹화장치 등이 될 수 있다. 본 발명의 실시 예에 따라 사용자 장치(100)는 작업이 완료되면 생성된 데이터를 통신망(110)을 경유하여 데이터관리장치 1(120_1) 또는 데이터관리장치 2(120)에 저장하는 것이 바람직하다. 이때 사용자 장치(100)는 통신망(110)에 도 1에서와 같은 유선 통신이 아닌 무선 통신으로도 접속하여 데이터를 처리할 수 있을 것이다.The
예컨대 사용자 장치(100)는 생성한 데이터를 저장하기 위하여 데이터와 함께 키워드 혹은 키워드를 대신할 수 있는 토큰(이하, 키워드로 설명함)을 생성하여 데이터관리장치 1(120_1)로 제공하고, 이후 키워드를 이용하여 자신이 데이터관리장치 1(120_1) 또는 데이터관리장치 2(120_2), 더 정확하게는 데이터관리장치 2(120_2)에 저장한 데이터를 불러올 수 있다. 여기서 키워드는 다양한 유형의 정보로 표현될 수 있으며, 토큰은 그 정보와 암호화 및 복호화를 위한 키를 결합한 형태로 이해해도 좋을 것이다.For example, the
이러한 과정을 통해 사용자 장치(100)는 추가로 생성한 데이터를 데이터관리장치 2(120_2)에 저장하여 데이터를 갱신할 수 있을 뿐 아니라, 키워드를 통해 기저장된 데이터를 삭제할 수도 있을 것이다. 다시 말해, 사용자 장치(100)는 데이터를 업/다운로드하고, 검색, 추가 및 삭제에 대한 쿼리를 토큰을 통하여 데이터관리장치 1(120_1)에 요청하게 된다. 기타 위의 검색, 추가 및 삭제 과정과 관련해서는 이후에 다시 자세히 다루기로 한다.Through this process, the
통신망(110)은 유무선 통신망을 모두 포함한다. 여기서 유선망은 케이블망이나 공중 전화망(PSTN)과 같은 인터넷망을 포함하는 것이고, 무선 통신망은 CDMA, WCDMA, GSM, EPC(Evolved Packet Core), LTE(Long Term Evolution), 와이브로 망 등을 포함하는 의미이다. 따라서 통신망(110)이 유선 통신망인 경우 액세스포인트는 전화국의 교환국 등에 접속할 수 있지만, 무선 통신망인 경우에는 통신사에서 운용하는 SGSN 또는 GGSN(Gateway GPRS Support Node)에 접속하여 데이터를 처리하거나, BTS(Base Station Transmission), NodeB, e-NodeB 등의 다양한 중계기에 접속하여 데이터를 처리할 수 있다.The
데이터관리장치 1 및 2(120_1, 120_2)는 일종의 서버로서, 실질적으로 데이터관리장치 2(120_2)는 DB일 수 있지만, 도 1에서와 같이 서로 독립적인 장치로 구성되어 서로 연동할 수 있다. 이러한 독립적인 2개의 장치는 서로 통합되어 하나의 클라우딩 장치를 형성할 수 있는데, 하나의 장치를 구성하는 경우, 데이터관리장치 1 및 2(120_1, 120_2)는 각각 정보처리부 1 및 2로 명명될 수 있다.The
데이터관리장치 1(120_1)은 효율적인 검색 및 인덱스 관리를 위해서 블룸 필터를 사용한다. 블룸 필터는 특정 집합 S={x1, x2, ..., xn}의 원소들을 고정된 크기의 배열에 표현할 수 있는 자료 구조로 가령 membership test 알고리즘으로 사용되며 주어진 입력이 특정 집합에 포함되는지 여부를 true/false로 반환한다. 본 발명의 실시 예에서 특정 집합 S={x1, x2, ..., xn}에 대한 블룸 필터를 BF_S로 표현하며, member xi에 대한 블룸 필터는 bf_xi로 표현한다. BF_S=∑i=1 n bf_xi이며, 이때 '+' 연산은 블룸 필터의 member accumulation 과정을 의미하며, '-'는 블룸 필터의 member elimination 과정을 의미한다. 그리고 '∧'는 블룸 필터의 set intersection을 의미하며, BF_S∧BF_S'은 집합 S와 S'의 교집합에 대한 블룸 필터가 된다. 블룸 필터의 set intersection은 bitwise AND 연산으로 구현이 가능하다.The
데이터관리장치 1(120_1)은 사용자로부터 쿼리를 처리한다. 인덱스 테이블은 도 2의 (a) 및 도 3에서와 같이 2개의 칼럼(column)으로 구성되어 있는데, 칼럼 1에는 키워드 wi에 대한 암호화된 키워드가 저장되며, 칼럼 2에는 키워드 wi를 포함하는 데이터의 ID들의 집합에 대한 블룸 필터(BF_wi)가 암호화되어 저장된다. 가령 적용되는 암호 알고리즘은 결정 암호화 알고리즘(deterministic encryption algorithm)으로 동일한 입력에 대해서 동일한 결과를 출력한다. 그리고, K_s와 K_wi는 사용자의 마스터 키(=K)로부터 계산이 가능한 암호화/복호화 키를 나타낸다.Data management device 1 (120_1) processes the query from the user. The index table is composed of two columns, as shown in FIGS. 2(a) and 3, where the encrypted keyword for the keyword wi is stored in
좀더 살펴보면, 데이터관리장치 1(120_1)은 사용자가 생성한 데이터와 키워드들을 결합하여 블룸 필터의 자료 구조 형태로 저장한다. 즉 인덱스 테이블을 생성한다. 다시 말해, 데이터관리장치 1(120_1)은 도 3에서와 같이 복수의 키워드를 저장하고, 각 키워드에 매칭시켜 해당 키워드를 포함하는 데이터들의 ID 정보를 집합 형태로 구성하고 이를 암호화하여 저장한다. 이때 ID들의 집합을 비트 정보로 표현할 수 있다. 예를 들어, 데이터관리장치 2(120_2)에 저장된 데이터가 모두 7개인 경우, 집합 형태의 ID 정보는 7비트 정보로 표현될 수 있다. 가령, 7개의 데이터 중 첫 번째 데이터만 키워드 1(w1)을 갖는 경우, 7비트 정보는 "1000000"으로 표현되고, 7번째 데이터만 키워드 1(w1)을 갖는 경우, 7비트 정보는 또한 "0000001"로 표현된다.Looking more closely, the data management device 1 (120_1) combines the data and keywords generated by the user and stores it in the form of a data structure of a bloom filter. That is, an index table is created. In other words, the data management device 1 (120_1) stores a plurality of keywords, as shown in FIG. 3, matches each keyword, configures the ID information of the data including the keyword in a set form, and stores it by encrypting it. At this time, a set of IDs may be expressed as bit information. For example, when all the data stored in the data management apparatus 2 (120_2) is seven, the ID information in the form of aggregation may be represented as 7-bit information. For example, if only the first data among 7 data has keyword 1 (w1), 7-bit information is expressed as "1000000", and only the 7th data has keyword 1 (w1), 7-bit information is also "0000001 Is expressed as ".
따라서, 데이터관리장치 1(120_1)은 사용자 장치(100)에서 생성된 데이터에 대한 키워드가 없는 경우, 새로운 키워드와 함께 그 키워드에 매칭되는 집합 형태의 ID 정보를 생성해 주게 되는 것이다. 만약 새로운 데이터에 대하여 키워드가 존재하는 경우에는 해당 키워드의 집합 형태의 ID 정보만을 갱신해 주면 된다. 반면 특정 키워드에 대하여 데이터의 삭제 요청이 있는 경우에는, 집합 형태의 ID 정보에서 삭제 요청이 있는 데이터의 ID를 삭제해 주게 된다.Accordingly, when there is no keyword for the data generated by the
또한, 데이터관리장치 1(120_1)은 사용자가 복수의 키워드에 대하여 논리 조합하는 형태로 정보를 제공한 경우, 가령 키워드 1(w1)과 키워드 2(w2)를 AND 즉 모두 갖는 데이터를 검색하고자 할 때, 데이터관리장치 1(120_1)은 집합의 비트 정보를 이용하여 새로운 비트 정보를 산출하고, 이를 데이터관리장치 2(120_2)로 제공한다. 예컨대 키워드 1(w1)을 갖는 집합의 7비트 정보가 "1000000"이고, 키워드 2(w2)를 갖는 집합의 7비트 정보도 "1000000"이었다면 두 정보를 AND 연산함으로써 "1000000"을 산출하고, 그 결과를 데이터관리장치 2(120_2)로 제공할 수 있다.In addition, the data management device 1 (120_1), when the user provides information in the form of a logical combination of a plurality of keywords, for example, to search for data having both keyword 1 (w1) and keyword 2 (w2) AND At this time, the data management device 1 (120_1) calculates new bit information using the set of bit information, and provides it to the data management device 2 (120_2). For example, if the 7-bit information of the set having the keyword 1 (w1) is "1000000", and the 7-bit information of the set having the keyword 2 (w2) is also "1000000", AND operation is performed on the two information to calculate "1000000". The result can be provided to the data management device 2 (120_2).
데이터관리장치 2(120_2)는 데이터관리장치 1(120_1)에 연동하는 일종의 DB일 수 있는데, 데이터관리장치 2(120_2)는 암호화된 데이터를 저장하고, 데이터 관리장치 1(120_1)이 요구하는 데이터들의 집합을 반환한다. 도 2의 (b)에서와 같이, 데이터 테이블은 암호화된 데이터(E(Datai))와 해당 bf_IDi(=블룸 필터 번호)를 저장하고 있으며, 데이터관리장치 1(120_1)로부터 제공되는 블룸 필터를 만족하는 bf_IDi에 한해서 암호화된 데이터를 데이터관리장치 1(120_1)로 반환한다. 데이터 Datai를 암호화하는 암호 알고리즘을 가령 EKS 시스템과 별도로 선택될 수 있다.The data management device 2 (120_2) may be a kind of DB interlocked with the data management device 1 (120_1). The data management device 2 (120_2) stores encrypted data, and the data required by the data management device 1 (120_1) Returns a set of As shown in (b) of FIG. 2, the data table stores encrypted data (E(Datai)) and the corresponding bf_IDi (=bloom filter number), and satisfies the bloom filter provided from the data management device 1 (120_1). Only for bf_IDi, the encrypted data is returned to the data management device 1 (120_1). The encryption algorithm for encrypting data Datai can be selected separately from the EKS system, for example.
예를 들어, 위의 경우에서 데이터관리장치 1(120_1)이 단독이든, 아니면 논리 연산에 의해서든 가령 7비트 정보 ""1000000"을 제공하였다면, 데이터관리장치 2(120_2)는 이를 인식하여 첫 번째 비트열에 해당되는 데이터 1을 반환하게 되는 것이다. 만약 첫 번째 비트열에 해당되는 데이터가 데이터 7인 경우에는 데이터 7을 반환한다. 이와 같이 각 비트열에 대응되는 데이터는 다양하게 변경하여 매칭시킬 수 있으므로 본 발명의 실시 예에서는 그것에 특별히 한정하지는 않을 것이다.For example, in the above case, if the data management device 1 (120_1) is alone or by logical operation, for example, if the 7-bit information ""1000000" is provided, the data management device 2 (120_2) recognizes this and is the first It will return the
상기의 구성 결과, 본 발명의 실시 예에 따른 데이터 관리 시스템(90) 즉 EKS 시스템은 외부 저장 공간에 암호화되어 저장되는 데이터들에 대해 키워드 검색 기능을 제공함으로써 사용자에 대한 개인 정보 유출을 방지하면서도 사용자 편의성을 확보할 수 있다.As a result of the above configuration, the
또한, EKS 시스템은 종래 데이터베이스의 변경 없이도 적용이 가능하며, 블룸 필터를 이용하여 효율적인 불리안 검색 기능 및 인덱스 관리 기능을 제공할 수 있다. 이에 따라 외부에 데이터 저장을 지원하는 클라우드 저장 서비스에서 유용하게 활용될 수 있다.In addition, the EKS system can be applied without changing the conventional database, and an efficient Boolean search function and index management function can be provided using a bloom filter. Accordingly, it can be usefully used in cloud storage services that support data storage outside.
도 4는 도 1의 데이터관리장치 1의 구조를 나타내는 블록다이어그램이다.4 is a block diagram showing the structure of the
도 4를 도 1과 함께 참조하면, 본 발명의 실시 예에 따른 데이터관리장치 1(120_1)는 인터페이스부(400), 저장부(410), 제어부(420), 연산부(430) 및 암/복호화부(440)의 일부 또는 전부를 포함할 수 있다. 여기서, 일부 또는 전부를 포함한다는 것은 위에서의 의미와 동일하다.Referring to FIG. 4 together with FIG. 1, the
인터페이스부(400)는 도 1의 통신망(110)을 경유하여 사용자 장치(100) 및 데이터관리장치 2(120_2)와 통신을 수행하기 위한 통신모듈을 포함한다. 인터페이스부(400)는 이러한 통신 과정에서 정보 변환 등의 과정을 수행할 수 있다. 가령 압축된 정보를 디코딩하는 등의 과정을 수행할 수 있다.The
저장부(410)는 인덱스 테이블 형태로서, 복수의 키워드를 암호화하여 저장하고, 그 각각의 키워드에 매칭시켜 데이터에 대한 ID 정보들의 집합을 암호화하여 저장한다. 이때 저장된 정보는 사용자의 요청에 따라 추가 또는 삭제되어 인덱스 테이블을 갱신할 수 있다.The
제어부(420)는 데이터관리장치 1(120_1) 내의 인터페이스부(400), 저장부(410), 연산부(430) 및 암/복호화부(440)의 전반적인 동작을 제어한다. 예를 들어, 사용자가 키워드 1(w1)을 포함하는 토큰을 제공한 경우, 제어부(420)는 해당 토큰에 매칭되는 열의 정보를 저장부(410)에서 읽어내어 암/복호화부(440)에서 복호화하고, 복호화된 ID 정보들의 집합 즉 비트 정보를 인터페이스부(400)를 통해 출력하도록 제어할 수 있다. 또한, 복수의 키워드가 제공되는 경우에는 복호화 과정에서 얻은 2개의 비트 정보를 연산부(430)를 통해 연산함으로써 산출된 새로운 비트 정보를 출력하도록 인터페이스부(400)를 제어할 수 있다.The
연산부(430)는 사용자가 가령 2개의 키워드가 포함된 데이터를 제공받고자 할 때, 2개의 키워드에 대한 ID 정보들의 집합을 암/복호화부(440)에서 복호화한 비트 정보들을 논리 연산할 수 있다. 예컨대 연산부(430)는 구체적으로 AND 연산이나 OR 연산을 수행할 수 있는데, 이와 관련해서는 앞서 충분히 설명하였으므로 더 이상의 설명은 생략한다.When the user wants to receive data including two keywords, for example, the
암/복호화부(440)는 가령 사용자가 새로운 키워드를 포함하는 데이터를 추가하거나 삭제하여 데이터관리장치 1(120_1)의 인덱스 테이블을 갱신하고자 할 때, 인덱스 테이블의 정보들이 암호화되어 저장부(410)에 저장되도록 한다. 또한, 암호화되어 저장된 정보를 추출하여 복호화함으로써 복호화된 정보, 예컨대 ID 정보들의 집합을 비트 정보로 표현한 정보들이 연산부(430)로 제공될 수 있도록 한다.The encryption/
도 5는 본 발명의 실시 예에 따른 데이터 검색 과정을 설명하기 위한 도면이다.5 is a view for explaining a data search process according to an embodiment of the present invention.
도 5를 도 1과 함께 참조하면, 본 발명의 실시 예에 따른 데이터관리시스템(90), 가령 EKS 시스템에서 키워드 w2를 포함하는 데이터를 검색하고자 하는 경우, 사용자는 w2에 대한 Token = {E_k_s(w2), K_w2}을 생성하고, 데이터관리장치 1(120_1)로 전달한다.Referring to FIG. 5 together with FIG. 1, when searching for data including the keyword w2 in the
그러면 데이터관리장치 1(120_1)은 E_k_s(w2)를 포함하는 열(row)에서 K_w2를 이용하여 BF_w2를 복구하고, BF_w2를 데이터관리장치 2(120_2)로 전달한다.Then, the data management device 1 (120_1) recovers BF_w2 using K_w2 in a row including E_k_s(w2), and transfers BF_w2 to the data management device 2 (120_2).
데이터관리장치 2(120_2)는 각 Datai의 bf_IDi가 BF_w2의 member인지를 테스트하고, True를 반환하는 bf_IDi의 E(Datai)를 데이터관리장치 1(120_1)에게 반환한다.Data management device 2 (120_2) tests whether bf_IDi of each Datai is a member of BF_w2, and returns E (Datai) of bf_IDi, which returns True, to data management device 1 (120_1).
이의 과정에서 가령, 키워드 w1과 w2의 교집합 검색의 경우, 토큰을 이용하여 데이터관리장치 1(120_1)이 BF_w1과 BF_w2를 복구하고 (BF_w1∧BF_w2)를 데이터관리장치 2(120_2)로 전달한다. 그리고 데이터관리장치 2(120_2)는 (BF_w1∧BF_w2)에 포함되는 bf_IDi만을 반환한다.In the process of this, for example, in the case of the intersection search of the keywords w1 and w2, the data management device 1 (120_1) recovers BF_w1 and BF_w2 using the token and transmits (BF_w1∧BF_w2) to the data management device 2 (120_2). And the data management device 2 (120_2) returns only bf_IDi included in (BF_w1∧BF_w2).
만약 키워드 w1과 w2의 합집합 검색의 경우, 토큰을 이용하여 데이터관리장치 1(120_1)이 BF_w1과 BF_w2를 복구하고, (BF_w1 + BF_w2)를 데이터관리장치 2(120_2)로 전달한다. 그리고 데이터관리장치 2(120_2)는 (BF_w1 + BF_w2)에 포함되는 bf_IDi만을 반환하게 된다.In the case of a union search of keywords w1 and w2, the data management device 1 (120_1) recovers BF_w1 and BF_w2 using a token, and transmits (BF_w1 + BF_w2) to the data management device 2 (120_2). In addition, the data management device 2 (120_2) returns only bf_IDi included in (BF_w1 + BF_w2).
도 6은 본 발명의 실시 예에 따른 데이터 추가 과정을 설명하기 위한 도면이다.6 is a view for explaining a data addition process according to an embodiment of the present invention.
도 6을 도 1과 함께 참조하면, 본 발명의 실시 예에 따른 데이터관리시스템(90) 즉 EKS 시스템에서 키워드 w2, w5를 포함하는 Data 8을 추가할 때, 사용자는 Data 8에 대한 암호문 E(Data8)을 생성하고, w2와 w5에 대한 EK _S(w2)와 EK _S(w5)를 계산한다. 그리고 Bloom filter member bf_ID8을 계산한다. 추가에 대한 토큰은 <관계식 1>과 같다.Referring to FIG. 6 together with FIG. 1, when data 8 including keywords w2 and w5 is added in the
[관계식 1][Relationship 1]
Token = {EK _S(w2), EK _S(w5), K_w2, K_w5, bf_ID8, E(Data8)}Token = {E K _S (w2), E K _S (w5), K_w2, K_w5, bf_ID8, E(Data8)}
상기 과정에서 가령 사용자가 Data 8에 대한 ID, 즉 Bloom filter member bf_ID8을 알지 못할 경우, 사용자는 Bloom filter member bf_ID8을 EKS 시스템, 가령 데이터관리장치 1(120_1)로부터 해당 ID 정보를 수신하거나, 사용자 자신이 직접 지정할 수도 있을 것이다. 이의 경우, <관계식 1>에서 bf_ID8은 생략될 수 있으며, bf_08의 생성 방식에 따라 변경이 얼마든지 가능할 수 있다.In the above process, for example, if the user does not know the ID for Data 8, that is, the Bloom filter member bf_ID8, the user receives the ID information from the Bloom filter member bf_ID8 from the EKS system, for example, the data management device 1 (120_1), or the user himself. You could also specify this yourself. In this case, bf_ID8 may be omitted from <
이어, 데이터관리장치 1(120_1)은 EK _s(w2)를 포함하는 열에서 K_w2를 이용하여 BF_w2를 복구하고 bf_ID8을 accumulation(BF_w2=BF_w2+bf_ID8)한다. 그리고 새로운 키워드 w5에 대해서 EK _S(w5)와 EK _ w5(BF_w5=bf_ID8)를 인덱스 테이블에 새로운 열로 추가하고, {bf_ID8, E(Data8)}을 데이터관리장치 2(120_2)로 전달한다.Subsequently, the
또한, 데이터관리장치 2(120_2)는 bf_ID8와 E(Data8)를 데이터 테이블에 저장한다.In addition, the data management device 2 (120_2) stores bf_ID8 and E (Data8) in a data table.
한편, 위에서와 같이 비트 정보가 블룸 필터의 형태가 아니라, 비트 정보의 개수가 데이터의 개수와 일치하는 비트맵(bitmap)일 경우, 상기 과정에서 BF_w2와 BF_w5를 암/복호화하는 과정은 생략 가능하며, bf_ID8을 BF_w2와 BF_w5의 암호문들에 bitwise EX-OR 연산함으로써 accumulation할 수 있다. 다시 말해, 비트 정보가 블룸 필터의 형태로 표현될 때, 데이터를 추가하기 위하여는 암호화된 BF_w2와 BF_w5를 복호화한 후, 관련 정보를 추가하고 나서 다시 암호화하는 과정을 갖는다면, 비트맵의 경우에는 이러한 과정을 생략하는 것이 가능할 수 있다. 이에 따라 <관계식 1>에서 K_w2, K_w5는 생략될 수 있다.On the other hand, if the bit information is not in the form of a bloom filter as described above, and the number of bit information is a bitmap that matches the number of data, the process of encrypting/decoding BF_w2 and BF_w5 in the above process can be omitted. , bf_ID8 can be accumulated by bitwise EX-OR operation on the ciphertexts of BF_w2 and BF_w5. In other words, when the bit information is expressed in the form of a bloom filter, in order to add data, after decrypting the encrypted BF_w2 and BF_w5, and then adding the relevant information and then encrypting it again, in the case of a bitmap, It may be possible to omit this process. Accordingly, K_w2 and K_w5 may be omitted in <
도 7은 본 발명의 실시 예에 따른 데이터 삭제 과정을 설명하기 위한 도면이다.7 is a view for explaining a data deletion process according to an embodiment of the present invention.
도 7을 도 1과 함께 참조하면, 본 발명의 실시 예에 따른 데이터관리시스템(90) 즉 EKS 시스템에서 키워드 w2, w5를 포함하는 Data 8을 삭제할 때, 사용자는 w2와 w5에 대한 EK _S(w2)와 EK _S(w5)를 계산한다. 그리고 Bloom filter member bf_ID8을 계산한다. 삭제에 대한 Token은 <관계식 2>와 같다.Referring to FIG. 7 together with FIG. 1, when data 8 including keywords w2 and w5 is deleted from the
[관계식 2][Relationship 2]
Token = {EK _S(w2), EK _S(w5), K_w2, K_w5, bf_ID8}Token = {E K _S (w2), E K _S (w5), K_w2, K_w5, bf_ID8}
데이터관리장치 1(120_1)은 EK _s(w2)와 EK _S(w5)를 포함하는 열에서 K_w2와 K_w5를 이용하여 BF_w2와 BF_w5를 복구하고, BF_w2=BF_w2-bf_ID8와 BF_w5=BF_w5-bf_ID8을 계산한다. 이때 BF_wi가 0이 되는 열은 인덱스 테이블에서 제거한다. 그리고 bf_ID8을 데이터관리장치 2(120_2)로 전달한다.Data management device 1 (120_1) recovers BF_w2 and BF_w5 using K_w2 and K_w5 from the columns containing E K _s (w2) and E K _S (w5), and BF_w2=BF_w2-bf_ID8 and BF_w5=BF_w5-bf_ID8 To calculate At this time, the column where BF_wi becomes 0 is removed from the index table. Then, bf_ID8 is transferred to the data management device 2 (120_2).
이어 데이터관리장치 2(120_2)는 bf_ID8과 E(Data8)를 데이터 테이블에서 삭제한다.Subsequently, the data management apparatus 2 (120_2) deletes bf_ID8 and E (Data8) from the data table.
한편, 비트 정보의 개수가 데이터의 개수와 일치하는 비트맵일 경우, 상기 과정에서 BF_w2와 BF_w5를 암/복호화하는 과정은 생략 가능하며, bf_ID8을 BF_w2와 BF_w5의 암호문들에 bitwise EX-OR 연산을 수행함으로써 extraction할 수 있다. 이에 따라 <관계식 1>에서 K_w2, K_w5는 생략될 수 있다.On the other hand, if the number of bit information is a bitmap that matches the number of data, the process of encrypting/decrypting BF_w2 and BF_w5 in the above process can be omitted, and bitwise EX-OR operation is performed on bf_ID8 to the ciphertexts of BF_w2 and BF_w5. Can be extracted. Accordingly, K_w2 and K_w5 may be omitted in <
도 8은 본 발명의 실시 예에 따른 데이터 관리 방법을 나타내는 흐름도이다.8 is a flowchart illustrating a data management method according to an embodiment of the present invention.
설명의 편의상 도 8을 도 4와 함께 참조하면, 본 발명의 실시 예에 따른 데이터관리장치 1(120_1)은 2개의 칼럼으로 구성하여 칼럼 1에는 키워드 wi에 대한 암호화된 키워드를 저장하고, 칼럼 2에는 키워드 wi를 포함하는 데이터의 ID 정보들의 집합에 대한 블룸 필터(BF_wi)를 암호화하여 저장한다(S800). 이때 ID 정보들의 집합은 비트 정보로서 처리되는 것이 바람직하다. 가령 비트 정보는 데이터 1 내지 데이터 7에 대하여, 7비트 정보로 나타낼 수 있다.Referring to FIG. 8 together with FIG. 4 for convenience of description, the data management device 1 (120_1) according to an embodiment of the present invention includes two columns to store the encrypted keywords for the keyword wi in
물론 본 발명의 실시 예에서는 바람직하게는 데이터 1 내지 데이터 7에 대하여 순차적으로 비트 정보를 표현하는 것이지만, 순서를 혼합하여 비트 정보를 표현하는 것도 얼마든지 가능할 수 있다. 예컨대, 데이터 1, 데이터 2 및 데이터 3의 순서대로 비트를 표현하는 것이 아니라, 데이터 1, 데이터 3 및 데이터 2와 같은 순서대로 순차적이지 않게 비트를 표현할 수도 있다. 이때, 데이터관리장치 1(120_1)만이 두 번째 ID 정보 즉 비트 정보가 데이터 3에 대한 것임을 알 수 있게 된다. 나아가 데이터가 7개 존재하더라도 이를 반드시 7 비트로 매칭시켜 비트 정보를 처리하는 것이 아니라, 어떠한 함수 관계를 설정하여 4 비트 정보 또는 그 이외의 정보로 표현하는 것도 얼마든지 가능할 수 있을 것이다.Of course, in the embodiment of the present invention, preferably, the bit information is sequentially expressed with respect to the
또한, 데이터관리장치 1(120_1)은 사용자로부터의 요청에 근거하여 저장부(410)에서 동일 키워드에 해당되는 열의 ID 정보들의 집합을 추출한다(S810). 이때 요청은 토큰에 해당되며, ID 정보들은 비트 정보이다.In addition, the data management device 1 (120_1) extracts a set of ID information of the column corresponding to the same keyword in the
이어 데이터관리장치 1(120_1)은 추출한 ID 정보들의 집합을 복호화하여 출력한다(S820). 이의 과정에서 데이터관리장치 1(120_1)은 복호화를 위하여 토큰에 포함되는 복호화 키를 사용할 수 있다.Subsequently, the data management device 1 (120_1) decodes and outputs the set of extracted ID information (S820). In the process of this, the
이후 데이터관리장치 1(120_1)은 복호화된 ID 정보에 매칭되는 데이터를 사용자에게 제공한다(S830). 이와 같은 데이터의 제공은 도 1에서와 같이 연동하는 데이터관리장치 2(120_2)로부터 제공받아 사용자에게 전달할 수 있지만, 별도의 데이터베이스를 구축하는 경우에는 데이터베이스의 검색에 의해 추출된 데이터를 사용자에게 제공할 수 있을 것이다.Thereafter, the data management device 1 (120_1) provides data matching the decrypted ID information to the user (S830). The provision of such data can be provided to the user by receiving data from the interlocked data management device 2 (120_2) as shown in FIG. 1, but in the case of constructing a separate database, data extracted by searching the database is provided to the user. Will be able to.
기타, 복수의 키워드를 포함하는 데이터의 검색이나, 특정 키워드들을 포함하는 데이터의 추가 및 삭제 등과 관련해서는 앞서서의 도 5 내지 도 7을 참조하여 충분히 설명하였으므로 그 내용들로 대신하고자 한다.In addition, the description of the data including a plurality of keywords or the addition and deletion of data including specific keywords has been sufficiently described with reference to FIGS. 5 to 7 above, and thus the contents thereof will be replaced.
도 9는 본 발명의 다른 실시예에 따른 데이터 추가 과정을 나타내는 흐름도로서, 비트 정보가 비트맵의 형태로 표현되는 경우를 가정한 것이다.9 is a flowchart illustrating a process of adding data according to another embodiment of the present invention, and assumes that bit information is expressed in the form of a bitmap.
설명의 편의상 도 9를 도 1과 함께 참조하면, 본 발명의 실시예에 따른 데이터관리장치 1(120_1)은 데이터의 추가를 목적으로 하는 사용자로부터 복수의 키워드를 포함하는 데이터에 대한 암호문과 키워드들에 대한 암호문들을 포함한 토큰을 수신한다(S900).Referring to FIG. 9 together with FIG. 1 for convenience of description, the data management device 1 (120_1) according to an embodiment of the present invention provides ciphertexts and keywords for data including a plurality of keywords from a user for the purpose of adding data. Tokens including ciphertexts are received (S900).
이어, 데이터관리장치 1(120_1)은 수신된 토큰이 포함하고 있는 키워드 암호문에 해당하는 열의 ID 정보들에서 추가하는 데이터의 ID 정보를 추가한다(S910).Subsequently, the data management apparatus 1 (120_1) adds ID information of data added from ID information of a column corresponding to the keyword ciphertext included in the received token (S910).
이후, 가령 데이터관리장치 2(120_2)는 추가되는 데이터의 암호문과 해당 ID를 저장부에 저장하게 된다(S920).Thereafter, for example, the data management device 2 (120_2) stores the encrypted text and the corresponding ID of the data to be added to the storage unit (S920).
도 10은 본 발명의 다른 실시예에 따른 데이터 삭제 과정을 나타내는 흐름도로서, 비트 정보가 비트맵의 형태로 표현되는 경우를 가정한 것이다.10 is a flowchart illustrating a data deletion process according to another embodiment of the present invention, and assumes that bit information is expressed in the form of a bitmap.
설명의 편의상 도 10을 도 1과 함께 참조하면, 본 발명의 실시예에 따른 데이터관리장치 1(120_1)은 데이터 삭제를 목적으로 하는 사용자로부터 삭제하고자 하는 데이터가 포함하고 있는 키워드들에 대한 암호문들을 포함한 토큰을 수신한다(S1000).For convenience of description, referring to FIG. 10 together with FIG. 1, the
이어, 데이터관리장치 1(120_1)은 수신된 토큰이 포함하고 있는 키워드 암호문에 해당하는 열의 ID 정보들에서 삭제하려는 데이터의 ID 정보를 삭제한다(S1010).Subsequently, the data management device 1 (120_1) deletes the ID information of the data to be deleted from the column ID information corresponding to the keyword ciphertext included in the received token (S1010).
이후, 데이터관리장치 2(120_2)는 삭제하는 데이터의 암호문과 해당 ID를 저장부에서 삭제할 수 있다(S1020).Thereafter, the data management device 2 (120_2) may delete the encrypted text and the corresponding ID of the data to be deleted from the storage unit (S1020).
한편, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 비일시적 저장매체(non-transitory computer readable media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다. On the other hand, that all components constituting the embodiments of the present invention are described as being combined or operated as one, the present invention is not necessarily limited to these embodiments. That is, within the scope of the present invention, all of the constituent elements may be selectively combined and operated. In addition, although all of the components may be implemented as one independent hardware, a part or all of the components are selectively combined to perform a part or all of functions combined in one or a plurality of hardware. It may be implemented as a computer program having a. The codes and code segments constituting the computer program can be easily deduced by those skilled in the art of the present invention. Such a computer program is stored in a computer-readable non-transitory computer readable media, and read and executed by a computer, thereby implementing an embodiment of the present invention.
여기서 비일시적 판독 가능 기록매체란, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리 카드, ROM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다. Here, the non-transitory readable recording medium means a medium that stores data semi-permanently and that can be read by a device, rather than a medium that stores data for a short moment, such as a register, a cache, or a memory. Specifically, the above-described programs may be stored and provided on a non-transitory readable recording medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.Although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific embodiments described above, and it is usually in the technical field to which the present invention pertains without departing from the gist of the present invention as claimed in the claims. Of course, various modifications can be implemented by a person having knowledge of these, and these modifications should not be individually understood from the technical idea or prospect of the present invention.
100: 사용자 장치 110: 통신망
120_1: 데이터관리장치 1 120_2: 데이터관리장치 2
400: 인터페이스부 410: 저장부
420: 제어부 430: 연산부
440: 암/복호화부100: user device 110: communication network
120_1:
400: interface unit 410: storage unit
420: control unit 430: operation unit
440: cancer/decryption unit
Claims (13)
복수의 키워드를 암호화하여 저장하고, 상기 복수의 키워드 각각에 대응되는 ID의 집합을 암호화하여 저장하는 저장부;
상기 저장부에서 사용자 요청에 대응되는 ID의 집합을 추출하는 제어부; 및
상기 추출한 ID의 집합을 복호화하는 복호화부;를 포함하되,
상기 제어부는,
상기 복호화한 ID에 매칭되는 데이터를 상기 사용자에게 제공하고,
상기 ID의 집합은,
비트(bit) 정보로서 처리되고,
상기 비트 정보의 개수(number)는 저장된 데이터의 개수와 일치하는 것을 특징으로 하는 데이터관리장치.In the data management device,
A storage unit for encrypting and storing a plurality of keywords, and encrypting and storing a set of IDs corresponding to each of the plurality of keywords;
A control unit for extracting a set of IDs corresponding to a user request from the storage unit; And
Includes; a decoder for decoding the set of extracted ID;
The control unit,
Provide data to the user matching the decrypted ID,
The set of IDs,
Processed as bit information,
The number information of the bit information (number) is a data management device, characterized in that the number of stored data.
상기 비트 정보는 블룸 필터(bloom filter) 또는 비트맵(bit map)의 형태로 표현되는 것을 특징으로 하는 데이터관리장치.According to claim 1,
The bit information is a data filter, characterized in that it is expressed in the form of a bloom filter (bloom filter) or a bit map (bit map).
상기 사용자가 데이터의 추가를 요청하는 경우, 추가되는 키워드 및 데이터를 암호화하여 상기 저장부에 저장시키는 암호화부;를 더 포함하는 것을 특징으로 하는 데이터관리장치.According to claim 1,
And an encryption unit that encrypts the keywords and data to be added and stores them in the storage unit when the user requests the addition of data.
상기 사용자로부터의 토큰(token)을 수신하여 데이터의 검색, 추가 또는 삭제를 요청받는 인터페이스부;를 더 포함하며,
상기 토큰은 키워드와 암호화 및 복호화를 위한 키를 포함하는 것을 특징으로 하는 데이터관리장치.According to claim 4,
It further includes an interface unit that receives a token from the user and is requested to search, add, or delete data.
The token comprises a keyword and a key for encryption and decryption.
상기 사용자가 적어도 두개의 키워드를 포함하는 데이터를 요청하는 경우, 상기 적어도 두개의 키워드에서 각 키워드에 대응되는 ID의 집합을 논리 연산하여 연산 결과를 출력하는 연산부;를 더 포함하되,
상기 제어부는,
상기 연산 결과의 비트 정보를 근거로 상기 데이터를 사용자에게 제공하는 것을 특징으로 하는 데이터관리장치.According to claim 1,
Further comprising, when the user requests data including at least two keywords, the at least two keywords to perform a logical operation on a set of IDs corresponding to each keyword to output a calculation result;
The control unit,
Data management device characterized in that it provides the data to the user based on the bit information of the calculation result.
상기 저장부에서 사용자 요청에 대응되는 ID의 집합을 추출하는 단계;
상기 추출한 ID의 집합을 복호화하는 단계; 및
상기 복호화한 ID에 매칭되는 데이터를 상기 사용자에게 제공하는 단계;를 포함하되,
상기 ID의 집합은,
비트(bit) 정보로서 처리되고,
상기 비트 정보의 개수(number)는 저장된 데이터의 개수와 일치하는 것을 특징으로 하는 데이터관리방법.Encrypting and storing a plurality of keywords, and storing a set of IDs corresponding to each of the plurality of keywords by storing them in a storage unit;
Extracting a set of IDs corresponding to a user request from the storage unit;
Decoding the set of extracted IDs; And
Including; providing data matching the decrypted ID to the user;
The set of IDs,
Processed as bit information,
The number information of the bit information (number) is a data management method characterized in that it matches the number of stored data.
상기 비트 정보는 블룸 필터(bloom filter) 또는 비트맵(bit map)의 형태로 표현되는 것을 특징으로 하는 데이터관리방법.The method of claim 7,
The bit information is a data management method characterized in that it is expressed in the form of a bloom filter (bloom filter) or a bit map (bit map).
상기 사용자가 데이터의 추가를 요청하는 경우, 추가되는 키워드 및 데이터를 암호화하여 상기 저장부에 저장시키는 단계;를 더 포함하는 것을 특징으로 하는 데이터관리방법.The method of claim 7,
And when the user requests the addition of data, encrypting the keywords and data to be added and storing the data in the storage unit.
상기 사용자로부터의 토큰(token)을 수신하여 상기 데이터의 검색, 추가 또는 삭제를 요청받는 단계;를 더 포함하며,
상기 토큰은 키워드와 암호화 및 복호화를 위한 키를 포함하는 것을 특징으로 하는 데이터관리방법.The method of claim 10,
The method further includes receiving a token from the user and requesting to search, add, or delete the data;
The token comprises a keyword and a key for encryption and decryption.
상기 사용자가 적어도 두개의 키워드를 포함하는 데이터를 요청하는 경우, 상기 적어도 두개의 키워드에서 각 키워드에 대응되는 ID의 집합을 논리 연산하여 연산 결과를 출력하는 단계;를 더 포함하되,
상기 사용자에게 제공하는 단계는,
상기 연산 결과의 비트 정보를 근거로 상기 데이터를 사용자에게 제공하는 것을 특징으로 하는 데이터관리방법.The method of claim 7,
Further comprising, when the user requests data including at least two keywords, logically calculating a set of IDs corresponding to each keyword from the at least two keywords and outputting a calculation result;
The step of providing to the user,
A data management method characterized by providing the data to the user based on the bit information of the result of the calculation.
상기 ID와 데이터를 매칭시켜 각각 저장하고, 상기 제1 데이터관리장치에서 처리된 비트 형태의 ID에 근거하여 상기 저장한 데이터를 검색하여 상기 사용자에게 상기 사용자의 요청에 대응되는 데이터를 제공하는 제2 데이터관리장치;를 포함하고,
상기 비트 정보의 개수(number)는 상기 저장된 데이터의 개수와 일치하는 것을 특징으로 하는 데이터관리시스템.A first data management apparatus for encrypting and storing a plurality of keywords and a set of IDs corresponding to each of the plurality of keywords, and processing IDs corresponding to a user's request in the form of bit information; And
A second that matches and stores the ID and data, and retrieves the stored data based on the bit-type ID processed by the first data management device and provides the user with data corresponding to the user's request. It includes a data management device;
The data management system, characterized in that the number of bit information (number) matches the number of stored data.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130052758 | 2013-05-09 | ||
KR1020130052758 | 2013-05-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140133383A KR20140133383A (en) | 2014-11-19 |
KR102131306B1 true KR102131306B1 (en) | 2020-07-07 |
Family
ID=52454063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130090463A KR102131306B1 (en) | 2013-05-09 | 2013-07-30 | Apparatus for M anaging Data, Method for Managing Data, System for Managing Data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102131306B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169321A1 (en) | 2008-12-30 | 2010-07-01 | Nec (China)Co., Ltd. | Method and apparatus for ciphertext indexing and searching |
WO2012095973A1 (en) * | 2011-01-13 | 2012-07-19 | 三菱電機株式会社 | Data processing device and data archiving device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100839220B1 (en) * | 2006-10-19 | 2008-06-19 | 고려대학교 산학협력단 | Method for searching encrypted database and System thereof |
KR101190059B1 (en) * | 2008-12-12 | 2012-10-16 | 한국전자통신연구원 | Method for data encryption and method for conjunctive keyword search of encrypted data |
-
2013
- 2013-07-30 KR KR1020130090463A patent/KR102131306B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169321A1 (en) | 2008-12-30 | 2010-07-01 | Nec (China)Co., Ltd. | Method and apparatus for ciphertext indexing and searching |
WO2012095973A1 (en) * | 2011-01-13 | 2012-07-19 | 三菱電機株式会社 | Data processing device and data archiving device |
Also Published As
Publication number | Publication date |
---|---|
KR20140133383A (en) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8533489B2 (en) | Searchable symmetric encryption with dynamic updating | |
CN110768787B (en) | Data encryption and decryption method and device | |
US20160344707A1 (en) | Encrypted query-based access to data | |
CN105678189B (en) | Data file encryption storage and retrieval system and method | |
US9021259B2 (en) | Encrypted database system, client terminal, encrypted database server, natural joining method, and program | |
CN104765848B (en) | What support result efficiently sorted in mixing cloud storage symmetrically can search for encryption method | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
JP4958246B2 (en) | Method, apparatus and system for fast searchable encryption | |
US9147079B2 (en) | Encrypted database system, client terminal, encrypted database server, natural joining method, and program | |
KR102449816B1 (en) | Apparatus for encryption and search and method thereof | |
CN104780161A (en) | Searchable encryption method supporting multiple users in cloud storage | |
CN107533813B (en) | Database system and database processing method | |
US20170262546A1 (en) | Key search token for encrypted data | |
WO2016045641A2 (en) | Data block storage method, data query method and data modification method | |
CN110765469B (en) | Efficient and robust dynamic searchable symmetric encryption method and system | |
EP2778953A1 (en) | Encoded-search database device, method for adding and deleting data for encoded search, and addition/deletion program | |
WO2014141802A1 (en) | Information processing device, information processing system, information processing method, and program | |
CN108777685B (en) | Method and apparatus for processing information | |
CN111026788A (en) | Homomorphic encryption-based multi-keyword ciphertext sorting and retrieving method in hybrid cloud | |
KR101979267B1 (en) | Encryption systems based on cloud storage and method thereof | |
CN104992124A (en) | Document safety access method for cloud storage environment | |
Lee et al. | A secure index management scheme for providing data sharing in cloud storage | |
US20190158269A1 (en) | Secure order preserving string compression | |
CN105279198A (en) | Data table storage method, data table modification method, data table query method and data table statistical method | |
KR20170122048A (en) | System and method for searching encrypted data using bloom filter and binary tree |
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 |