KR20180099310A - Apparatus and method for searching in searchable encryption system - Google Patents
Apparatus and method for searching in searchable encryption system Download PDFInfo
- Publication number
- KR20180099310A KR20180099310A KR1020170026599A KR20170026599A KR20180099310A KR 20180099310 A KR20180099310 A KR 20180099310A KR 1020170026599 A KR1020170026599 A KR 1020170026599A KR 20170026599 A KR20170026599 A KR 20170026599A KR 20180099310 A KR20180099310 A KR 20180099310A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- search
- index
- user terminal
- index table
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 검색 가능 암호 시스템에서의 검색 장치 및 방법에 관한 것으로, 특히 데이터 프라이버시 보호를 위한 암호 데이터에 대한 효율적인 데이터 검색을 제공하는 검색 가능 암호 시스템에서의 검색 장치 및 방법에 관한 것이다. The present invention relates to a search apparatus and method in a searchable cipher system, and more particularly, to a search apparatus and method in a searchable cipher system that provides effective data search for cipher data for data privacy protection.
본 발명은 한국전자통신연구원의 연구운영비지원사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 15ZS1500, 과제명: 암호화된 데이터베이스에서의 데이터 저장 및 검색을 위한 암호 원천 기술 개발].The present invention is derived from a research carried out by the Korea Electronics and Telecommunications Research Institute as a part of the research and operation support project [Task Control Number: 15ZS1500, Project Title: Development of Cryptographic Source Technology for Data Storage and Retrieval in Encrypted Database].
최근 클라우드 및 빅데이터 환경을 통한 데이터 활용이 점차 증가하면서 이를 통해 유통되는 사용자 데이터에 대한 프라이버시 유출 우려가 커지고 있다. 저장된 데이터에 암호화 기술 적용을 통해 데이터 프라이버시에 대한 보호가 가능하지만, 일반적인 데이터 암호화 기술을 적용하는 것은 클라우드 및 빅데이터 환경과 같이 데이터를 빈번하게 활용하는 환경에 현실적으로 적용이 힘들다. 일반적인 암호화 기법의 경우 암호화된 데이터에 대해 높은 기밀성 제공을 목표로 하기 때문에 암호화된 데이터를 직접 활용하는 것이 극히 제한되며 데이터를 활용하기 위해서는 전체 암호 데이터를 복호화하는 등의 비효율적인 과정이 요구된다. Recently, data usage through cloud and big data environment is gradually increasing, and there is increasing concern about privacy leakage of circulating user data. While it is possible to protect data privacy by applying encryption technology to stored data, it is difficult to apply general data encryption technology to an environment that frequently uses data such as cloud and big data environment. In the case of general encryption techniques, it is extremely limited to directly use encrypted data because it aims at providing high confidentiality to encrypted data. In order to utilize data, inefficient process such as decryption of entire encrypted data is required.
검색 가능 암호화 기술은 암호화된 데이터에 대한 검색 기능을 제공하기 위한 데이터 암호화 기술로, 암호화에 따른 데이터에 대한 기밀성과 동시에 검색을 통한 데이터 활용성을 동시에 제공하는 것을 목적으로 한다. 즉 검색 가능 암호화 기술은 외부 공격자뿐만 아니라 데이터를 저장/관리하는 데이터 서버 또한 잠재적인 공격자로 보고 암호화된 데이터 및 검색 인덱스에서부터 저장된 데이터에 대한 정보를 유추하기 어렵도록 설계하는 것이 매우 중요한 안전성 요구 조건이다. 이러한 이유로, 검색 인덱스 또한 사용자의 비밀정보를 이용한 암호화(또는 유사한 과정)를 통해 기밀성을 보장하게 된다.The searchable encryption technology is a data encryption technology for providing a search function for encrypted data. It aims at providing both confidentiality of data due to encryption and data utilization through retrieval at the same time. In other words, searchable encryption technology is a very important safety requirement to design not only an external attacker but also a data server storing / managing data as a potential attacker so that it is difficult to deduce information about stored data from encrypted data and search index . For this reason, the search index also ensures confidentiality through encryption (or a similar process) using the secret information of the user.
검색 가능 암호화 기술은 2000년대 초반 처음 제안되었으며, 이후 여러 연구를 거쳐 현재의 체계를 갖추게 되었다. 검색 가능 암호화 기술에서 각 데이터는 키워드의 집합으로 표현되며, 데이터에 대한 암호화와 별도로 데이터에 포함된 키워드를 기반으로 데이터 검색을 위한 검색 인덱스가 구성된다. 검색 인덱스는 데이터 암호화와 별도의 암호화 과정을 거쳐 암호화된 데이터와 함께 서버에 저장된다. 암호화된 데이터에 대한 검색을 위해서는 검색할 키워드와 비밀키로부터 '트랩도어(Trapdoor)'라는 특정 정보를 생성하여 서버에 전달한다. 서버는 검색 과정에서, 암호화된 데이터에 직접 접근하는 대신, 검색 인덱스와 트랩도어로부터 검색할 키워드가 포함된 데이터에 대한 정보를 확인한다. 즉, 검색 가능 암호화 기술은 검색 인덱스 생성 과정, 트랩도어 생성 과정, 그리고 서버에 의한 검색 과정으로 구체화될 수 있다. 검색 가능 암호화 기법은 모두 유사한 체계를 바탕으로 설계되고 있기 때문에 검색 인덱스의 생성/관리 방법 및 이를 통해 검색을 수행하는 방식으로 각 기술의 차이가 결정된다.Searchable encryption technology was first proposed in the early 2000s. In the searchable encryption technique, each data is represented by a set of keywords. In addition to encryption of data, a search index for data retrieval is configured based on the keywords included in the data. The search index is stored in the server together with the encrypted data through a separate encryption process from the data encryption. In order to search for encrypted data, specific information called 'Trapdoor' is generated from a keyword to be searched and a secret key to be transmitted to a server. In the search process, instead of directly accessing the encrypted data, the server confirms information about the data including the search index and the keyword to be searched from the trap door. That is, the searchable encryption technique can be embodied as a search index creation process, a trap door creation process, and a search process by a server. Since the searchable encryption techniques are all designed on the basis of a similar scheme, the difference of each technique is determined by the method of generating / managing the search index and the method of performing the search through the search index.
초기의 검색 가능 암호 시스템은 외부 및 내부 공격자로부터 저장된 데이터에 대한 기밀성을 제공하기 위한 체계적인 안전성 제공이 목표였으며, 공개키 암호화 기술에 기반한 검색 인덱스 생성 방법을 주로 사용하였다. 하지만, 공개키 방식의 인덱스 생성 방법은 각각의 데이터에 대한 인덱스를 개별적으로 생성하는 방법으로, 검색 과정에서 전달된 트랩도어와 각각의 검색 인덱스를 대조하는 과정이 요구되기 때문에 검색 시간은 전체 저장된 데이터의 양에 비례하게 되고, 따라서 대량의 데이터를 관리하는 환경에 적합하지 않다. 2006년 Curtmola 등은 링크드 체인(linked chain) 형태로 검색 인덱스를 구성하는 방법을 통해 전체 저장된 데이터의 양과 무관한 검색 시간을 제공하는 기법을 제안하여, 효율적인 검색 시간 제공을 목표로 링크드 체인 구조를 이용한 기법 설계가 활발히 진행되었다. 하지만, 링크드 체인 등과 같이 데이터 사이의 연관성을 바탕으로 검색 인덱스를 구성하는 방식은 기존 데이터가 삭제되거나 새로운 데이터가 추가되는 경우, 암호화되어 서버에 저장되어 있는 검색 인덱스에 수정 내용을 반영하는 것이 쉽지 않다. 이러한 이유로 동적으로 변화하는 데이터 활용 환경에서 효과적인 검색 성능을 제공하는 검색 가능 암호 시스템에 대한 요구가 커지고 있다. The initial searchable cryptosystem was intended to provide systematic security to provide confidentiality to stored data from external and internal attackers, and used a method of generating a search index based on public key cryptography. However, since the public key index generation method is a method of individually generating an index for each piece of data, a process of collating the trap door transmitted from the search process with each search index is required, And thus is not suitable for an environment for managing a large amount of data. In 2006, Curtmola et al. Proposed a technique to provide search time independent of the amount of stored data through a method of constructing a search index in the form of a linked chain. In order to provide an efficient search time, The technique design has been actively pursued. However, the method of constructing the search index based on the association between the data, such as the linked chain, is not easy to reflect the modification in the search index stored in the server when the existing data is deleted or new data is added . For this reason, there is a growing demand for searchable cryptosystems that provide effective search performance in dynamically changing data utilization environments.
본 발명이 해결하려는 과제는 동적으로 변화하는 데이터 활용 환경에서 암호 데이터에 대한 효과적인 검색 성능을 제공할 수 있는 검색 가능 암호 시스템에서의 검색 장치 및 방법을 제공하는 것이다. SUMMARY OF THE INVENTION It is an object of the present invention to provide a search apparatus and method in a searchable cryptographic system that can provide effective search performance for cryptographic data in a dynamically changing data utilization environment.
본 발명의 한 실시 예에 따르면, 검색 가능 암호 시스템에서 서버의 검색 방법이 제공된다. 검색 방법은 적어도 하나의 사용자 단말로부터 해당 자료에 대한 암호문과 상기 해당 자료에 포함된 키워드와 해당 자료의 식별자의 정보를 포함한 검색 인덱스를 수신하여 검색 인덱스 테이블에 저장하는 단계, 검색을 요청하는 사용자 단말로부터 검색할 자료의 키워드에 해당하는 트랩 도어를 수신하면, 상기 검색 인덱스 테이블과 상기 서버에서 구성한 재구성 인덱스 테이블을 이용하여 검색을 수행하는 단계, 그리고 상기 검색 인덱스 테이블로부터 상기 트랩 도어에 해당하는 자료의 식별자가 검색되면, 검색된 자료의 식별자에 대한 검색 인덱스를 재구성 인덱스 테이블에 추가하고 재구성하는 단계를 포함한다. According to an embodiment of the present invention, a search method of a server in a searchable cryptosystem is provided. The search method includes receiving a search index including at least one of a cipher text for the corresponding data, a keyword included in the corresponding data, and an identifier of the corresponding data from at least one user terminal and storing the search index in the search index table, Searching for a trap door corresponding to a keyword of a material to be searched using the search index table and a reconfiguration index table configured in the server, When the identifier is retrieved, adding a search index for the identifier of the retrieved data to the reorganization index table and reconstructing.
상기 검색 방법은 상기 검색 인덱스 테이블로부터 검색된 상기 트랩 도어에 해당하는 자료에 대한 검색 인덱스를 상기 검색 인덱스 테이블에서 삭제하는 단계를 더 포함할 수 있다. The retrieval method may further include deleting, from the retrieval index table, a retrieval index for data corresponding to the trap door retrieved from the retrieval index table.
상기 검색 방법은 상기 사용자 단말로부터 삭제하고자 하는 자료의 식별자를 수신하면, 상기 재구성 인덱스 테이블에서 해당 자료의 식별자에 해당하는 인덱스 및 암호문을 삭제하는 단계를 더 포함할 수 있다. The retrieval method may further include deleting an index and a ciphertext corresponding to the identifier of the corresponding data in the reconfiguration index table upon receiving the identifier of the data to be deleted from the user terminal.
상기 재구성하는 단계는 상기 검색된 자료에 대한 검색 인덱스를 추출하는 단계, 그리고 추출된 상기 검색 인덱스를 그대로 상기 재구성 인덱스 테이블에 추가하는 단계를 포함할 수 있다. The reconstructing step may include extracting a search index for the retrieved data, and adding the retrieved index to the reconstruction index table as it is.
상기 검색 방법은 새롭게 추가되는 자료에 대한 검색 인덱스를 사용자 단말로부터 수신하는 단계, 그리고 상기 새롭게 추가되는 자료에 대한 검색 인덱스를 상기 검색 인덱스 테이블에 추가하는 단계를 더 포함할 수 있다. The searching method may further include receiving a search index for newly added data from the user terminal, and adding a search index for the newly added data to the search index table.
상기 재구성하는 단계는 재구성한 인덱스를 상기 서버의 비밀키로 암호화하는 단계를 포함할 수 있다. The reconstructing may include encrypting the reconstructed index with the secret key of the server.
상기 수행하는 단계는 상기 트랩 도어에 해당하는 자료의 식별자를 상기 검색을 요청하는 사용자 단말로 전달하는 단계를 더 포함할 수 있다. The performing step may further include transmitting an identifier of the data corresponding to the trap door to the user terminal requesting the search.
본 발명의 다른 한 실시 예에 따르면, 검색 가능 암호 시스템에서 서버의 검색 장치가 제공된다. 검색 장치는 네트워크 인터페이스, 그리고 프로세서를 포함할 수 있다. 상기 네트워크 인터페이스는 사용자 단말과 인터페이스를 제공한다. 그리고 상기 프로세서는 적어도 하나의 사용자 단말로부터 해당 자료에 대한 암호문과 상기 해당 자료의 식별자 및 상기 해당 자료에 포함된 키워드의 정보를 포함한 검색 인덱스를 상기 네트워크 인터페이스를 통해 수신하면, 암호문과 검색 인덱스를 검색 인덱스 테이블에 저장하여 관리하고, 검색 인덱스 테이블로부터 검색된 자료의 식별자에 대한 검색 인덱스를 재구성한 인덱스를 재구성 인덱스 테이블에 추가하며, 검색을 요청한 사용자 단말로부터 수신한 트랩 도어를 토대로 상기 검색 인덱스 테이블과 상기 재구성 인덱스 테이블을 검색한다. According to another embodiment of the present invention, a search apparatus of a server in a searchable cryptosystem is provided. The search device may comprise a network interface, and a processor. The network interface provides an interface with a user terminal. When the processor receives the search index including at least one of the cipher text, the identifier of the corresponding data, and the keyword information included in the corresponding data from the at least one user terminal through the network interface, the processor searches the cipher text and the search index The search index table, the search index table, the search index table, and the search index table, and adds the index to the reorganization index table by reconstructing the search index for the identifier of the data retrieved from the search index table. Retrieve the reorganization index table.
상기 프로세서는 상기 검색 인덱스 테이블로부터 검색된 상기 트랩 도어에 해당하는 자료에 대한 인덱스를 상기 상기 검색 인덱스 테이블에서 삭제할 수 있다.The processor may delete an index for data corresponding to the trap door retrieved from the retrieval index table from the retrieval index table.
상기 프로세서는 상기 사용자 단말로부터 삭제하고자 하는 자료의 식별자를 상기 네트워크 인터페이스를 통해 수신하면, 상기 재구성 인덱스 테이블에서 상기 삭제하고자 하는 자료의 식별자에 해당하는 인덱스 및 암호문을 삭제할 수 있다. Upon receipt of an identifier of a data item to be deleted from the user terminal through the network interface, the processor may delete an index and a cipher text corresponding to the identifier of the data to be deleted from the reconfiguration index table.
상기 프로세서는 상기 검색된 자료에 대한 인덱스를 추출하여 그대로 상기 재구성 인덱스 테이블에서의 인덱스로 사용할 수 있다.The processor may extract an index of the retrieved data and use the retrieved index as an index in the reconstruction index table.
상기 프로세서는 새롭게 추가되는 자료에 대한 암호문과 검색 인덱스를 상기 사용자 단말로부터 네트워크 인터페이스를 통해 수신하면, 해당 암호문과 검색 인덱스를 상기 검색 인덱스 테이블에 추가할 수 있다. The processor may add the ciphertext and the search index to the search index table when receiving the ciphertext and the search index for the newly added data from the user terminal through the network interface.
상기 프로세서는 상기 재구성한 인덱스를 상기 서버의 비밀키로 암호화할 수 있다. The processor may encrypt the reconstructed index with the secret key of the server.
상기 트랩 도어는 상기 검색을 요청한 사용자 단말에 의하여 상기 사용자 단말의 비밀키와 검색할 자료의 키워드를 이용하여 생성될 수 있다. The trap door may be created using the secret key of the user terminal and the keyword of the data to be searched by the user terminal requesting the search.
본 발명의 실시 예에 의하면, 인덱스 재구성 방법을 통해 동적으로 변화하는 암호 데이터에 대한 효과적인 검색 및 인덱스 구성 방법을 제공할 수 있다.According to the embodiments of the present invention, it is possible to provide a method for effectively searching and indexing cryptographic data that changes dynamically through an index reconstruction method.
도 1은 본 발명의 실시 예에 따른 검색 가능 암호 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 사용자 단말에서 인덱스 및 암호화 단계를 수행하는 방법을 나타낸 흐름도이다.
도 3은 본 발명의 실시 예에 따른 사용자 단말에서 트랩 도어 생성 단계를 수행하는 방법을 나타낸 흐름도이다.
도 4는 본 발명의 실시 예에 따른 서버에서 검색 단계를 수행하는 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시 예에 따른 서버에서 인덱스 재배열 단계를 수행하는 방법을 나타낸 도면이다.
도 6은 본 발명의 실시 예에 따른 사용자 단말 및 서버에서 삭제 단계를 수행하는 방법을 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 검색 장치를 나타낸 도면이다. 1 is a diagram schematically showing a searchable cryptosystem according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a method of performing an indexing and encryption step in a user terminal according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating a method of performing a trap door generation step in a user terminal according to an exemplary embodiment of the present invention.
4 is a flowchart illustrating a method of performing a search step in a server according to an embodiment of the present invention.
5 is a diagram illustrating a method of performing an index rearrangement step in a server according to an embodiment of the present invention.
6 is a diagram illustrating a method for performing a deletion step in a user terminal and a server according to an embodiment of the present invention.
7 is a diagram illustrating a search apparatus according to an embodiment of the present invention.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
본 발명의 실시 예에서 사용한 용어는 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The terms used in the embodiments of the present invention are used to illustrate specific embodiments and are not intended to limit the present invention. The singular expressions include plural expressions unless the context clearly dictates otherwise.
또한 명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. Also, throughout the specification and claims, when a component is referred to as " comprising ", it means that it can include other components, rather than excluding other components .
이제 본 발명의 실시 예에 따른 검색 가능 암호 시스템에서의 검색 장치 및 방법에 대하여 도면을 참고로 하여 상세하게 설명한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A search apparatus and method in a searchable cryptosystem according to an embodiment of the present invention will now be described in detail with reference to the drawings.
도 1은 본 발명의 실시 예에 따른 검색 가능 암호 시스템을 개략적으로 나타낸 도면이다. 1 is a diagram schematically showing a searchable cryptosystem according to an embodiment of the present invention.
도 1을 참고하면, 검색 가능 암호 시스템은 검색 가능 암호 시스템은 기존의 암호 기술과 같이 암호화된 정보에 대한 안전성을 보장하면서 동시에 특정 키워드를 포함하는 정보를 검색할 수 있도록 한다.Referring to FIG. 1, the searchable cipher system allows the searchable cipher system to search for information including specific keywords, while securing the security of the encrypted information such as existing cipher text.
검색 가능 암호 시스템은 적어도 하나의 사용자 단말(100) 및 서버(200)를 포함한다. The searchable cryptographic system includes at least one user terminal (100) and a server (200).
검색 가능 암호 시스템에서 암호화의 대상인 데이터를 자료(document)라 부른다. 즉, 자료는 사용자가 숨기고 싶은 정보이며, 각각의 자료는 고유의 식별자 id를 가지고 있는 것으로 가정한다. 또한, 사용자가 자신이 원하는 자료를 검색하기 위한 정보를 키워드(keyword)라고 부른다. 일반적으로 자료는 그 자료에 포함된 키워드들의 집합으로 정의된다. 즉. t개의 키워드(k1, k2, …, kt)를 포함하고 있는 식별자 id를 가진 자료 M(id)는 수학식 1과 같이 표현될 수 있다. In the searchable cryptosystem, data that is the subject of encryption is called a document. That is, the data is the information that the user wants to hide, and each data is assumed to have a unique identifier id. In addition, information for a user to search for a desired data is called a keyword. In general, data is defined as a set of keywords contained in the data. In other words. the data M (id) having the identifier id including t keywords k1, k2, ..., kt can be expressed as Equation (1).
검색 가능 암호 시스템은 키 생성(key generation) 단계(S10), 인덱스 및 암호화(build index) 단계(S20), 트랩도어 생성(trapdoor generation) 단계(S30) 및 검색(search) 단계(S40)의 동작을 수행한다. 본 발명의 실시 예에 따른 검색 가능 암호 시스템은 인덱스 재배열(index rearrange) 단계(S50), 인덱스 추가(index addition) 단계(S60) 및 삭제(deletion) 단계(S70, S80)를 수행할 수 있다. The searchable cryptographic system includes a key generation step S10, an index and a build index step S20, a trapdoor generation step S30, and a search step S40 . The searchable cryptosystem according to the embodiment of the present invention may perform an index rearrangement step S50, an index addition step S60 and a deletion step S70 and S80 .
키 생성 단계(S10)는 사용자 단말(100)이 앞으로 사용할 검색 가능 암호 시스템을 준비하는 단계이다. 키 생성 단계에서 각 사용자 단말(100)은 자신의 비밀키를 생성하여 저장하고, 검색 가능 암호 시스템의 공개 정보는 서버(200)나 다른 사용자 단말들에게 공개한다. 또한 사용자 단말(100)은 검색 인덱스 테이블을 초기화하고, 서버(200)는 재구성 인덱스 테이블을 초기화한다. The key generation step S10 is a step of preparing the searchable encryption system to be used by the
인덱스 및 암호화 단계(S20)는 주어진 자료에 대해 암호화하여 암호문을 생성하고, 해당 자료에 대한 검색을 위한 검색 인덱스를 생성한다. The index and encryption step (S20) encrypts the given data to generate a cipher text, and generates a search index for searching the corresponding data.
도 2는 본 발명의 실시 예에 따른 사용자 단말에서 인덱스 및 암호화 단계를 수행하는 방법을 나타낸 흐름도이다. FIG. 2 is a flowchart illustrating a method of performing an indexing and encryption step in a user terminal according to an exemplary embodiment of the present invention.
도 2를 참고하면, 인덱스 및 암호화 단계(S10)에서 사용자 단말(100)은 주어진 자료에 대해 자료 자체를 사용자 단말(100)의 비밀키로 암호화하여 암호문을 생성하고(S210), 검색을 위해 자료에 포함된 키워드의 정보를 포함한 검색 인덱스를 생성한다(S220). 암호문과 검색 인덱스는 서버(200)로 전달되고(S230), 서버(200)는 사용자 단말(100)에 의해 암호화된 암호문과 사용자 단말(100)에 의해 생성된 검색 인덱스를 저장한다(S240). 이때 서버(200)는 검색 인덱스를 검색 인덱스 테이블에 저장 및 관리한다. Referring to FIG. 2, in the index and encryption step S10, the
트랩 도어 생성 단계(S30)는 사용자 단말(100)에 의해서 실행된다. The trap door creation step (S30) is executed by the user terminal (100).
도 3은 본 발명의 실시 예에 따른 사용자 단말에서 트랩 도어 생성 단계를 수행하는 방법을 나타낸 흐름도이다. 3 is a flowchart illustrating a method of performing a trap door generation step in a user terminal according to an exemplary embodiment of the present invention.
도 3을 참고하면, 사용자 단말(100)은 사용자 단말(100)의 비밀키와 검색할 키워드를 이용하여, 검색할 키워드에 해당하는 트랩 도어를 생성한다(S310). 트랩 도어는 오직 사용자 단말(100)의 비밀키를 이용하여 생성이 가능하다. 예를 들어, 사용자 단말(100)은 키워드를 해쉬하여 얻은 해쉬 값을 사용자 단말(100)의 비밀키로 암호화하여 트랩 도어를 생성할 수 있다. 사용자 단말(100)은 트랩 도어를 서버(200)로 전달하면서 검색을 요청한다(S320). Referring to FIG. 3, the
검색 단계(S40)는 주어진 트랩 도어에 대응하는 자료를 찾는 단계로 서버(200)에 의해서 실행된다. 본 발명의 실시 예에 따르면, 서버(200)는 사용자 단말(100)이 전달한 트랩 도어와 검색 인덱스 테이블에 저장된 인덱스를 이용하여 검색을 수행하고, 자체적으로 구성한 재구성 인덱스 테이블의 재구성 인덱스를 이용하여 추가적인 검색을 수행한다. The search step S40 is performed by the
도 4는 본 발명의 실시 예에 따른 서버에서 검색 단계를 수행하는 방법을 나타낸 흐름도이다.4 is a flowchart illustrating a method of performing a search step in a server according to an embodiment of the present invention.
도 4를 참고하면, 서버(200)는 사용자 단말(100)로부터 트랩 도어를 수신하면(S410), 수신한 트랩 도어와 검색 인덱스 테이블에 저장된 인덱스를 이용하여, 검색할 키워드와 일치하는 자료가 있는지 검색을 수행한다(S420). 4, when the
또한 서버(200)는 수신한 트랩 도어와 재구성 인덱스 테이블의 재구성 인덱스를 이용하여, 검색할 키워드와 일치하는 자료가 있는지 검색을 추가적으로 수행한다(S430). 재구성 인덱스에 대한 검색은 사용자 단말(100)이 전달한 트랩 도어 이외에 서버(200)의 비밀키가 요구된다. 재구성 인덱스는 후술하는 바와 같이 서버(200)의 비밀키를 통해 암호화되어 재구성 인덱스 테이블에 저장되므로, 서버(200)는 재구성 인덱스 테이블의 재구성 인덱스를 서버(200)의 비밀키를 이용해 복호화한 후 검색을 수행할 수 있다. In operation S430, the
검색의 결과로 서버(100)는 검색할 트랩 도어와 일치하는 자료의 식별자(identifier)를 사용자 단말(100)에게 전달한다(S440). 사용자 단말(100)은 검색 결과로 자료의 식별자를 제공받으며, 이후 검색된 자료의 식별자 등을 이용하여 실제 자료의 암호문에 대한 다운로드 등의 데이터 처리를 수행한다. As a result of the search, the
인덱스 재배열 단계(S50)는 서버(200)가 수행한 검색 결과에 따라 인덱스를 재배열 또는 재구성하는 단계이다. The index rearrangement step S50 is a step of rearranging or reorganizing the index according to the search result performed by the
도 5는 본 발명의 실시 예에 따른 서버에서 인덱스 재배열 단계를 수행하는 방법을 나타낸 도면이다. 5 is a diagram illustrating a method of performing an index rearrangement step in a server according to an embodiment of the present invention.
도 5를 참고하면, 서버(200)는 검색된 자료의 식별자에 대한 검색 인덱스를 추출하고(S510), 추출한 검색 인덱스를 재구성 인덱스 테이블에 추가하고 검색 인덱스를 재구성한다(S520). 이 경우, 서버(200)가 수행하는 인덱스 재구성 방법은 사용자 단말(100)이 제공한 검색 인덱스의 구성에 따라 달라질 수 있다. 서버(200)는 검색된 자료의 식별자에 대한 검색 인덱스를 그대로 재구성 인덱스로 사용할 수 있다. 또는 서버(200)는 별도의 알고리즘을 사용하여 검색된 자료의 식별자에 대한 검색 인덱스에 연관되는 재구성 인덱스를 생성할 수 있다. Referring to FIG. 5, the
서버(200)는 재구성 인덱스를 서버(200)의 비밀키를 통해 독자적으로 암호화하여 관리한다(S530). 서버(200)에 저장된 검색 인덱스 중에서 사용자 단말(100)의 검색 요청에 의해서 검색된 자료의 식별자에 대한 검색 인덱스에 대해서는 서버(200)에 정보가 일부 알려지기 때문에 검색되지 않은 다른 인덱스와 동일한 수준의 안전성을 제공할 필요가 없다. 따라서 검색된 검색 인덱스를 토대로 서버(200)가 생성한 재구성 인덱스를 재구성 인덱스 테이블에 추가한다. 이때 서버(200)는 재구성 인덱스에 대한 추가 및 수정 과정을 서버(200)의 비밀키를 통해 수행함으로써, 보다 효과적인 인덱스 관리가 가능하게 된다. 또한 서버(200)는 인덱스 재구성 과정에서 추가적인 정보를 포함하여 기본적인 키워드 검색 외의 부가 기능 검색이 가능한 기법을 쉽게 구성할 수 있다. The
다음, 서버(200)는 검색 인덱스 테이블에서 검색된 자료의 식별자에 대한 검색 인덱스를 삭제한다(S540). Next, the
인덱스 추가 단계(S60)는 동적으로 추가되는 자료에 대한 암호화를 수행하고 검색 인덱스 테이블에 새로운 검색 인덱스를 추가하는 단계이다. 서버(200)는 사용자 단말(100)이 제공하는 검색 인덱스를 검색 인덱스 테이블에 추가한다. 여기서, 추가하는 방법은 검색 인덱스의 구성 방법에 따라 결정된다. The index addition step (S60) is a step of performing encryption on dynamically added data and adding a new search index to the search index table. The
마지막으로, 삭제 단계(S70, S80)는 자료 및 검색 인덱스를 삭제하는 단계이다. Finally, the deleting step (S70, S80) is a step of deleting the data and the search index.
도 6은 본 발명의 실시 예에 따른 사용자 단말 및 서버에서 삭제 단계를 수행하는 방법을 나타낸 도면이다. 6 is a diagram illustrating a method for performing a deletion step in a user terminal and a server according to an embodiment of the present invention.
도 6을 참고하면, 사용자 단말(100)은 검색된 자료의 식별자를 통해 저장된 자료에 대한 삭제를 수행한다(S610).Referring to FIG. 6, the
사용자 단말(100)은 삭제할 자료의 식별자를 서버(200)로 전달한다(S620).The
서버(200)는 사용자 단말(100)로부터 삭제할 자료의 식별자를 수신하면, 재구성 인덱스 테이블에서 해당 자료의 식별자에 해당하는 재구성 인덱스를 모두 삭제하고 해당 자료의 식별자에 해당하는 암호문을 삭제한다(S630, S640). Upon receiving the identifier of the data to be deleted from the
검색 인덱스는 사용자 단말(100)에서 암호화되어 서버(200)에 전달되므로, 서버(200)는 검색 인덱스에서 자료의 식별자를 구별할 수가 없다. 따라서, 서버(200)에서 해당 자료의 식별자에 해당하는 검색 인덱스 및 암호문을 삭제하기 위해서는 트랩도어 등의 추가 정보 및 추가 연산이 요구되기 때문에, 삭제 동작이 어려울 수 있다. 그러나 본 발명의 실시 예에 따르면, 서버(200)가 서버(200)의 비밀키를 이용하여 재구성 인덱스를 암호화함으로써, 삭제할 자료의 식별자만 주어지면 재구성 인덱스 테이블의 재구성 인덱스 중에서 주어진 식별자에 해당하는 재구성 인덱스를 검색할 수 있으며, 이에 따라 해당 식별자에 해당하는 재구성 인덱스를 삭제하는 것이 용이해진다. Since the search index is encrypted in the
이와 같이, 본 발명의 실시 예에 따르면, 검색 가능 암호 시스템은 인덱스 재배열 단계(S50)를 통해서 검색된 자료의 식별자에 대한 검색 인덱스를 검색 인덱스 테이블에서 삭제하고, 검색된 자료의 식별자에 대한 검색 인덱스를 재구성 인덱스 테이블에 추가하고 재구성하여 관리함으로써, 사용자 단말(100)로부터 삭제할 자료의 식별자를 수신하면, 재구성 인덱스 테이블에서 해당 자료의 식별자를 모두 삭제하고, 해당 자료의 식별자에 해당하는 암호문을 용이하게 삭제할 수 있다. As described above, according to the embodiment of the present invention, the searchable cryptographic system deletes the search index for the identifier of the searched data from the search index table through the index rearrangement step (S50), and searches the search index for the identifier of the searched data When the identifier of the data to be deleted is received from the
도 7은 본 발명의 실시 예에 따른 검색 장치를 나타낸 도면이다. 7 is a diagram illustrating a search apparatus according to an embodiment of the present invention.
도 7을 참고하면, 검색 장치(700)는 적어도 하나의 프로세서(710), 메모리(720), 저장 장치(730), 입출력(input/output, I/O) 인터페이스(740) 및 네트워크 인터페이스(750)를 포함한다.7, the
프로세서(710)는 중앙 처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있다.The
메모리(720)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다. The
저장 장치(730)는 하드 디스크(hard disk), CD-ROM(compact disk read only memory), CD-RW(CD rewritable), DVD-ROM(digital video disk ROM), DVD-RAM, DVD-RW 디스크, 블루레이(blu-ray) 디스크 등의 광학 디스크, 플래시 메모리, 다양한 형태의 RAM과 같은 영구 또는 휘발성 저장 장치로 구현될 수 있다. The
I/O 인터페이스(740)는 프로세서(710) 및/또는 메모리(720)가 저장 장치(730)에 접근할 수 있도록 한다. 또한 I/O 인터페이스(740)는 서버(200)의 관리자와 인터페이스를 제공할 수 있다. I / O interface 740 allows
네트워크 인터페이스(750)는 사용자 단말(100)과 인터페이스를 제공한다. The network interface 750 provides an interface with the
프로세서(710)는 도 1 내지 도 6에서 설명한 서버(200)의 검색 단계(S40), 인덱스 재배열 단계(S50) 및 삭제 단계(S70)의 기능을 수행할 수 있다. 프로세서(710)는 서버(200)의 검색 단계(S40), 인덱스 재배열 단계(S50) 및 삭제 단계(S70)의 기능을 구현하기 위한 프로그램 명령을 메모리(720)에 로드시켜, 도 1 내지 도 6을 참고로 하여 설명한 동작이 수행되도록 제어할 수 있다. 그리고 이러한 프로그램 명령은 저장 장치(730)에 저장되어 있을 수 있으며, 또는 네트워크로 연결되어 있는 다른 시스템에 저장되어 있을 수 있다. The
아래에서는 링크드 리스트(linked list)를 이용한 인덱스 구성의 일 예를 통해 구체적으로 본 발명의 실시 예에 대하여 설명한다. 다만, 본 발명의 실시 예는 링크드 리스트를 이용한 인덱스 구성에 의해서 한정되지 않는다. Hereinafter, an embodiment of the present invention will be described in detail with reference to an example of index configuration using a linked list. However, the embodiment of the present invention is not limited to the index structure using the linked list.
먼저, 키 생성 단계(S10)에서 사용자 단말(100)은 임의의 키 SK를 선택하여 사용자 단말(100)의 비밀키로 설정하고, 검색 인덱스 테이블을 초기화하여 서버(200)에 저장한다. 여기에서 검색 인덱스 테이블의 크기는 저장할 자료의 양에 의해 결정될 수 있다. 또한 사용자 단말(100)은 각 키워드에 대한 암호화 키 및 검색 인덱스의 위치 정보를 포함하는 링크(link)인 <a, ek>를 저장할 키워드 테이블을 생성한다. 키워드 테이블은 초기에 모두 빈 상태(empty)로 설정된다. 그리고 서버(200)는 재구성 인덱스 테이블을 초기화한다. First, in the key generation step S10, the
본 발명의 실시 예에서 각각의 자료는 유일하게 구별 가능한 자료 식별자를 가지고 있는 것으로 가정한다. 또한 각 자료는 수학식 1과 같이 그 자료에 포함된 키워드들의 집합으로 표현된다. It is assumed in the embodiment of the present invention that each piece of data has a unique distinguishable data identifier. Also, each data is represented by a set of keywords included in the data as shown in Equation (1).
인덱스 및 암호화 단계(S20)에서 사용자 단말(100)은 각 자료로부터 키워드-자료 식별자의 쌍을 추출하고, 각 키워드-자료의 식별자의 쌍으로부터 인덱스를 생성한다. 즉 {k1, k2, …, kt}의 키워드로 구성된 자료 M(id)로부터 사용자 단말(100)은 <k1-id>, <k2-id>, …, <kt-id>의 t개의 키워드-자료 식별자의 쌍을 추출할 수 있다. 사용자 단말(100)은 키워드-자료 식별자의 쌍 <k-id>가 주어지면, 우선 서버(200)로부터 검색 인덱스 테이블에서 비어있는 노드의 주소인 a를 제공 받고, 키워드 테이블에서 키워드 k에 해당하는 링크 정보인 <a', ek'>를 확인한다, 링크가 비어 있는 경우 링크에 'empty' 정보를 저장한다. 사용자 단말(100)은 임의의 암호화키 ek를 선택한 후, (id, 링크)를 ek로 암호화하여 Encek(id, 링크)를 생성하고, Encek(id, 링크)를 서버(200)로 전달하여, 검색 인덱스 테이블의 a번째 노드에 저장한다. 또한 사용자 단말(100)은 키워드 테이블에서 키워드 k에 해당하는 정보를 새로운 링크인 <a, ek>로 변경한다. 사용자 단말(100)은 저장할 자료를 비밀키 SK로 암호화 하여 서버(200)에 전송한다. In the index and encryption step (S20), the user terminal (100) extracts a pair of keyword-data identifiers from each piece of data and creates an index from the pair of identifiers of each piece of keyword-data. That is, {k1, k2, ... (k1-id), < k2-id >, ...) from the data M (id) , <kt-id> can be extracted. When a pair of keyword-data identifier <k-id> is given to the
사용자 단말(100)은 저장할 모든 자료에 대해 각각 상기 인덱스 및 암호화 단계에 해당하는 과정을 수행하여 검색 인덱스 및 암호문을 생성하여 서버(200)에 전달한다. 이렇게 하여, 사용자 단말(100)이 제공해준 검색 인덱스가 서버(200)의 검색 인덱스 테이블에 저장된다. The
트랩 도어 생성 단계(S30)에서, 사용자 단말(100)은 검색하고자 하는 키워드 k에 대해 키워드 테이블에서 키워드 k에 해당하는 링크 정보 <a, ek>를 확인한다. 또한 사용자 단말(100)은 해쉬 함수를 이용하여 키워드 k에 대한 해쉬 값 H(k)를 생성하고, 해쉬 값 H(k)을 사용자 단말(100)의 비밀키로 암호화한 후, 암호화된 해쉬 값 HSK(k)과 링크 정보 <a, ek>를 트랩 도어로서 서버(200)에 전달하면서 검색을 요청한다. In the trapdoor generation step S30, the
검색 단계(S40)에서, 서버(200)는 사용자 단말(100)이 전달한 트랩 도어에 대해 다음과 같은 검색을 수행한다. 서버(200)는 우선 주어진 링크 정보 <a, ek>에 대해서 검색 인덱스 테이블의 a번째 노드로부터 시작되는 링크드 리스트에 포함된 모든 자료의 식별자 id를 수집한다. ek는 링크드 리스트의 첫 노드를 복호화하는 키로 사용된다. 또한 서버(200)는 자신이 관리하는 재구성 인덱스 테이블에서 HSK(k)에 해당하는 자료 식별자 id를 서버(200)의 비밀키로 복호화하여 링크드 리스트에서 수집된 자료 식별자 id와 함께 검색 결과로 사용자 단말(100)에게 제공한다. In the search step S40, the
사용자 단말(100)은 검색 결과를 제공받은 이후, 검색을 수행한 키워드 k에 해당하는 키워드 테이블의 값을 'empty'로 수정한다. After receiving the search result, the
인덱스 재배열 단계(S50)에서, 서버(200)는 트랩 도어로부터 검색된 검색 결과에 해당하는 자료의 식별자 id를 모두 수집하고 서버(200)의 비밀키로 암호화하여 HSK(k)에 해당하는 재구성 인덱스 테이블에 추가한다. In index rearrangement step (S50), the
본 예시에서는 단순 키워드 검색을 지원하는 경우로 한정하고, 재구성 인덱스의 구성 과정을 단순 암호화 기법 적용으로 설명하였으나, 추가적인 부가 검색 기능을 제공하기 위한 별도의 인덱스 구성 또한 가능하다. 또한 서버(200)는 검색 과정에서 확인된 링크드 리스트의 모든 노드를 삭제한다. In this example, the case where the simple keyword search is supported, and the process of configuring the reorganization index is explained by applying the simple encryption technique. However, a separate index configuration for providing an additional search function is also possible. In addition, the
인덱스 추가 단계(S60)는 사용자 단말(100)에서의 인덱스 및 암호화 단계와 동일하다. 즉 추가 단계에서 사용자 단말(100)은 새로 추가되는 자료를 암호화하고 인덱스를 생성하여 서버(200)에 제공한다. The index addition step (S60) is the same as the index and encryption step in the user terminal (100). That is, in the additional step, the
삭제 단계(S70, S80)에서, 사용자 단말(100)은 검색된 자료에 대해서 삭제를 수행하며, 삭제할 자료의 식별자 id를 서버(200)에 제공하면 서버(200)는 재구성 인덱스 테이블에서 해당 자료의 식별자 id를 모두 삭제하고 자료의 식별자 id에 해당하는 암호문을 삭제한다. In the deletion step (S70, S80), the
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.
Claims (14)
적어도 하나의 사용자 단말로부터 해당 자료에 대한 암호문과 상기 해당 자료에 포함된 키워드와 해당 자료의 식별자의 정보를 포함한 검색 인덱스를 수신하여 검색 인덱스 테이블에 저장하는 단계,
검색을 요청하는 사용자 단말로부터 검색할 자료의 키워드에 해당하는 트랩 도어를 수신하면, 상기 검색 인덱스 테이블과 상기 서버에서 구성한 재구성 인덱스 테이블을 이용하여 검색을 수행하는 단계, 그리고
상기 검색 인덱스 테이블로부터 상기 트랩 도어에 해당하는 자료의 식별자가 검색되면, 검색된 자료의 식별자에 대한 검색 인덱스를 재구성 인덱스 테이블에 추가하고 재구성하는 단계
를 포함하는 검색 방법. A search method of a server in a searchable cryptosystem,
Receiving, from at least one user terminal, a search index including a cipher text for the corresponding data, a keyword included in the corresponding data, and an identifier of the corresponding data, and storing the received search index in a search index table;
Performing a search using the search index table and a reconfiguration index table configured in the server when a trap door corresponding to a keyword of a data to be searched is received from a user terminal requesting the search,
If an identifier of the data corresponding to the trap door is retrieved from the retrieval index table, adding a retrieval index for the identifier of the retrieved data to the reorganization index table and reconstructing
/ RTI >
상기 검색 인덱스 테이블로부터 검색된 상기 트랩 도어에 해당하는 자료에 대한 검색 인덱스를 상기 검색 인덱스 테이블에서 삭제하는 단계
를 더 포함하는 검색 방법. The method of claim 1,
A step of deleting, from the search index table, a search index for data corresponding to the trap door searched from the search index table
Further comprising:
상기 사용자 단말로부터 삭제하고자 하는 자료의 식별자를 수신하면, 상기 재구성 인덱스 테이블에서 해당 자료의 식별자에 해당하는 인덱스 및 암호문을 삭제하는 단계
를 더 포함하는 검색 방법.3. The method of claim 2,
Upon receipt of an identifier of a data item to be deleted from the user terminal, deleting an index and a ciphertext corresponding to the identifier of the corresponding data item in the reconfiguration index table
Further comprising:
상기 재구성하는 단계는
상기 검색된 자료에 대한 검색 인덱스를 추출하는 단계, 그리고
추출된 상기 검색 인덱스를 그대로 상기 재구성 인덱스 테이블에 추가하는 단계를 포함하는 검색 방법.The method of claim 1,
The reconstructing step
Extracting a search index for the searched data, and
And adding the extracted search index to the reconstruction index table as it is.
새롭게 추가되는 자료에 대한 검색 인덱스를 사용자 단말로부터 수신하는 단계, 그리고
상기 새롭게 추가되는 자료에 대한 검색 인덱스를 상기 검색 인덱스 테이블에 추가하는 단계
를 더 포함하는 검색 방법.The method of claim 1,
Receiving a search index for newly added data from a user terminal; and
Adding a search index for the newly added data to the search index table
Further comprising:
상기 재구성하는 단계는 재구성한 인덱스를 상기 서버의 비밀키로 암호화하는 단계를 포함하는 검색 방법. The method of claim 1,
Wherein the reconstructing comprises encrypting the reconstructed index with a secret key of the server.
상기 수행하는 단계는 상기 트랩 도어에 해당하는 자료의 식별자를 상기 검색을 요청하는 사용자 단말로 전달하는 단계
를 더 포함하는 검색 방법. The method of claim 1,
Wherein the step of performing the step comprises transmitting an identifier of the data corresponding to the trap door to the user terminal requesting the search
Further comprising:
사용자 단말과 통신하는 네트워크 인터페이스, 그리고
적어도 하나의 사용자 단말로부터 해당 자료에 대한 암호문과 상기 해당 자료의 식별자 및 상기 해당 자료에 포함된 키워드의 정보를 포함한 검색 인덱스를 상기 네트워크 인터페이스를 통해 수신하면, 암호문과 검색 인덱스를 검색 인덱스 테이블에 저장하여 관리하고, 검색 인덱스 테이블로부터 검색된 자료의 식별자에 대한 검색 인덱스를 재구성한 인덱스를 재구성 인덱스 테이블에 추가하며, 검색을 요청한 사용자 단말로부터 수신한 트랩 도어를 토대로 상기 검색 인덱스 테이블과 상기 재구성 인덱스 테이블을 검색하는 프로세서
를 포함하는 검색 장치. A search apparatus of a server in a searchable cryptosystem,
A network interface for communicating with the user terminal, and
When a search index including at least one of a ciphertext for the corresponding data, an identifier of the corresponding data and information of keywords included in the corresponding data is received from the at least one user terminal through the network interface, the ciphertext and the search index are stored in the search index table The search index table and the reconfiguration index table are managed based on the trap door received from the user terminal requesting the search, and the search index table is added to the reorganization index table. Processor to search
.
상기 프로세서는 상기 검색 인덱스 테이블로부터 검색된 상기 트랩 도어에 해당하는 자료에 대한 인덱스를 상기 상기 검색 인덱스 테이블에서 삭제하는 검색 장치.9. The method of claim 8,
Wherein the processor deletes, from the search index table, an index for data corresponding to the trap door retrieved from the search index table.
상기 프로세서는 상기 사용자 단말로부터 삭제하고자 하는 자료의 식별자를 상기 네트워크 인터페이스를 통해 수신하면, 상기 재구성 인덱스 테이블에서 상기 삭제하고자 하는 자료의 식별자에 해당하는 인덱스 및 암호문을 삭제하는 검색 장치.The method of claim 9,
Wherein the processor deletes an index and a cipher text corresponding to an identifier of the data to be deleted from the reconfiguration index table when receiving an identifier of a data to be deleted from the user terminal through the network interface.
상기 프로세서는 상기 검색된 자료에 대한 인덱스를 추출하여 그대로 상기 재구성 인덱스 테이블에서의 인덱스로 사용하는 검색 장치.9. The method of claim 8,
Wherein the processor extracts an index of the retrieved data and uses the extracted index as an index in the reconstruction index table.
상기 프로세서는 새롭게 추가되는 자료에 대한 암호문과 검색 인덱스를 상기 사용자 단말로부터 네트워크 인터페이스를 통해 수신하면, 해당 암호문과 검색 인덱스를 상기 검색 인덱스 테이블에 추가하는 검색 장치. 9. The method of claim 8,
Wherein the processor adds a corresponding ciphertext and a search index to the search index table when receiving a ciphertext and a search index for newly added data through the network interface from the user terminal.
상기 프로세서는 상기 재구성한 인덱스를 상기 서버의 비밀키로 암호화하는 검색 장치. 9. The method of claim 8,
And the processor encrypts the reconstructed index with the secret key of the server.
상기 트랩 도어는 상기 검색을 요청한 사용자 단말에 의하여 상기 사용자 단말의 비밀키와 검색할 자료의 키워드를 이용하여 생성되는 검색 장치.9. The method of claim 8,
Wherein the trap door is generated using a secret key of the user terminal and a keyword of a data to be searched by the user terminal requesting the search.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170026599A KR20180099310A (en) | 2017-02-28 | 2017-02-28 | Apparatus and method for searching in searchable encryption system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170026599A KR20180099310A (en) | 2017-02-28 | 2017-02-28 | Apparatus and method for searching in searchable encryption system |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180099310A true KR20180099310A (en) | 2018-09-05 |
Family
ID=63594353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170026599A KR20180099310A (en) | 2017-02-28 | 2017-02-28 | Apparatus and method for searching in searchable encryption system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180099310A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115688141A (en) * | 2022-11-07 | 2023-02-03 | 东莞理工学院 | Personal information splitting desensitization storage and reconstruction method and system |
-
2017
- 2017-02-28 KR KR1020170026599A patent/KR20180099310A/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115688141A (en) * | 2022-11-07 | 2023-02-03 | 东莞理工学院 | Personal information splitting desensitization storage and reconstruction method and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
US20130046974A1 (en) | Dynamic symmetric searchable encryption | |
Awad et al. | Chaotic searchable encryption for mobile cloud storage | |
WO2018122287A1 (en) | Method and system for search pattern oblivious dynamic symmetric searchable encryption | |
JP6449093B2 (en) | Concealed database system and concealed data management method | |
CN104780161A (en) | Searchable encryption method supporting multiple users in cloud storage | |
CN110457915B (en) | Efficient searchable symmetric encryption method and system with forward and backward security | |
US8799677B2 (en) | Encrypted search database device, encrypted search data adding/deleting method and adding/deleting program | |
KR101979267B1 (en) | Encryption systems based on cloud storage and method thereof | |
WO2018047698A1 (en) | Encoded message retrieval method, message transmission/reception system, server, terminal, and program | |
US10440523B2 (en) | Communication control device, communication device, and computer program product for managing a group of devices | |
CN110765469B (en) | Efficient and robust dynamic searchable symmetric encryption method and system | |
Handa et al. | A cluster based multi-keyword search on outsourced encrypted cloud data | |
Peng et al. | LS-RQ: A lightweight and forward-secure range query on geographically encrypted data | |
US20150188785A1 (en) | Communication control device, communication device, and computer program product | |
WO2014141802A1 (en) | Information processing device, information processing system, information processing method, and program | |
KR20180099310A (en) | Apparatus and method for searching in searchable encryption system | |
EP3953848A1 (en) | Methods for encrypting and updating virtual disks | |
JP7217844B1 (en) | CONFIDENTIAL SEARCH SYSTEM AND CONFIDENTIAL SEARCH METHOD | |
CN114995949A (en) | Container mirror image construction method and device | |
KR101590270B1 (en) | Cloud service providers for storing data deduplication | |
CN113609077A (en) | File retrieval method, system, storage medium and equipment | |
JP6467091B1 (en) | Information processing apparatus, information processing program, and information processing method | |
CN111602127B (en) | Data management device, data management method, and computer-readable storage medium | |
JP6493402B2 (en) | Addition device, deletion device, addition request device, data search system, data search method, and computer program |