KR20180099310A - Apparatus and method for searching in searchable encryption system - Google Patents

Apparatus and method for searching in searchable encryption system Download PDF

Info

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
Application number
KR1020170026599A
Other languages
Korean (ko)
Inventor
조남수
김건우
윤택영
장구영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020170026599A priority Critical patent/KR20180099310A/en
Publication of KR20180099310A publication Critical patent/KR20180099310A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting 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

In a searchable encryption system, a server receives a cipher text for corresponding data from at least one user terminal and a search index including a keyword included in the corresponding data and information of an identifier of the corresponding data and stores them in a search index table. When receiving a trap door corresponding to the keyword of data to be searched from a user terminal requesting a search, the server performs searching using the search index table and a reconstruction index table configured in the server and, when the identifier of the data corresponding to the trap door is searched from the search index table, reconstructs the search index for the identifier of the retrieved data and adds them to the reconstruction index table. It is possible to provide effective search performance for the data.

Description

검색 가능 암호 시스템에서의 검색 장치 및 방법{APPARATUS AND METHOD FOR SEARCHING IN SEARCHABLE ENCRYPTION SYSTEM}[0001] APPARATUS AND METHOD FOR SEARCHING IN SEARCHABLE ENCRYPTION SYSTEM [0002]

본 발명은 검색 가능 암호 시스템에서의 검색 장치 및 방법에 관한 것으로, 특히 데이터 프라이버시 보호를 위한 암호 데이터에 대한 효율적인 데이터 검색을 제공하는 검색 가능 암호 시스템에서의 검색 장치 및 방법에 관한 것이다. 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).

Figure pat00001
Figure pat00001

검색 가능 암호 시스템은 키 생성(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 user terminal 100 in the future. In the key generation step, each user terminal 100 generates and stores its own secret key, and discloses the public information of the searchable encryption system to the server 200 and other user terminals. Also, the user terminal 100 initializes the search index table, and the server 200 initializes the reconfiguration index table.

인덱스 및 암호화 단계(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 user terminal 100 generates a cipher text by encrypting the data itself with the secret key of the user terminal 100 for a given data (S210) A search index including information of the included keyword is generated (S220). The cipher text and the search index are transmitted to the server 200 at step S230 and the server 200 stores the cipher text encrypted by the user terminal 100 and the search index generated by the user terminal 100 at step S240. At this time, the server 200 stores and manages the search index in the search index table.

트랩 도어 생성 단계(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 user terminal 100 generates a trap door corresponding to a keyword to be searched using the secret key of the user terminal 100 and the keyword to be searched (S310). The trap door can only be created using the secret key of the user terminal 100. For example, the user terminal 100 may generate a trap door by encrypting the hash value obtained by hashing the keyword with the secret key of the user terminal 100. [ The user terminal 100 transmits a trap door to the server 200 and requests a search (S320).

검색 단계(S40)는 주어진 트랩 도어에 대응하는 자료를 찾는 단계로 서버(200)에 의해서 실행된다. 본 발명의 실시 예에 따르면, 서버(200)는 사용자 단말(100)이 전달한 트랩 도어와 검색 인덱스 테이블에 저장된 인덱스를 이용하여 검색을 수행하고, 자체적으로 구성한 재구성 인덱스 테이블의 재구성 인덱스를 이용하여 추가적인 검색을 수행한다. The search step S40 is performed by the server 200 as a step of searching for data corresponding to a given trap door. According to an embodiment of the present invention, the server 200 performs a search using the trap door transmitted from the user terminal 100 and the index stored in the search index table, and performs a search using the reconstruction index of the self- Perform a search.

도 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 server 200 receives the trap door from the user terminal 100 (S410), the server 200 determines whether there is data matching the keyword to be searched using the received trap door and the index stored in the search index table Search is performed (S420).

또한 서버(200)는 수신한 트랩 도어와 재구성 인덱스 테이블의 재구성 인덱스를 이용하여, 검색할 키워드와 일치하는 자료가 있는지 검색을 추가적으로 수행한다(S430). 재구성 인덱스에 대한 검색은 사용자 단말(100)이 전달한 트랩 도어 이외에 서버(200)의 비밀키가 요구된다. 재구성 인덱스는 후술하는 바와 같이 서버(200)의 비밀키를 통해 암호화되어 재구성 인덱스 테이블에 저장되므로, 서버(200)는 재구성 인덱스 테이블의 재구성 인덱스를 서버(200)의 비밀키를 이용해 복호화한 후 검색을 수행할 수 있다. In operation S430, the server 200 further searches whether there is data matching the keyword to be searched using the received trap door and the reconstruction index of the reconstruction index table. The retrieval of the reconstruction index requires the secret key of the server 200 in addition to the trap door transmitted by the user terminal 100. Since the reconstruction index is encrypted through the secret key of the server 200 and stored in the reconstruction index table as described later, the server 200 decodes the reconstruction index of the reconstruction index table using the secret key of the server 200, Can be performed.

검색의 결과로 서버(100)는 검색할 트랩 도어와 일치하는 자료의 식별자(identifier)를 사용자 단말(100)에게 전달한다(S440). 사용자 단말(100)은 검색 결과로 자료의 식별자를 제공받으며, 이후 검색된 자료의 식별자 등을 이용하여 실제 자료의 암호문에 대한 다운로드 등의 데이터 처리를 수행한다. As a result of the search, the server 100 transmits an identifier of a data corresponding to the trap door to be searched to the user terminal 100 (S440). The user terminal 100 receives the identifier of the data as a search result, and then performs data processing such as downloading of the cipher text of the actual data using the identifier of the searched data.

인덱스 재배열 단계(S50)는 서버(200)가 수행한 검색 결과에 따라 인덱스를 재배열 또는 재구성하는 단계이다. The index rearrangement step S50 is a step of rearranging or reorganizing the index according to the search result performed by the server 200. [

도 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 server 200 extracts a search index for an identifier of the searched data (S510), adds the extracted search index to the reconstruction index table, and reconstructs the search index (S520). In this case, the index reorganization method performed by the server 200 may vary according to the configuration of the search index provided by the user terminal 100. [ The server 200 can directly use the search index for the identifier of the searched data as the reconstruction index. Or the server 200 may use a separate algorithm to generate a reconstruction index associated with the search index for the identifier of the retrieved data.

서버(200)는 재구성 인덱스를 서버(200)의 비밀키를 통해 독자적으로 암호화하여 관리한다(S530). 서버(200)에 저장된 검색 인덱스 중에서 사용자 단말(100)의 검색 요청에 의해서 검색된 자료의 식별자에 대한 검색 인덱스에 대해서는 서버(200)에 정보가 일부 알려지기 때문에 검색되지 않은 다른 인덱스와 동일한 수준의 안전성을 제공할 필요가 없다. 따라서 검색된 검색 인덱스를 토대로 서버(200)가 생성한 재구성 인덱스를 재구성 인덱스 테이블에 추가한다. 이때 서버(200)는 재구성 인덱스에 대한 추가 및 수정 과정을 서버(200)의 비밀키를 통해 수행함으로써, 보다 효과적인 인덱스 관리가 가능하게 된다. 또한 서버(200)는 인덱스 재구성 과정에서 추가적인 정보를 포함하여 기본적인 키워드 검색 외의 부가 기능 검색이 가능한 기법을 쉽게 구성할 수 있다. The server 200 independently encrypts and manages the reconfiguration index through the secret key of the server 200 (S530). Since the information on the search index for the identifier of the data retrieved by the search request of the user terminal 100 among the search index stored in the server 200 is partially known to the server 200, . ≪ / RTI > Therefore, the reorganization index generated by the server 200 is added to the reorganization index table based on the retrieved index. At this time, the server 200 performs a process of adding and modifying the reconfiguration index through the secret key of the server 200, thereby enabling more effective index management. In addition, the server 200 can easily construct a technique for searching for additional functions other than basic keyword search including additional information in the index reconstruction process.

다음, 서버(200)는 검색 인덱스 테이블에서 검색된 자료의 식별자에 대한 검색 인덱스를 삭제한다(S540). Next, the server 200 deletes the search index for the identifier of the retrieved data in the retrieval index table (S540).

인덱스 추가 단계(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 server 200 adds the search index provided by the user terminal 100 to the search index table. Here, the method of adding is determined according to the method of configuring the search index.

마지막으로, 삭제 단계(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 user terminal 100 deletes stored data through an identifier of the retrieved data (S610).

사용자 단말(100)은 삭제할 자료의 식별자를 서버(200)로 전달한다(S620).The user terminal 100 transmits the identifier of the data to be deleted to the server 200 (S620).

서버(200)는 사용자 단말(100)로부터 삭제할 자료의 식별자를 수신하면, 재구성 인덱스 테이블에서 해당 자료의 식별자에 해당하는 재구성 인덱스를 모두 삭제하고 해당 자료의 식별자에 해당하는 암호문을 삭제한다(S630, S640). Upon receiving the identifier of the data to be deleted from the user terminal 100, the server 200 deletes all the reconfiguration indexes corresponding to the identifier of the corresponding data from the reconfiguration index table and deletes the ciphertext corresponding to the identifier of the corresponding data (S630, S640).

검색 인덱스는 사용자 단말(100)에서 암호화되어 서버(200)에 전달되므로, 서버(200)는 검색 인덱스에서 자료의 식별자를 구별할 수가 없다. 따라서, 서버(200)에서 해당 자료의 식별자에 해당하는 검색 인덱스 및 암호문을 삭제하기 위해서는 트랩도어 등의 추가 정보 및 추가 연산이 요구되기 때문에, 삭제 동작이 어려울 수 있다. 그러나 본 발명의 실시 예에 따르면, 서버(200)가 서버(200)의 비밀키를 이용하여 재구성 인덱스를 암호화함으로써, 삭제할 자료의 식별자만 주어지면 재구성 인덱스 테이블의 재구성 인덱스 중에서 주어진 식별자에 해당하는 재구성 인덱스를 검색할 수 있으며, 이에 따라 해당 식별자에 해당하는 재구성 인덱스를 삭제하는 것이 용이해진다. Since the search index is encrypted in the user terminal 100 and transmitted to the server 200, the server 200 can not distinguish the identifier of the data in the search index. Therefore, in order to delete the search index and ciphertext corresponding to the identifier of the corresponding data in the server 200, additional information such as a trap door and additional operation are required, so that the deletion operation may be difficult. However, according to the embodiment of the present invention, when the server 200 encrypts the reconstruction index using the secret key of the server 200, only the identifier of the data to be deleted is given, the reconstruction index of the reconstruction index table is re- It is possible to retrieve the index, thereby making it easy to delete the reconstruction index corresponding to the identifier.

이와 같이, 본 발명의 실시 예에 따르면, 검색 가능 암호 시스템은 인덱스 재배열 단계(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 user terminal 100, all the identifiers of the corresponding data are deleted from the reconfiguration index table, and the ciphertext corresponding to the identifier of the corresponding data is easily deleted .

도 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 search apparatus 700 includes at least one processor 710, a memory 720, a storage 730, an input / output (I / O) interface 740, and a network interface 750 ).

프로세서(710)는 중앙 처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있다.The processor 710 may be implemented as a central processing unit (CPU) or other chipset, microprocessor, or the like.

메모리(720)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다. The memory 720 may be any type of memory such as RAM, such as dynamic random access memory (DRAM), random access memory (RAM) DRAM, random access memory (RDRAM), synchronous DRAM (SDRAM), static RAM . ≪ / RTI >

저장 장치(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 storage device 730 may be a hard disk, a compact disk read only memory (CD-ROM), a compact disk rewritable (CD-RW), a digital video disk ROM, , An optical disk such as a blu-ray disk, a flash memory, various types of RAM, or a permanent or volatile storage device.

I/O 인터페이스(740)는 프로세서(710) 및/또는 메모리(720)가 저장 장치(730)에 접근할 수 있도록 한다. 또한 I/O 인터페이스(740)는 서버(200)의 관리자와 인터페이스를 제공할 수 있다. I / O interface 740 allows processor 710 and / or memory 720 to access storage 730. The I / O interface 740 may provide an interface with the administrator of the server 200.

네트워크 인터페이스(750)는 사용자 단말(100)과 인터페이스를 제공한다. The network interface 750 provides an interface with the user terminal 100.

프로세서(710)는 도 1 내지 도 6에서 설명한 서버(200)의 검색 단계(S40), 인덱스 재배열 단계(S50) 및 삭제 단계(S70)의 기능을 수행할 수 있다. 프로세서(710)는 서버(200)의 검색 단계(S40), 인덱스 재배열 단계(S50) 및 삭제 단계(S70)의 기능을 구현하기 위한 프로그램 명령을 메모리(720)에 로드시켜, 도 1 내지 도 6을 참고로 하여 설명한 동작이 수행되도록 제어할 수 있다. 그리고 이러한 프로그램 명령은 저장 장치(730)에 저장되어 있을 수 있으며, 또는 네트워크로 연결되어 있는 다른 시스템에 저장되어 있을 수 있다. The processor 710 may perform the functions of the searching step S40, the index rearranging step S50 and the deleting step S70 of the server 200 described in FIGS. The processor 710 loads a program instruction for implementing the functions of the search step S40 of the server 200, the index rearrangement step S50 and the deletion step S70 into the memory 720, 6 can be controlled so as to be performed. Such a program command may be stored in the storage device 730 or may be stored in another system connected to the network.

아래에서는 링크드 리스트(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 user terminal 100 selects an arbitrary key SK, sets it as a secret key of the user terminal 100, initializes the search index table, and stores it in the server 200. [ Here, the size of the search index table can be determined by the amount of data to be stored. Also, the user terminal 100 generates a keyword table storing a link &apos; a, ek &apos; including the encryption key and the location information of the search index for each keyword. The keyword table is initially set to an empty state. Then, the server 200 initializes the reconfiguration index table.

본 발명의 실시 예에서 각각의 자료는 유일하게 구별 가능한 자료 식별자를 가지고 있는 것으로 가정한다. 또한 각 자료는 수학식 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 &gt;, ...) from the data M (id) , <kt-id> can be extracted. When a pair of keyword-data identifier <k-id> is given to the user terminal 100, the user terminal 100 receives the address a of the empty node in the search index table from the server 200, Check the link information <a ', ek'>. If the link is empty, 'empty' information is stored in the link. The user terminal 100 generates an Enc ek (id, link) by encrypting an (id, link) with ek after selecting an arbitrary encryption key ek and transmits Enc ek (id, link) to the server 200 And stores it in the a-th node of the search index table. Also, the user terminal 100 changes information corresponding to the keyword k in the keyword table to a new link &lt; a, ek &gt;. The user terminal 100 encrypts the data to be stored with the secret key SK and transmits the encrypted data to the server 200.

사용자 단말(100)은 저장할 모든 자료에 대해 각각 상기 인덱스 및 암호화 단계에 해당하는 과정을 수행하여 검색 인덱스 및 암호문을 생성하여 서버(200)에 전달한다. 이렇게 하여, 사용자 단말(100)이 제공해준 검색 인덱스가 서버(200)의 검색 인덱스 테이블에 저장된다. The user terminal 100 generates search indexes and ciphertexts for all the data to be stored, and transmits the search indexes and ciphertexts to the server 200. In this way, the search index provided by the user terminal 100 is stored in the search index table of the server 200.

트랩 도어 생성 단계(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 user terminal 100 confirms the link information <a, ek> corresponding to the keyword k in the keyword table for the keyword k to be searched. Also, the user terminal 100 generates a hash value H (k) for the keyword k using the hash function, encrypts the hash value H (k) with the secret key of the user terminal 100, SK (k) and link information < a, ek > to the server 200 as a trap door.

검색 단계(S40)에서, 서버(200)는 사용자 단말(100)이 전달한 트랩 도어에 대해 다음과 같은 검색을 수행한다. 서버(200)는 우선 주어진 링크 정보 <a, ek>에 대해서 검색 인덱스 테이블의 a번째 노드로부터 시작되는 링크드 리스트에 포함된 모든 자료의 식별자 id를 수집한다. ek는 링크드 리스트의 첫 노드를 복호화하는 키로 사용된다. 또한 서버(200)는 자신이 관리하는 재구성 인덱스 테이블에서 HSK(k)에 해당하는 자료 식별자 id를 서버(200)의 비밀키로 복호화하여 링크드 리스트에서 수집된 자료 식별자 id와 함께 검색 결과로 사용자 단말(100)에게 제공한다. In the search step S40, the server 200 performs the following search for the trap door delivered by the user terminal 100. [ The server 200 first collects the identifier id of all the data included in the linked list starting from the a-th node of the search index table for the given link information < a, ek &gt;. ek is used as the key to decode the first node of the linked list. Also, the server 200 decodes the data identifier id corresponding to H SK (k) with the secret key of the server 200 in the reconfiguration index table managed by the server 200, (100).

사용자 단말(100)은 검색 결과를 제공받은 이후, 검색을 수행한 키워드 k에 해당하는 키워드 테이블의 값을 'empty'로 수정한다. After receiving the search result, the user terminal 100 modifies the value of the keyword table corresponding to the keyword k that performed the search to 'empty'.

인덱스 재배열 단계(S50)에서, 서버(200)는 트랩 도어로부터 검색된 검색 결과에 해당하는 자료의 식별자 id를 모두 수집하고 서버(200)의 비밀키로 암호화하여 HSK(k)에 해당하는 재구성 인덱스 테이블에 추가한다. In index rearrangement step (S50), the server 200 collects all of the identifier id of the data corresponding to the search results retrieved from the trapdoor, encrypted with the secret key of the server 200 to reconstruct the index that corresponds to the H SK (k) Add to the table.

본 예시에서는 단순 키워드 검색을 지원하는 경우로 한정하고, 재구성 인덱스의 구성 과정을 단순 암호화 기법 적용으로 설명하였으나, 추가적인 부가 검색 기능을 제공하기 위한 별도의 인덱스 구성 또한 가능하다. 또한 서버(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 server 200 deletes all nodes of the linked list identified in the search process.

인덱스 추가 단계(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 user terminal 100 encrypts the newly added data, generates an index, and provides the index to the server 200.

삭제 단계(S70, S80)에서, 사용자 단말(100)은 검색된 자료에 대해서 삭제를 수행하며, 삭제할 자료의 식별자 id를 서버(200)에 제공하면 서버(200)는 재구성 인덱스 테이블에서 해당 자료의 식별자 id를 모두 삭제하고 자료의 식별자 id에 해당하는 암호문을 삭제한다. In the deletion step (S70, S80), the user terminal 100 deletes the retrieved data. If the server 200 provides the identifier of the data to be deleted to the server 200, the server 200 deletes the identifier id, and delete the ciphertext corresponding to the identifier id of the data.

이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다. 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 &gt;
제1항에서,
상기 검색 인덱스 테이블로부터 검색된 상기 트랩 도어에 해당하는 자료에 대한 검색 인덱스를 상기 검색 인덱스 테이블에서 삭제하는 단계
를 더 포함하는 검색 방법.
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:
제2항에서,
상기 사용자 단말로부터 삭제하고자 하는 자료의 식별자를 수신하면, 상기 재구성 인덱스 테이블에서 해당 자료의 식별자에 해당하는 인덱스 및 암호문을 삭제하는 단계
를 더 포함하는 검색 방법.
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:
제1항에서,
상기 재구성하는 단계는
상기 검색된 자료에 대한 검색 인덱스를 추출하는 단계, 그리고
추출된 상기 검색 인덱스를 그대로 상기 재구성 인덱스 테이블에 추가하는 단계를 포함하는 검색 방법.
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.
제1항에서,
새롭게 추가되는 자료에 대한 검색 인덱스를 사용자 단말로부터 수신하는 단계, 그리고
상기 새롭게 추가되는 자료에 대한 검색 인덱스를 상기 검색 인덱스 테이블에 추가하는 단계
를 더 포함하는 검색 방법.
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:
제1항에서,
상기 재구성하는 단계는 재구성한 인덱스를 상기 서버의 비밀키로 암호화하는 단계를 포함하는 검색 방법.
The method of claim 1,
Wherein the reconstructing comprises encrypting the reconstructed index with a secret key of the server.
제1항에서,
상기 수행하는 단계는 상기 트랩 도어에 해당하는 자료의 식별자를 상기 검색을 요청하는 사용자 단말로 전달하는 단계
를 더 포함하는 검색 방법.
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
.
제8항에서,
상기 프로세서는 상기 검색 인덱스 테이블로부터 검색된 상기 트랩 도어에 해당하는 자료에 대한 인덱스를 상기 상기 검색 인덱스 테이블에서 삭제하는 검색 장치.
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.
제9항에서,
상기 프로세서는 상기 사용자 단말로부터 삭제하고자 하는 자료의 식별자를 상기 네트워크 인터페이스를 통해 수신하면, 상기 재구성 인덱스 테이블에서 상기 삭제하고자 하는 자료의 식별자에 해당하는 인덱스 및 암호문을 삭제하는 검색 장치.
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.
제8항에서,
상기 프로세서는 상기 검색된 자료에 대한 인덱스를 추출하여 그대로 상기 재구성 인덱스 테이블에서의 인덱스로 사용하는 검색 장치.
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.
제8항에서,
상기 프로세서는 새롭게 추가되는 자료에 대한 암호문과 검색 인덱스를 상기 사용자 단말로부터 네트워크 인터페이스를 통해 수신하면, 해당 암호문과 검색 인덱스를 상기 검색 인덱스 테이블에 추가하는 검색 장치.
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.
제8항에서,
상기 프로세서는 상기 재구성한 인덱스를 상기 서버의 비밀키로 암호화하는 검색 장치.
9. The method of claim 8,
And the processor encrypts the reconstructed index with the secret key of the server.
제8항에서,
상기 트랩 도어는 상기 검색을 요청한 사용자 단말에 의하여 상기 사용자 단말의 비밀키와 검색할 자료의 키워드를 이용하여 생성되는 검색 장치.
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.
KR1020170026599A 2017-02-28 2017-02-28 Apparatus and method for searching in searchable encryption system KR20180099310A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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