[go: nahoru, domu]

KR101140576B1 - Multi?user search system and method of encrypted document - Google Patents

Multi?user search system and method of encrypted document Download PDF

Info

Publication number
KR101140576B1
KR101140576B1 KR1020100063390A KR20100063390A KR101140576B1 KR 101140576 B1 KR101140576 B1 KR 101140576B1 KR 1020100063390 A KR1020100063390 A KR 1020100063390A KR 20100063390 A KR20100063390 A KR 20100063390A KR 101140576 B1 KR101140576 B1 KR 101140576B1
Authority
KR
South Korea
Prior art keywords
user
document
key
encrypted
user terminal
Prior art date
Application number
KR1020100063390A
Other languages
Korean (ko)
Other versions
KR20120002729A (en
Inventor
정익래
김동민
천지영
노건태
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020100063390A priority Critical patent/KR101140576B1/en
Publication of KR20120002729A publication Critical patent/KR20120002729A/en
Application granted granted Critical
Publication of KR101140576B1 publication Critical patent/KR101140576B1/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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/6272Protecting 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 by registering files or documents with a third party

Landscapes

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

Abstract

다자간 검색 시스템은 사용자 등록 요청에 따라, 사용자 등록을 요청한 사용자의 사용자 단말에 제 1 비밀키를 발급하고, 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 사용자의 식별정보를 문서 관리부에 제공하는 사용자 관리부, 사용자 단말로부터 수신한 난수 및 제 2 비밀키를 이용하여, 문서를 암호화하는 문서 암호화키의 생성에 사용되는 제 1 생성키 및 문서에 대한 키워드를 암호화하는 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 사용자 단말에 제공하고, 사용자 단말로부터 수신한 암호화된 문서 및 암호화된 키워드를 저장하는 문서 관리부를 포함하되, 암호화된 문서는 제 1 생성키에 기초하여 생성된 문서 암호화키에 의하여 사용자 단말에서 암호화된 것이고, 암호화된 키워드는 제 2 생성키에 기초하여 생성된 키워드 인덱스 생성키에 의하여 사용자 단말에서 암호화된 것이다.The multiparty retrieval system issues a first secret key to a user terminal of a user who has requested a user registration in response to a user registration request, and provides the document management unit with a second secret key generated to include the first secret key and identification information of the user. A first generation key used to generate a document encryption key for encrypting a document and a keyword index generation key for encrypting a keyword for the document using the random number received from the user terminal and the second secret key. A document management unit for generating and providing a second generation key to be used to the user terminal and storing the encrypted document and the encrypted keyword received from the user terminal, wherein the encrypted document is generated based on the first generation key. The encryption key is encrypted at the user terminal by an encryption key, and the encrypted keyword is a key generated based on the second generation key. It encrypted to the user terminal by de index generation key.

Description

암호화 문서에 대한 다자간 검색 시스템 및 그 방법{MULTI?USER SEARCH SYSTEM AND METHOD OF ENCRYPTED DOCUMENT}MULTI-USER SEARCH SYSTEM AND METHOD OF ENCRYPTED DOCUMENT}

본 발명은 보안성이 보장되고, 효율적인 키워드 검색을 제공하는 다자간 검색 시스템 및 그 방법에 관한 것이다.The present invention relates to a multi-party retrieval system and method for ensuring security and providing efficient keyword retrieval.

최근 클라우드 컴퓨팅(cloud computing) 기술의 발달과 더불어 인터넷을 통해 자료를 공유할 수 있는 클라우드 기반 스토리지(storage) 서비스가 주목받고 있다. 스토리지 서비스를 통해 사용자 단말들은, 공공의 서버(public server)에 자신의 자료를 업로드(upload)하고, 관심있는 자료를 다운로드(download) 받을 수 있다.Recently, with the development of cloud computing technology, cloud-based storage services that can share data through the Internet have attracted attention. Through the storage service, user terminals may upload their data to a public server and download materials of interest.

그러나, 공공의 서버를 통한 자료의 공유는 사용자 단말들의 편리성을 증가시킨 반면 사용자 단말들의 프라이버시에 대한 문제점이 있다. 공공의 서버에 저장된 자료는 사용자 단말들이 아닌 서비스 제공자에 의해 관리되므로 신뢰할 수 없는 서비스 제공자에 의한 데이터 노출은 단순한 접근통제만으로 해결하기 힘들다.However, the sharing of data through a public server increases the convenience of the user terminals, but there is a problem with respect to the privacy of the user terminals. Since data stored in public servers are managed by service providers rather than user terminals, data exposure by untrusted service providers is difficult to solve by simple access control.

또한, 신뢰할 수 없는 서비스 제공자에 대한 데이터 노출을 막기 위해서 데이터를 암호화하여 저장할 수도 있으나, 이러한 데이터 암호화는 검색의 효율을 급격히 저하시킨다.In addition, although data may be encrypted and stored to prevent data exposure to untrusted service providers, such data encryption dramatically degrades the efficiency of retrieval.

이러한 검색 문제를 해결하기 위해 대칭키(symmetric key) 기반 및 공개키(public key) 기반으로 키워드를 이용하여 암호화된 문서를 검색하는 연구가 활발히 진행되고 있다. 대칭키 기반의 키워드 검색은 사용자 단말이 자신의 대칭키로 데이터를 암호화하여 서버에 저장한 후, 자신의 대칭키를 이용하여 문서를 검색하는 방법으로 데이터 암호화에 사용한 대칭키를 소유한 사용자 단말만이 검색이 가능하다.In order to solve such a search problem, researches for searching documents encrypted using keywords based on symmetric key and public key have been actively conducted. In the keyword search based on symmetric key, the user terminal encrypts the data with its symmetric key and stores it in the server, and then searches the document using its symmetric key. Search is possible.

그리고, 공개키 기반의 키워드 검색 기법은 암호화된 데이터와 함께 데이터검색 정보를 사용자 단말의 공개키로 암호화하여 서버에 저장한다. 이때, 암호화에 사용된 공개키에 대응되는 비밀키를 소유한 사람만이 검색이 가능한 기법이다. 그러나 대칭키 및 공개키 기반 검색 방법은, 특정 사용자 단말만이 검색이 가능하다. 따라서 이러한 기법은 여러 사용자 단말이 공공의 서버를 통해 데이터를 공유하는 환경에는 적합하지 않다.In addition, the public key-based keyword retrieval technique encrypts the data retrieval information with the public key of the user terminal together with the encrypted data and stores the data retrieval in the server. At this time, only the person who owns the secret key corresponding to the public key used for encryption can search. However, in a symmetric key and public key based search method, only a specific user terminal can search. Therefore, this technique is not suitable for an environment in which multiple user terminals share data through public servers.

만약 N명의 사용자 단말이 서로의 데이터를 공유하는 환경이라면 데이터를 업로드하는 사용자 단말은 N명의 사용자 단말 모두에 대해서 문서 검색이 가능하도록 같은 데이터를 N번 암호화하여 저장하여야 한다. 이는 저장량 측면에서 매우 비효율적이다.If the N user terminals share data with each other, the user terminal uploading the data must encrypt and store the same data N times so that a document can be searched for all N user terminals. This is very inefficient in terms of storage.

한편, 최근에는 다자간 데이터 공유 환경에서 사용자 단말들의 프라이버시를 보호하면서도 문서 검색이 가능한 방법이 제안되었다. 그러나, 데이터를 업로드할 수 있는 사용자 단말이 특정한 한 명뿐이어서, 데이터 업로드가 가능한 사용자 단말은 데이터를 업로드 하기 전에 먼저 데이터를 다운로드 받을 다른 사용자 단말들을 정한 후, 해당 다른 사용자 단말들만이 데이터를 다운로드 받을 수 있도록 데이터를 암호화하여 저장한다. 따라서 이러한 방법은 여러 사용자 단말들이 자신의 데이터를 업로드하는 환경에는 적합하지 않다.On the other hand, in recent years, a method for searching a document while protecting the privacy of user terminals in a multi-party data sharing environment has been proposed. However, since there is only one specific user terminal capable of uploading data, the user terminal capable of uploading data first determines other user terminals to download the data before uploading the data, and then only those other user terminals can download the data. Encrypt the data so that it can be stored. Therefore, this method is not suitable for an environment in which several user terminals upload their data.

또한 사전에 검색 가능한 사용자 단말들을 지정하기 때문에 추후 가입자나 탈퇴자가 발생하였을 경우 그에 따른 관리가 어렵다. 예를 들어, 탈퇴자 처리(revocation)를 위해 브로드캐스트 암호화(broadcast encryption)를 사용하기 때문에 탈퇴자 발생 시마다 다른 모든 사용자 단말들이 새로운 값을 갱신해야 하는 번거로움이 따른다. 또한 가입자나 탈퇴자 처리를 위해 모든 데이터에 대한 암호화된 인덱스를 수정해야 하므로 가입자나 탈퇴자 처리가 매우 비효율적이다.In addition, since the user terminals that can be searched in advance are designated, it is difficult to manage the subscribers or withdrawals in the future. For example, since broadcast encryption is used for the revocation process, every other user terminal needs to update a new value every time the withdrawal occurs. In addition, the subscriber or withdrawal process is very inefficient because the encrypted index of all data must be modified for the subscriber or withdrawal process.

그리고, 암호화된 데이터에 대해 여러 사용자 단말들이 자신의 데이터를 업로드하고 다운로드받을 수 있는 환경으로 다자간 데이터 공유 환경에 적합한 방법도 있으나, 탈퇴자의 수동적 공격(passive attack)에 대해 안전하지 못한 측면이 있다. 즉, 기존 사용자 단말이 탈퇴할 경우 문서를 검색할 수는 없으나 다른 사용자 단말이 검색하는 데이터를 도청(eavesdropping)할 경우 도청한 모든 데이터에 대한 복호화가 가능하게 된다.In addition, there are methods suitable for a multi-party data sharing environment in which various user terminals upload and download their own data with respect to the encrypted data. However, there is an insecure aspect against a passive attack of the withdrawal. That is, when the user terminal withdraws, the document cannot be searched, but when eavesdropping the data searched by another user terminal, all the eavesdropping data can be decrypted.

본 발명의 일 실시예는 다자간 보안성이 보장될 수 있고, 효율적으로 암호화된 문서를 검색할 수 있는 다자간 검색 시스템 및 그 방법을 제공하는 데에 그 목적이 있다.One embodiment of the present invention is to provide a multi-party retrieval system and method that can be guaranteed multi-party security, and can efficiently retrieve encrypted documents.

또한, 본 발명의 일 실시예는 효과적이고 편리한 탈퇴자 처리 및 암호화된 문서에 대한 키워드 검색을 요청한 사용자의 쿼리에 대해, 해당 쿼리에 포함된 키워드에 관련된 암호화된 문서를 검색하여 전송하되, 암호화된 문서를 산출된 문서 암호화키를 이용하여 복호화시킬 수 있도록 함으로써, 외부 공격자에 의한 데이터 도청 문제를 해소시키는 다자간 검색 시스템 및 그 방법을 제공하는 데에 그 목적이 있다.In addition, an embodiment of the present invention, while searching for and transmitting an encrypted document related to a keyword included in the query, for an effective and convenient withdrawal processing and a query of a user requesting a keyword search for an encrypted document, the encrypted document It is an object of the present invention to provide a multi-party retrieval system and a method for solving the problem of data eavesdropping by an external attacker by enabling the decryption using the calculated document encryption key.

또한, 본 발명의 일 실시예는 키워드로 검색하고자 하는 암호화된 문서에 대해 사용자가 정당하게 발급받은 자신의 비밀키를 이용하여 쿼리를 생성함으로써, 외부 공격자가 악의적인 목적으로 정당한 쿼리를 생성할 수 없게 하여, 쿼리에 대한 안정성이 확보될 수 있는 다자간 검색 시스템 및 그 방법을 제공하는 데에 그 목적이 있다.In addition, an embodiment of the present invention by generating a query using the private key that the user has been duly issued for the encrypted document to be searched by keyword, an external attacker can create a legitimate query for malicious purposes It is an object of the present invention to provide a multi-party retrieval system and its method, which can ensure the stability of a query.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 다자간 검색 시스템은 사용자 등록 요청에 따라, 사용자 등록을 요청한 사용자의 사용자 단말에 제 1 비밀키를 발급하고, 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 사용자의 식별정보를 문서 관리부에 제공하는 사용자 관리부, 사용자 단말로부터 수신한 난수 및 제 2 비밀키를 이용하여, 문서를 암호화하는 문서 암호화키의 생성에 사용되는 제 1 생성키 및 문서에 대한 키워드를 암호화하는 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 사용자 단말에 제공하고, 사용자 단말로부터 수신한 암호화된 문서 및 암호화된 키워드를 저장하는 문서 관리부를 포함하되, 암호화된 문서는 제 1 생성키에 기초하여 생성된 문서 암호화키에 의하여 사용자 단말에서 암호화된 것이고, 암호화된 키워드는 제 2 생성키에 기초하여 생성된 키워드 인덱스 생성키에 의하여 사용자 단말에서 암호화된 것이다.As a technical means for achieving the above technical problem, the multilateral retrieval system according to the first aspect of the present invention, according to the user registration request, issuing a first secret key to the user terminal of the user who requested the user registration, the first secret A user management unit that provides a document management unit with a second secret key generated to include a key and identification information of the user, a random number received from a user terminal, and a second secret key used to generate a document encryption key for encrypting a document. Generating a second generation key used to generate the keyword index generation key for encrypting the first generation key and the keyword for the document and providing the second generation key to the user terminal, and storing the encrypted document and the encrypted keyword received from the user terminal. Including a document management unit, the encrypted document is used by the document encryption key generated based on the first generation key The encrypted keyword is encrypted in the user terminal, and the encrypted keyword is encrypted in the user terminal by the keyword index generation key generated based on the second generation key.

여기서, 사용자 단말은 사용자의 키워드 입력에 따라 키워드, 사용자의 식별정보 및 사용자 단말의 제 1 비밀키가 포함된 쿼리값을 생성하여 문서 관리부로 전송하고, 문서 관리부로부터 수신한 암호화된 문서를 복호화한다.Here, the user terminal generates a query value including the keyword, the user's identification information, and the first secret key of the user terminal according to the user's keyword input, transmits the query value to the document manager, and decrypts the encrypted document received from the document manager. .

그리고, 문서 관리부는 사용자가 사용자 리스트에 등록된 사용자인 경우, 쿼리값 및 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 암호화된 문서 및 암호화된 문서에 대한 제 1 생성키를 사용자 단말로 전송한다.When the user is a user registered in the user list, the document manager calculates a keyword index generation key based on the query value and the user's second secret key, and searches for an encrypted document corresponding to the calculated keyword index generation key. Then, the encrypted document and the first generation key for the encrypted document are transmitted to the user terminal.

또한, 사용자 단말은 문서 관리부로부터 수신한 제 1 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화한다.Further, the user terminal calculates a document encryption key for the encrypted document from the first generation key received from the document management unit, and decrypts the encrypted document based on the calculated document encryption key.

또한, 문서 관리부는, 사용자 등록을 요청한 사용자의 식별정보 및 제 1 비밀키가 포함되도록 생성한 제 2 비밀키를 사용자별로 관리하는 사용자 리스트 관리부, 사용자 단말로부터 수신한 난수 및 제 2 비밀키를 이용하여 문서 암호화키의 생성에 사용되는 제 1 생성키 및 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하는 키 생성부, 암호화된 문서 및 암호화된 키워드를 저장하는 암호화 데이터 저장부 및 쿼리값 및 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 암호화된 문서 및 암호화된 문서에 대한 제 1 생성키를 사용자 단말로 전송하는 데이터 검색부를 포함한다.The document manager may further include a user list manager that manages a second secret key generated for each user to include identification information of the user who requested user registration and a first secret key, a random number received from a user terminal, and a second secret key. A key generation unit for generating a first generation key used for generation of a document encryption key and a second generation key for generation of a keyword index generation key, an encrypted data storage unit for storing an encrypted document and an encrypted keyword, and a query Calculates a keyword index generation key based on the value and the second secret key of the user, searches for an encrypted document corresponding to the calculated keyword index generation key, and uses the first generation key for the encrypted document and the encrypted document. It includes a data search unit for transmitting to the terminal.

여기서, 사용자 리스트 관리부는, 사용자 탈퇴를 요청한 사용자의 식별정보 및 사용자 탈퇴를 요청한 사용자의 제 2 비밀키를 사용자 리스트로부터 제거한다.Here, the user list manager removes the identification information of the user who requested to withdraw the user and the second secret key of the user who requested to withdraw the user from the user list.

또한, 사용자 단말은, 문서 암호화키를 생성하여 문서 관리부에 저장할 문서를 암호화하고, 키워드 인덱스 생성키를 생성하여 문서에 대한 키워드를 암호화하는 데이터 암호화부, 사용자의 키워드 입력에 따라 키워드, 사용자의 식별정보 및 사용자 단말의 제 1 비밀키가 포함된 쿼리값을 생성하는 쿼리 생성부 및 문서 관리부로부터 수신한 제 1 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화하는 데이터 복호화부를 포함한다.Also, the user terminal generates a document encryption key to encrypt a document to be stored in the document management unit, and generates a keyword index generation key to encrypt a keyword for the document, a keyword according to the user's keyword input, identification of the user A document encryption key for the encrypted document is calculated from the query generation unit for generating a query value including the information and the first secret key of the user terminal and the first generation key received from the document management unit, and based on the calculated document encryption key. And a data decryption unit for decrypting the encrypted document.

또한, 사용자 관리부는, 사용자 등록을 요청한 사용자의 식별정보를 사용자 리스트로 관리하는 사용자 리스트 관리부 및 사용자 관리부의 비밀키를 이용하여 사용자 등록을 요청한 사용자의 사용자 단말에 발급할 제 1 비밀키 및 문서 관리부에 제공할 제 1 비밀키가 포함되도록 생성한 제 2 비밀키를 생성하는 키 생성부를 포함한다.In addition, the user manager may include a user list manager that manages identification information of a user who has requested user registration as a user list and a first secret key and document manager that will be issued to a user terminal of a user who has requested user registration using a private key of the user manager. And a key generator for generating a second secret key generated to include a first secret key to be provided to the.

본 발명의 제 2 측면에 따른 다자간 검색 방법은 사용자 관리장치가 사용자 등록 요청에 따라, 사용자 등록을 요청한 사용자의 사용자 단말에 제 1 비밀키를 발급하고, 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 사용자의 식별정보를 문서 서버에 제공하는 단계, 문서 서버가 사용자 단말로부터 수신한 난수 및 제 2 비밀키를 이용하여 문서를 암호화하는 문서 암호화키의 생성에 사용되는 제 1 생성키 및 문서에 대한 키워드를 암호화하는 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 사용자 단말에 제공하는 단계 및 문서 서버가 문서 암호화키를 이용하여 암호화된 문서 및 키워드 인덱스 생성키를 이용하여 암호화된 키워드를 사용자 단말로부터 수신하여 저장하는 단계를 포함하되, 문서 암호화키는 제 1 생성키에 기초하여 생성되고, 키워드 인덱스 생성키는 제 2 생성키에 기초하여 생성된 것이다.In the multi-party retrieval method according to the second aspect of the present invention, in response to a user registration request, the user management apparatus issues a first secret key to a user terminal of a user who has requested a user registration, and generates a second secret key to be included. Providing a secret key and identification information of the user to the document server; a first generating key and a document used for generating a document encryption key for encrypting a document using a random number received from the user terminal and a second secret key; Generating and providing a second generation key used to generate a keyword index generation key for encrypting a keyword to the user terminal and encrypting the document server using a document and keyword index generation key encrypted using the document encryption key And receiving the stored keyword from the user terminal, wherein the document encryption key is based on the first generation key. And gender, keywords, the index generated key is generated based on the second generation key.

여기서, 문서 서버가 사용자가 사용자 리스트에 등록된 사용자인 경우, 사용자 단말로부터 수신한 쿼리값 및 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 암호화된 문서 및 암호화된 문서에 대한 제 1 생성키를 사용자 단말로 전송하는 단계를 더 포함한다.Here, when the document server is a user registered in the user list, the document server calculates a keyword index generation key based on the query value received from the user terminal and the user's second secret key, and corresponds to the calculated keyword index generation key. Retrieving the encrypted document, and transmitting the encrypted document and a first generation key for the encrypted document to the user terminal.

이때, 사용자 단말은 사용자의 키워드 입력에 따라 키워드, 사용자의 식별정보 및 사용자 단말의 제 1 비밀키가 포함된 쿼리값을 생성한다.In this case, the user terminal generates a query value including the keyword, the user's identification information, and the first secret key of the user terminal according to the user's keyword input.

또한, 사용자 단말은 문서 서버로부터 수신한 제 1 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화한다.The user terminal also calculates a document encryption key for the encrypted document from the first generation key received from the document server, and decrypts the encrypted document based on the calculated document encryption key.

본 발명의 제 3 측면에 따른 다자간 검색 시스템은 사용자 등록 요청에 따라, 사용자 등록을 요청한 사용자의 사용자 단말에 제 1 비밀키를 발급하고, 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 사용자의 식별정보를 문서 서버에 제공하는 사용자 관리장치, 문서 암호화키를 생성하여 문서 서버에 저장할 문서를 암호화하고, 키워드 인덱스 생성키를 생성하여 문서에 대한 키워드를 암호화하며, 암호화된 문서 및 암호화된 키워드를 문서 서버로 전송하는 사용자 단말, 사용자 단말로부터 수신한 난수 및 제 2 비밀키를 이용하여 문서 암호화키의 생성에 사용되는 제 1 생성키 및 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 사용자 단말에 제공하고, 사용자 단말로부터 수신한 암호화된 문서 및 암호화된 키워드를 저장하는 문서 서버를 포함하되, 사용자 단말은 제 1 생성키에 기초하여 문서 암호화키를 생성하고, 제 2 생성키에 기초하여 키워드 인덱스 생성키를 생성한다.In accordance with a third aspect of the present invention, a multilateral retrieval system according to a user registration request, issues a first secret key to a user terminal of a user who has requested a user registration, and generates a second secret key and a user to include the first secret key. The user management device that provides the identification information of the document server, generates a document encryption key to encrypt the document to be stored in the document server, generates a keyword index generation key to encrypt the keyword for the document, encrypted documents and encrypted keywords Using the user terminal for transmitting the document server to the document server, the random number received from the user terminal, and the second secret key used for generating the document encryption key and the second generated key used for generating the keyword index generation key. Documents generated and provided to the user terminal and storing the encrypted document and the encrypted keyword received from the user terminal And a server, wherein the user terminal generates a document encryption key based on the first generation key, and generates a keyword index generation key based on the second generation key.

여기서, 사용자 단말은 사용자의 키워드 입력에 따라 키워드, 사용자의 식별정보 및 사용자 단말의 제 1 비밀키가 포함된 쿼리값을 생성하여 문서 서버로 전송하고, 문서 서버로부터 수신한 암호화된 문서를 복호화한다.Here, the user terminal generates a query value including the keyword, the user's identification information, and the first secret key of the user terminal according to the user's keyword input, transmits the query value to the document server, and decrypts the encrypted document received from the document server. .

그리고, 문서 서버는 사용자가 사용자 리스트에 등록된 사용자인 경우, 쿼리값 및 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 암호화된 문서 및 암호화된 문서에 대한 제 1 생성키를 사용자 단말로 전송한다.When the user is a user registered in the user list, the document server calculates a keyword index generation key based on the query value and the user's second secret key, and searches for an encrypted document corresponding to the calculated keyword index generation key. Then, the encrypted document and the first generation key for the encrypted document are transmitted to the user terminal.

또한, 사용자 단말은 문서 서버로부터 수신한 제 1 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화한다.The user terminal also calculates a document encryption key for the encrypted document from the first generation key received from the document server, and decrypts the encrypted document based on the calculated document encryption key.

전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 다자간 보안성이 보장될 수 있으며, 효율적으로 암호화된 문서를 검색할 수 있다.According to any one of the problem solving means of the present invention described above, multilateral security can be ensured, it is possible to search the encrypted document efficiently.

또한, 전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 효과적이고 편리한 탈퇴자 처리 및 암호화된 문서에 대한 키워드 검색을 요청한 사용자의 쿼리에 대해, 해당 쿼리에 포함된 키워드에 관련된 암호화된 문서를 검색하여 전송하되, 암호화된 문서를 산출된 문서 암호화키를 이용하여 복호화시킬 수 있도록 함으로써, 외부 공격자에 의한 데이터 도청 문제를 해소시킬 수 있다.In addition, according to any one of the above-described problem solving means of the present invention, with respect to the query of the user who requested an effective and convenient withdrawal processing and the keyword search for the encrypted document, the encrypted document related to the keyword included in the query is retrieved And transmit the encrypted document using the calculated document encryption key, thereby eliminating the problem of data eavesdropping by an external attacker.

또한, 전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 키워드로 검색하고자 하는 암호화된 문서에 대해 사용자가 정당하게 발급받은 자신의 비밀키를 이용하여 쿼리를 생성함으로써, 외부 공격자가 악의적인 목적으로 정당한 쿼리를 생성할 수 없게 하여, 쿼리에 대한 안정성이 확보될 수 있다.In addition, according to any one of the above problem solving means of the present invention, by generating a query using the private key that the user has duly issued for the encrypted document to be searched by the keyword, the external attacker has a malicious purpose This makes it impossible to create a valid query, so that the stability of the query can be secured.

도 1은 본 발명의 일 실시예에 따른 다자간 검색 시스템의 구성을 도시한다.
도 2는 본 발명의 일 실시예에 따른 사용자 관리장치의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 문서 서버의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 사용자 단말의 블록도이다.
도 5는 본 발명의 일 실시예에 따른 다자간 검색 시스템의 셋업, 등록, 탈퇴 과정을 나타낸다.
도 6은 본 발명의 일 실시예에 따른 다자간 검색 시스템의 저장 과정을 나타낸다.
도 7은 본 발명의 일 실시예에 따른 다자간 검색 시스템의 쿼리 및 검색 과정을 나타낸다.
도 8은 본 발명의 일 실시예에 따른 다자간 검색 방법의 순서도이다.
1 is a block diagram of a multi-party search system according to an exemplary embodiment of the present invention.
2 is a block diagram of a user management apparatus according to an embodiment of the present invention.
3 is a block diagram of a document server according to an embodiment of the present invention.
4 is a block diagram of a user terminal according to an embodiment of the present invention.
5 is a diagram illustrating a setup, registration, and withdrawal process of a multi-party search system according to an embodiment of the present invention.
6 illustrates a storage process of a multi-party search system according to an embodiment of the present invention.
7 illustrates a query and search process of a multi-party search system according to an embodiment of the present invention.
8 is a flowchart of a multi-party search method according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement 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 the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

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

도 1은 본 발명의 일 실시예에 따른 다자간 검색 시스템의 구성을 도시한다.1 is a block diagram of a multi-party search system according to an exemplary embodiment of the present invention.

도 1에 도시된 바와 같이, 다자간 검색 시스템은 사용자 관리장치(이하, “

Figure 112010042686618-pat00001
”라고도 함)(100), 문서 서버(이하 “
Figure 112010042686618-pat00002
”라고도 함)(200) 및 사용자 단말(이하, “
Figure 112010042686618-pat00003
” 라고도 함)(300)를 포함한다.As shown in FIG. 1, the multi-party retrieval system has a user management apparatus (hereinafter, “
Figure 112010042686618-pat00001
100, document server (hereinafter referred to as “
Figure 112010042686618-pat00002
200 and user terminal (hereinafter referred to as “
Figure 112010042686618-pat00003
300 ”.

사용자 관리장치(100)는 사용자 등록 요청에 따라, 사용자 등록을 요청한 사용자의 사용자 단말(300)에 제 1 비밀키를 발급하고, 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 사용자의 식별정보를 문서 서버(200)에 제공한다.According to the user registration request, the user management apparatus 100 issues a first secret key to the user terminal 300 of the user who requested the user registration, and identifies the second secret key and the user generated to include the first secret key. Information is provided to the document server 200.

문서 서버(200)는 사용자 관리장치(100)로부터 수신한 사용자의 식별정보 및 제 2 비밀키를 저장한다. 또한, 문서 서버(200)는 암호화된 문서 및 해당 문서에 대한 암호화된 키워드를 포함하는 암호화된 데이터를 사용자 단말(300)로부터 수신하여 저장한다. 구체적으로, 암호화된 데이터는 다수의 속성들로 구성된

Figure 112010042686618-pat00004
개의 데이터(
Figure 112010042686618-pat00005
)가 암호화된 형태이며, 속성 중의 하나는 문서를 검색하기 위한 키워드를 포함할 수 있다.The document server 200 stores the identification information and the second secret key of the user received from the user management apparatus 100. In addition, the document server 200 receives and stores encrypted data including an encrypted document and an encrypted keyword for the document from the user terminal 300. Specifically, encrypted data consists of multiple attributes
Figure 112010042686618-pat00004
Data (
Figure 112010042686618-pat00005
) Is in encrypted form, and one of the attributes may include a keyword for searching for a document.

또한, 문서 서버(200)는 문서 암호화키를 생성하기 위한 제 1 생성키 및 문서에 대한 키워드를 암호화하는 키워드 인덱스 생성키를 생성하기 위한 제 2 생성키를 사용자 단말(300)로부터 수신한 난수 및 제 2 비밀키를 이용하여 생성하여 사용자 단말(300)로 제공할 수 있다.In addition, the document server 200 may generate a random number received from the user terminal 300 with a first generation key for generating a document encryption key and a second generation key for generating a keyword index generation key for encrypting a keyword for a document; The second secret key may be generated and provided to the user terminal 300.

또한, 문서 서버(200)는 사용자가 사용자 리스트에 등록된 사용자인 경우, 사용자 단말(300)로부터 수신한 쿼리값 및 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 암호화된 문서 및 암호화된 문서에 대한 생성키를 사용자 단말(300)로 전송한다.In addition, when the user is a user registered in the user list, the document server 200 calculates a keyword index generation key based on the query value received from the user terminal 300 and the second secret key of the user, and calculates the keyword. The encrypted document corresponding to the index generation key is searched, and the encrypted document and the generation key for the encrypted document are transmitted to the user terminal 300.

사용자 단말(300)은 문서 암호화키를 생성하여 문서 서버(200)에 저장할 문서를 암호화하고, 키워드 인덱스 생성키를 생성하여 문서에 대한 키워드를 암호화하며, 암호화된 문서 및 암호화된 키워드를 문서 서버(200)로 전송한다. 이때, 사용자 단말(300)은 문서 서버(200)로부터 수신한 제 1 생성키에 기초하여 문서 암호화키를 생성하고, 제 2 생성키에 기초하여 키워드 인덱스 생성키를 생성할 수 있다.The user terminal 300 generates a document encryption key to encrypt a document to be stored in the document server 200, generates a keyword index generation key to encrypt a keyword for the document, and converts the encrypted document and the encrypted keyword into a document server ( 200). In this case, the user terminal 300 may generate a document encryption key based on the first generation key received from the document server 200, and generate a keyword index generation key based on the second generation key.

또한, 사용자 단말(300)은 사용자의 키워드 입력에 따라 키워드, 사용자의 식별정보 및 사용자 단말(300)의 제 1 비밀키가 포함된 쿼리값을 생성하여 문서 서버(200)로 전송하고, 문서 서버(200)로부터 수신한 암호화된 문서를 복호화할 수 있다.In addition, the user terminal 300 generates a query value including the keyword, the user's identification information and the first secret key of the user terminal 300 according to the user's keyword input and transmits to the document server 200, the document server The encrypted document received from 200 may be decrypted.

여기서, 사용자 단말(300)은 암호화된 문서 및 암호화된 문서에 대한 생성키를 문서 서버(200)로부터 수신하고, 해당 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화할 수 있다.Here, the user terminal 300 receives the encrypted document and the generation key for the encrypted document from the document server 200, calculates a document encryption key for the encrypted document from the generation key, and calculates the document encryption key Based on the encrypted document can be decrypted.

이하, 도 2 내지 도 4를 통해 다자간 검색 시스템의 각 구성요소에 대해서 보다 자세히 설명하기로 한다.Hereinafter, each component of the multilateral search system will be described in more detail with reference to FIGS. 2 to 4.

도 2는 본 발명의 일 실시예에 따른 사용자 관리장치의 블록도이다.2 is a block diagram of a user management apparatus according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 사용자 관리장치(100)는 사용자 리스트 관리부(110) 및 키 생성부(120)를 포함한다.As shown in FIG. 2, the user management apparatus 100 includes a user list manager 110 and a key generator 120.

사용자 리스트 관리부(110)는 사용자 등록을 요청한 사용자의 식별정보를 사용자 리스트로 관리한다. 예컨대, 사용자 리스트 관리부(110)는 사용자 등록을 요청한 사용자의 식별정보를 사용자 관리장치(100)의 사용자 리스트에 포함시키거나, 사용자 탈퇴를 요청한 사용자의 식별정보를 사용자 관리장치(100)의 사용자 리스트로부터 제거할 수 있다.The user list manager 110 manages identification information of a user who has requested user registration as a user list. For example, the user list manager 110 may include identification information of a user who has requested user registration in a user list of the user management apparatus 100 or include identification information of a user who has requested to withdraw the user from the user list of the user management apparatus 100. Can be removed from.

키 생성부(120)는 사용자 관리장치(100)의 비밀키를 이용하여 사용자 등록을 요청한 사용자의 사용자 단말(300)에게 발급할 제 1 비밀키 및 문서 서버(200)에 제공할 제 1 비밀키가 포함되도록 생성한 제 2 비밀키를 생성한다.The key generation unit 120 uses the secret key of the user management apparatus 100 to provide the first secret key to be issued to the user terminal 300 of the user who has requested the user registration and the first secret key to be provided to the document server 200. Generate a second secret key generated to include.

도 3은 본 발명의 일 실시예에 따른 문서 서버의 블록도이다.3 is a block diagram of a document server according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 문서 서버(200)는 사용자 리스트 관리부(210), 암호화 데이터 저장부(220), 키 생성부(230) 및 데이터 검색부(240)를 포함한다.As shown in FIG. 3, the document server 200 includes a user list manager 210, an encrypted data storage 220, a key generator 230, and a data searcher 240.

사용자 리스트 관리부(210)는 사용자 등록을 요청한 사용자의 식별정보 및 제 1 비밀키가 포함되도록 생성한 제 2 비밀키를 사용자별로 관리한다. 여기서 사용자 리스트 관리부(210)는, 사용자 탈퇴를 요청한 사용자의 식별정보 및 사용자 탈퇴를 요청한 사용자의 제 2 비밀키를 사용자 리스트로부터 제거할 수 있다.The user list manager 210 manages a second secret key generated for each user to include identification information of the user who requested user registration and a first secret key. Here, the user list manager 210 may remove the identification information of the user who has requested to withdraw the user and the second secret key of the user who has requested to withdraw the user from the user list.

따라서, 탈퇴한 사용자의 식별정보 및 비밀키가 삭제되므로, 탈퇴한 외부 사용자로부터 문서를 안전하게 보호할 수 있다.Therefore, since the identification information and the secret key of the withdrawn user are deleted, the document can be securely protected from the withdrawn external user.

암호화 데이터 저장부(220)는 사용자 단말(300)로부터 수신한 암호화된 문서 및 암호화된 키워드를 저장한다.The encrypted data storage unit 220 stores the encrypted document and the encrypted keyword received from the user terminal 300.

키 생성부(230)는 사용자 단말(300)로부터 수신한 난수 및 제 2 비밀키를 이용하여 문서 암호화키의 생성에 사용되는 제 1 생성키 및 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성한다. The key generation unit 230 uses the random number and the second secret key received from the user terminal 300 to generate the first generation key used for generating the document encryption key and the second generation key used for generating the keyword index generation key. Create

여기서, 제 1 생성키 및 제 2 생성키는 사용자 단말(300)로 전달되어, 각각 문서를 암호화하는 문서 암호화키 및 문서에 대한 키워드를 암호화하는 키워드 인덱스 생성키를 생성하는 데에 이용될 수 있다.Here, the first generation key and the second generation key may be delivered to the user terminal 300 and used to generate a document encryption key for encrypting a document and a keyword index generation key for encrypting a keyword for the document, respectively. .

데이터 검색부(240)는 사용자 단말(300)로부터 수신한 쿼리값 및 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 검색된 암호화된 문서 및 암호화된 문서에 대한 생성키를 사용자 단말(300)로 전송한다.The data retrieval unit 240 calculates a keyword index generation key based on the query value received from the user terminal 300 and the user's second secret key, and retrieves an encrypted document corresponding to the calculated keyword index generation key. The searched encrypted document and a generation key for the encrypted document are transmitted to the user terminal 300.

여기서, 사용자 단말(300)은 검색된 암호화된 문서 및 암호화된 문서에 대한 생성키를 문서 서버(200)로부터 수신하고, 해당 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화할 수 있게 된다.Here, the user terminal 300 receives the retrieved encrypted document and a generation key for the encrypted document from the document server 200, calculates a document encryption key for the encrypted document from the corresponding generation key, and calculates the document encryption. It is possible to decrypt the encrypted document based on the key.

따라서, 암호화된 문서에 대한 키워드 검색을 요청한 사용자의 쿼리에 대해, 해당 쿼리에 포함된 키워드에 관련된 암호화된 문서를 검색하여 전송하되, 암호화된 문서를 산출된 문서 암호화키를 이용하여 복호화시킬 수 있도록 함으로써, 외부 공격자에 의한 데이터 도청 문제를 해소시킬 수 있게 된다.Therefore, for the query of the user who requested the keyword search for the encrypted document, the encrypted document related to the keyword included in the query is searched and transmitted, and the encrypted document can be decrypted using the calculated document encryption key. By doing so, it is possible to solve the problem of data eavesdropping by external attacker.

도 4는 본 발명의 일 실시예에 따른 사용자 단말의 블록도이다.4 is a block diagram of a user terminal according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 사용자 단말(300)는 식별정보 관리 요청부(310), 데이터 암호화부(320), 쿼리 생성부(330) 및 데이터 복호화부(340)를 포함한다.As shown in FIG. 4, the user terminal 300 includes an identification information management request unit 310, a data encryption unit 320, a query generator 330, and a data decryption unit 340.

식별정보 관리 요청부(310)는 사용자 관리장치(100)로 사용자의 식별정보를 전송하여 식별정보에 대한 등록 또는 탈퇴 요청을 수행한다.The identification information management request unit 310 transmits identification information of the user to the user management apparatus 100 to perform a request for registration or withdrawal of the identification information.

데이터 암호화부(320)는 문서 암호화키를 생성하여 문서 서버(200)에 저장할 문서를 암호화하고, 키워드 인덱스 생성키를 생성하여 문서에 대한 키워드를 암호화한다. 이때, 제 1 생성키에 기초하여 문서 암호화키를 생성하고, 제 2 생성키에 기초하여 키워드 인덱스 생성키를 생성할 수 있다.The data encryption unit 320 generates a document encryption key to encrypt a document to be stored in the document server 200, and generates a keyword index generation key to encrypt a keyword for the document. In this case, the document encryption key may be generated based on the first generation key, and the keyword index generation key may be generated based on the second generation key.

쿼리 생성부(330)는 사용자의 키워드 입력에 따라 키워드, 사용자의 식별정보 및 사용자 단말(300)의 제 1 비밀키가 포함된 쿼리값을 생성한다.The query generator 330 generates a query value including a keyword, user identification information, and a first secret key of the user terminal 300 according to a user's keyword input.

데이터 복호화부(340)는 암호화된 문서 및 암호화된 문서에 대한 생성키를 문서 서버(200)로부터 수신하고, 해당 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화한다.The data decryption unit 340 receives the encrypted document and the generation key for the encrypted document from the document server 200, calculates a document encryption key for the encrypted document from the generation key, and calculates the calculated document encryption key. Decrypt the encrypted document on the basis of

한편 이하의 본 발명의 실시예에서, 예컨대

Figure 112010042686618-pat00006
표기는 집합
Figure 112010042686618-pat00007
의 원소
Figure 112010042686618-pat00008
를 랜덤하게 선택하는 것을 나타내며,
Figure 112010042686618-pat00009
는 집합
Figure 112010042686618-pat00010
의 크기를 나타낸다. 또한,
Figure 112010042686618-pat00011
표기는 알고리즘
Figure 112010042686618-pat00012
에서
Figure 112010042686618-pat00013
를 출력하는 것을 나타낸다. 그리고
Figure 112010042686618-pat00014
표기는 모든 양의 정수
Figure 112010042686618-pat00015
에 대하여 정수
Figure 112010042686618-pat00016
가 존재하고,
Figure 112010042686618-pat00017
를 만족할 때 무시할 수 있을 만큼 작은 값으로 수렴하는 함수(negligible function)로 정의된다.Meanwhile, in the following embodiments of the present invention, for example,
Figure 112010042686618-pat00006
Notation is a set
Figure 112010042686618-pat00007
Element of
Figure 112010042686618-pat00008
Indicates a random selection of
Figure 112010042686618-pat00009
Set
Figure 112010042686618-pat00010
Indicates the size. Also,
Figure 112010042686618-pat00011
Notation Algorithm
Figure 112010042686618-pat00012
in
Figure 112010042686618-pat00013
Outputs. And
Figure 112010042686618-pat00014
Notation is any positive integer
Figure 112010042686618-pat00015
Against integer
Figure 112010042686618-pat00016
Is present,
Figure 112010042686618-pat00017
Is defined as a negligible function that converges to a value that can be ignored when satisfying.

또한, 본 발명의 실시예에서 이용되는 의사난수 함수(pseudorandom function)는 난수 함수(random function)의 출력 값과 효율적으로 구별이 불가능한 출력 값을 가지는 함수로 정의된다. 구체적으로 의사난수 함수는

Figure 112010042686618-pat00018
In addition, a pseudorandom function used in an embodiment of the present invention is defined as a function having an output value that cannot be efficiently distinguished from an output value of a random function. Specifically, pseudorandom functions
Figure 112010042686618-pat00018

로 정의될 수 있으며, 여기서

Figure 112010042686618-pat00019
는 시드(seed) 값의 비트수,
Figure 112010042686618-pat00020
은 입력 값의 비트수,
Figure 112010042686618-pat00021
은 출력 값의 비트수를 나타낸다. Can be defined as
Figure 112010042686618-pat00019
Is the number of bits in the seed,
Figure 112010042686618-pat00020
Is the number of bits in the input value,
Figure 112010042686618-pat00021
Represents the number of bits in the output value.

또한, 본 발명의 실시예에서 이용되는 암호학적 해시 함수(예컨대, 후술될

Figure 112010042686618-pat00022
,
Figure 112010042686618-pat00023
)는 일반적으로 의사난수 함수로부터 모델링된다. 이때, 의사난수 함수 중에서 입력 값의 비트수와 출력 값의 비트수가 같을 경우, 이것을 의사난수 치환(pseudorandom permutation)이라고 정의한다. 구체적으로 의사난수 치환은
Figure 112010042686618-pat00024
Further, cryptographic hash functions (e.g., described below) used in embodiments of the present invention
Figure 112010042686618-pat00022
,
Figure 112010042686618-pat00023
) Is usually modeled from a pseudorandom function. In this case, when the number of bits of the input value and the number of bits of the output value in the pseudo random number function are the same, this is defined as pseudorandom permutation. Specifically, pseudo random number substitution
Figure 112010042686618-pat00024

로 정의될 수 있다. 일반적으로 안전한 대칭키 암호화 기법은 의사난수 치환을 이용하여 모델링된다. 예컨대, 후술될

Figure 112010042686618-pat00025
가 의사 난수 치환으로,
Figure 112010042686618-pat00026
가 의사 난수 함수로 모델링될 수 있다.It can be defined as. In general, secure symmetric key cryptography is modeled using pseudo-random substitution. For example, to be described later
Figure 112010042686618-pat00025
Is a pseudo random number substitution,
Figure 112010042686618-pat00026
Can be modeled as a pseudo-random function.

또한, 본 발명의 실시예에서는 겹선형 사상(bilinear maps)을 제공하는 소수 위수의 어떤 유한군을 이용한다. 예컨대

Figure 112010042686618-pat00027
Figure 112010042686618-pat00028
이 소수 위수
Figure 112010042686618-pat00029
를 가지는 두 개의 군이라 하고, 겹선형 사상을
Figure 112010042686618-pat00030
라고 하면, 이하의 (가) 내지 (다)를 만족한다.In addition, embodiments of the present invention employ some finite group of prime numbers that provide bilinear maps. for example
Figure 112010042686618-pat00027
Wow
Figure 112010042686618-pat00028
This decimal number
Figure 112010042686618-pat00029
Are called two groups with
Figure 112010042686618-pat00030
In this case, the following (a) to (c) are satisfied.

(가) 모든

Figure 112010042686618-pat00031
와 모든
Figure 112010042686618-pat00032
에 대해
Figure 112010042686618-pat00033
를 만족한다. 참고로,
Figure 112010042686618-pat00034
는 암호화에 이용되는 대칭키를 나타내고,
Figure 112010042686618-pat00035
는 상수를 나타낸다.(A) All
Figure 112010042686618-pat00031
And all
Figure 112010042686618-pat00032
About
Figure 112010042686618-pat00033
. Note that,
Figure 112010042686618-pat00034
Represents the symmetric key used for encryption,
Figure 112010042686618-pat00035
Represents a constant.

(나) 만약

Figure 112010042686618-pat00036
가 군
Figure 112010042686618-pat00037
의 생성자이면,
Figure 112010042686618-pat00038
는 군
Figure 112010042686618-pat00039
의 생성자이다.(B) if
Figure 112010042686618-pat00036
Gagun
Figure 112010042686618-pat00037
If is a constructor of,
Figure 112010042686618-pat00038
County
Figure 112010042686618-pat00039
Is the constructor of.

(다) 임의의 원소

Figure 112010042686618-pat00040
에 대해
Figure 112010042686618-pat00041
는 계산하기 쉬워야 한다.(C) arbitrary elements
Figure 112010042686618-pat00040
About
Figure 112010042686618-pat00041
Should be easy to calculate.

또한, 본 발명의 실시예에서 이용되는 BLS 짧은 서명(short signature)은, Boneh 등에 의해 제안된 겹선형 사상에 기반을 둔 서명 기법이다. 예컨대, 후술될 BLS 짧은 서명의 변수들인

Figure 112010042686618-pat00042
를 겹선형 사상과 동일하게 정의하고,
Figure 112010042686618-pat00043
를 군
Figure 112010042686618-pat00044
의 생성자, 충돌 저항성 해시 함수를
Figure 112010042686618-pat00045
, 사용자 단말의 서명키를
Figure 112010042686618-pat00046
, 검증키를
Figure 112010042686618-pat00047
라고 정의한다. In addition, the BLS short signature used in the embodiment of the present invention is a signature technique based on the parallelism proposed by Boneh et al. For example, the BLS short signature variables
Figure 112010042686618-pat00042
Defines the same as the double line mapping,
Figure 112010042686618-pat00043
County
Figure 112010042686618-pat00044
Constructor, collision-resistant hash function
Figure 112010042686618-pat00045
, The signature key of the user terminal
Figure 112010042686618-pat00046
, Validation key
Figure 112010042686618-pat00047
It is defined as.

여기서, 메시지

Figure 112010042686618-pat00048
에 대한 서명을
Figure 112010042686618-pat00049
라고 하면, 이에 대한 검증은
Figure 112010042686618-pat00050
을 통해 가능하다. BLS 짧은 서명은 CDH(Computational Diffie-Hellman) 문제의 어려움에 기반하여 랜덤 오라클 모델에서 서명 위조 불가능성을 만족한다.Where message
Figure 112010042686618-pat00048
Sign for
Figure 112010042686618-pat00049
If you say, the verification
Figure 112010042686618-pat00050
It is possible through. The BLS short signature satisfies the signature forgery in the random Oracle model based on the difficulty of the Computational Diffie-Hellman problem.

이하 도 5 내지 도 7을 통해 각 과정에 따른 다자간 키워드 검색을 제공하는 다자간 검색 시스템의 동작에 대해서 구체적으로 설명하기로 한다.Hereinafter, an operation of the multiparty search system that provides multiparty keyword search according to each process will be described in detail with reference to FIGS. 5 to 7.

도 5는 본 발명의 일 실시예에 따른 다자간 검색 시스템의 셋업, 사용자 등록, 사용자 탈퇴 과정을 나타낸다.5 is a diagram illustrating a setup, user registration, and user withdrawal process of a multi-party search system according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 셋업(Setup) 과정에 있어서, 사용자 관리장치(100)는 공개 파라미터(

Figure 112010042686618-pat00051
)와 자신의 비밀키(
Figure 112010042686618-pat00052
)를 생성한다. As shown in FIG. 5, in the setup process, the user management apparatus 100 may display a public parameter (
Figure 112010042686618-pat00051
) And your private key (
Figure 112010042686618-pat00052
)

구체적으로 설명하자면, 사용자 관리장치(100)는 시큐리티 파라미터(security parameter)(예컨대

Figure 112010042686618-pat00053
)를 이용하여 공개 파라미터(params)를 설정하고, 자신의 비밀키(
Figure 112010042686618-pat00054
)를 랜덤하게 선택한다. Specifically, the user management apparatus 100 may include a security parameter (for example, a security parameter).
Figure 112010042686618-pat00053
Set public parameters with your own private key (
Figure 112010042686618-pat00054
) Is randomly selected.

그리고 안전한 대칭키 암호화 기법(

Figure 112010042686618-pat00055
), 충돌 저항성(collision resistance) 해시함수(
Figure 112010042686618-pat00056
), 해시함수의 시드값(
Figure 112010042686618-pat00057
)을 랜덤하게 선택하고, 시드를 포함하는 충돌 저항성 해시함수(
Figure 112010042686618-pat00058
)를 설정한다. 여기서
Figure 112010042686618-pat00059
는 키들의 집합,
Figure 112010042686618-pat00060
는 시드들의 집합,
Figure 112010042686618-pat00061
는 키워드들의 집합을 나타낸다.And secure symmetric key cryptography (
Figure 112010042686618-pat00055
), Collision resistance hash function (
Figure 112010042686618-pat00056
), The seed of the hash function (
Figure 112010042686618-pat00057
) And randomly select the collision-resistant hash function containing the seed (
Figure 112010042686618-pat00058
). here
Figure 112010042686618-pat00059
Is a set of keys,
Figure 112010042686618-pat00060
Is a set of seeds,
Figure 112010042686618-pat00061
Represents a set of keywords.

다음으로 사용자 등록(Join) 과정에 있어서, 사용자가 사용자 관리장치(100)로 사용자 등록을 요청하면, 사용자 관리장치(100)는 자신의 비밀키 값(

Figure 112010042686618-pat00062
)을 이용하여 사용자 등록을 요청한 사용자에게 제공할 비밀키(
Figure 112010042686618-pat00063
)를 생성하여 발급한다. Next, in the user registration (Join) process, when the user requests the user registration to the user management apparatus 100, the user management apparatus 100 has its own secret key value (
Figure 112010042686618-pat00062
Secret key to be provided to the user who requested user registration using
Figure 112010042686618-pat00063
) And issue it.

보다 자세히 설명하자면, 사용자 등록을 원하는 사용자가 사용자 관리장치(100)로 식별정보(

Figure 112010042686618-pat00064
)(또는 고유정보)를 전송하면, 사용자 관리장치(100)은 해당 식별정보(
Figure 112010042686618-pat00065
)를 사용자 관리장치측 사용자 리스트(
Figure 112010042686618-pat00066
)에 포함시킨다. In more detail, the user who wants to register a user identification information (
Figure 112010042686618-pat00064
(Or unique information), the user management apparatus 100 is the corresponding identification information (
Figure 112010042686618-pat00065
) User management device side user list (
Figure 112010042686618-pat00066
).

그리고 사용자 관리장치(100)는 사용자의 비밀키

Figure 112010042686618-pat00067
(제 1 비밀키)를 랜덤하게 선택하고, 자신의 비밀키(
Figure 112010042686618-pat00068
) 및 제 1 비밀키를 이용하여 문서 서버(200)에 제공할 비밀키
Figure 112010042686618-pat00069
(제 2 비밀키)를 생성한다. 여기서, 제 2 비밀키는 사용자의 식별정보(
Figure 112010042686618-pat00070
)에 대응된 정보일 수 있다.And the user management apparatus 100 is the user's secret key
Figure 112010042686618-pat00067
Randomly select (the first secret key),
Figure 112010042686618-pat00068
And a secret key to be provided to the document server 200 using the first secret key.
Figure 112010042686618-pat00069
Create a (second secret key). Here, the second secret key is the identification information of the user (
Figure 112010042686618-pat00070
) May correspond to information.

또한, 사용자 관리장치(100)는 사용자 단말(300)에 제 1 비밀키 및 해시함수의 시드값(

Figure 112010042686618-pat00071
), 문서 서버(200)에 사용자의 식별정보 및 제 2 비밀키(
Figure 112010042686618-pat00072
)를 각각 전송한다. 여기서, 문서 서버(200)는 자신의 사용자 리스트(
Figure 112010042686618-pat00073
)에 사용자의 식별정보 및 제 2 비밀키를 포함시킨다.In addition, the user management apparatus 100 transmits the seed value of the first secret key and the hash function to the user terminal 300.
Figure 112010042686618-pat00071
), The identification information of the user and the second secret key (
Figure 112010042686618-pat00072
) Respectively. Here, the document server 200 has its own user list (
Figure 112010042686618-pat00073
) Includes the user's identification information and the second secret key.

다음으로 사용자 탈퇴(Revoke) 과정에 있어서, 사용자 관리장치(100)는 사용자 탈퇴를 요청한 사용자(

Figure 112010042686618-pat00074
)를 사용자 리스트(
Figure 112010042686618-pat00075
)에서 제거하고, 문서 서버(200)에 해당 사용자의 식별정보(
Figure 112010042686618-pat00076
)를 전송한다. 그러면, 문서 서버(200)는 자신의 사용자 리스트(
Figure 112010042686618-pat00077
)에서 사용자 탈퇴를 요청한 사용자의 식별정보 및 제 2 비밀키(
Figure 112010042686618-pat00078
)를 제거하게 된다.Next, in the user withdrawal (Revoke) process, the user management apparatus 100 is a user (requesting to withdraw the user)
Figure 112010042686618-pat00074
) List of users (
Figure 112010042686618-pat00075
) And the identification information of the user in the document server 200 (
Figure 112010042686618-pat00076
). Then, the document server 200 has its own user list (
Figure 112010042686618-pat00077
Identification information and the second private key (
Figure 112010042686618-pat00078
) Will be removed.

도 6은 본 발명의 일 실시예에 따른 다자간 검색 시스템의 저장 과정을 나타낸다.6 illustrates a storage process of a multi-party search system according to an embodiment of the present invention.

도 6에 도시된 바와 같이, 데이터 저장(Store) 과정에 있어서, 사용자 단말(300)는 사용자 관리장치(100)로부터 수신한

Figure 112010042686618-pat00079
(즉,
Figure 112010042686618-pat00080
)를 이용하여 문서(
Figure 112010042686618-pat00081
)와 상기 문서에 대한 키워드(
Figure 112010042686618-pat00082
)를 암호화한 암호화된 데이터(
Figure 112010042686618-pat00083
)를 문서 서버(200)로 전송한다.As shown in FIG. 6, in the data store process, the user terminal 300 receives the user management device 100 from the user management apparatus 100.
Figure 112010042686618-pat00079
(In other words,
Figure 112010042686618-pat00080
) To view the document (
Figure 112010042686618-pat00081
) And keywords for these documents (
Figure 112010042686618-pat00082
) Encrypted data (
Figure 112010042686618-pat00083
) Is transmitted to the document server 200.

그러면, 문서 서버(200)는 해당 사용자의 식별정보(

Figure 112010042686618-pat00084
)가 사용자 리스트(
Figure 112010042686618-pat00085
)에 등록되었는지 여부를 검사하고,
Figure 112010042686618-pat00086
Figure 112010042686618-pat00087
에 저장한다. 참고로, 문서 서버(200)에
Figure 112010042686618-pat00088
(양의 정수) 번째 저장되는 문서와 키워드를 각각
Figure 112010042686618-pat00089
라고 하면,
Figure 112010042686618-pat00090
를 암호화한 암호화된 데이터는
Figure 112010042686618-pat00091
로 표기되고, 이러한
Figure 112010042686618-pat00092
들의 집합은
Figure 112010042686618-pat00093
로 표기된다.Then, the document server 200 identifies the user's identification information (
Figure 112010042686618-pat00084
) List of users (
Figure 112010042686618-pat00085
) Is registered as
Figure 112010042686618-pat00086
To
Figure 112010042686618-pat00087
Store in For reference, the document server 200
Figure 112010042686618-pat00088
(Positive integer) the second stored document and keywords
Figure 112010042686618-pat00089
Speaking of
Figure 112010042686618-pat00090
Encrypted data is encrypted
Figure 112010042686618-pat00091
Denoted as
Figure 112010042686618-pat00092
Set of things
Figure 112010042686618-pat00093
It is indicated by.

보다 구체적으로 설명하자면, 사용자 단말(300)는 문서(

Figure 112010042686618-pat00094
)를 암호화하기 위한 문서 암호화키(
Figure 112010042686618-pat00095
) 및 키워드(
Figure 112010042686618-pat00096
)에 대한 키워드 인덱스 생성키(
Figure 112010042686618-pat00097
)를 생성하기 위해, 먼저 난수(
Figure 112010042686618-pat00098
)와 난수(
Figure 112010042686618-pat00099
)를 랜덤하게 선택하고, 난수화된 키워드(
Figure 112010042686618-pat00100
) 정보를 포함하는
Figure 112010042686618-pat00101
를 생성하여 문서 서버(200)로 전송한다. 여기서,
Figure 112010042686618-pat00102
Figure 112010042686618-pat00103
는 난수화 값으로 각각
Figure 112010042686618-pat00104
Figure 112010042686618-pat00105
를 생성할 때 사용될 수 있다.More specifically, the user terminal 300 is a document (
Figure 112010042686618-pat00094
Document encryption key (
Figure 112010042686618-pat00095
) And keywords (
Figure 112010042686618-pat00096
Keyword index key for)
Figure 112010042686618-pat00097
To generate), first create a random number (
Figure 112010042686618-pat00098
) And random numbers (
Figure 112010042686618-pat00099
) Randomly, and randomized keywords (
Figure 112010042686618-pat00100
) Containing information
Figure 112010042686618-pat00101
Generate and transmit to the document server 200. here,
Figure 112010042686618-pat00102
And
Figure 112010042686618-pat00103
Are randomized values, respectively
Figure 112010042686618-pat00104
And
Figure 112010042686618-pat00105
Can be used when generating

그러면 문서 서버(200)는 해당 사용자의 식별정보(

Figure 112010042686618-pat00106
)가 등록되어 있는지 여부를 검사하고, 문서 암호화키 및 키워드 인덱스 생성키(
Figure 112010042686618-pat00107
Figure 112010042686618-pat00108
)를 생성하기 위한 제 1 및 제 2 생성키 값(
Figure 112010042686618-pat00109
Figure 112010042686618-pat00110
)을 상술된 겹선형 사상 함수를 이용하여 아래 수학식 (1) 및 (2)와 같이 생성해서 사용자 단말(300)로 전송한다. The document server 200 then identifies the user's identification information (
Figure 112010042686618-pat00106
) Is registered, and the document encryption key and keyword index generation key (
Figure 112010042686618-pat00107
And
Figure 112010042686618-pat00108
First and second generation key values () for generating
Figure 112010042686618-pat00109
And
Figure 112010042686618-pat00110
) Is generated as shown in the following equations (1) and (2) by using the above-described layered mapping function and transmitted to the user terminal 300.

[수학식 1][Equation 1]

Figure 112010042686618-pat00111
Figure 112010042686618-pat00111

[수학식 2][Equation 2]

Figure 112010042686618-pat00112
Figure 112010042686618-pat00112

여기서, 상술된 사용자 관리장치(100)로부터 수신한 사용자의 식별정보에 대응되는 제 2 비밀키 값(

Figure 112010042686618-pat00113
) 및 난수화된 키워드(
Figure 112010042686618-pat00114
) 정보를 포함하는
Figure 112010042686618-pat00115
정보가 이용될 수 있다. Here, the second secret key value corresponding to the identification information of the user received from the user management apparatus 100 described above (
Figure 112010042686618-pat00113
) And randomized keywords (
Figure 112010042686618-pat00114
) Containing information
Figure 112010042686618-pat00115
Information may be used.

그리고, 상술된 탈퇴한 사용자 단말은 해당 사용자 단말의 제 2 비밀키(

Figure 112010042686618-pat00116
) 정보가 사용자 리스트(
Figure 112010042686618-pat00117
)에서 삭제되어 있으므로, 근본적으로 문서를 검색하기 위한 키워드에 대한 키워드 인덱스 생성키가 생성될 수 없다.In addition, the withdrawn user terminal described above may have a second secret key (
Figure 112010042686618-pat00116
Information in the user list (
Figure 112010042686618-pat00117
), A keyword index generation key for a keyword for searching a document can not be generated.

그리고, 사용자 단말(300)는 문서 서버(200)로부터 수신한 제 1 및 제 2 생성키 값(

Figure 112010042686618-pat00118
Figure 112010042686618-pat00119
)을 이용하여 문서(
Figure 112010042686618-pat00120
)를 암호화하기 위한 문서 암호화키(
Figure 112010042686618-pat00121
) 및 키워드(
Figure 112010042686618-pat00122
)에 대한 키워드 인덱스 생성키(
Figure 112010042686618-pat00123
)를 아래 수학식 (3) 및 (4)와 같이 생성할 수 있다. 이때, 사용자 관리장치(100)로부터 수신한 제 1 비밀키가 이용될 수 있다.In addition, the user terminal 300 receives the first and second generation key values received from the document server 200 (
Figure 112010042686618-pat00118
And
Figure 112010042686618-pat00119
) To view the document (
Figure 112010042686618-pat00120
Document encryption key (
Figure 112010042686618-pat00121
) And keywords (
Figure 112010042686618-pat00122
Keyword index key for)
Figure 112010042686618-pat00123
) Can be generated as in Equations (3) and (4) below. In this case, the first secret key received from the user management apparatus 100 may be used.

[수학식 3]&Quot; (3) "

Figure 112010042686618-pat00124
Figure 112010042686618-pat00124

[수학식 4]&Quot; (4) "

Figure 112010042686618-pat00125
Figure 112010042686618-pat00125

여기서, 사용자 단말(300)는 저장하기 원하는 문서(

Figure 112010042686618-pat00126
)를 문서 암호화키 값(
Figure 112010042686618-pat00127
)을 이용하여
Figure 112010042686618-pat00128
로 암호화하고,
Figure 112010042686618-pat00129
를 검색하기 위한 키워드를 인덱스 생성키 값(
Figure 112010042686618-pat00130
)을 이용하여 암호화한다. 이때, 랜덤한 난수(
Figure 112010042686618-pat00131
)를 선택하고, 해당 난수(
Figure 112010042686618-pat00132
) 및 키워드 인덱스 생성키 값(
Figure 112010042686618-pat00133
)을 이용하여 암호화된 키워드(
Figure 112010042686618-pat00134
)를 생성할 수 있다.Here, the user terminal 300 is a document that you want to save (
Figure 112010042686618-pat00126
) Is the document encryption key value (
Figure 112010042686618-pat00127
)
Figure 112010042686618-pat00128
Encrypted with
Figure 112010042686618-pat00129
Create a keyword to search for an index key value (
Figure 112010042686618-pat00130
) To encrypt. Where random random numbers (
Figure 112010042686618-pat00131
), Select the appropriate random number (
Figure 112010042686618-pat00132
) And keyword index generation key values (
Figure 112010042686618-pat00133
) Encrypted using
Figure 112010042686618-pat00134
) Can be created.

여기서, 난수(

Figure 112010042686618-pat00135
)를 적용시킴으로써, 같은 키워드에도 다른 인덱스 값을 생성하게 되어 외부 공격자에 의한 정보 노출의 위험을 막을 수 있게 된다.Where random number (
Figure 112010042686618-pat00135
By applying), different index values can be generated for the same keyword, thereby preventing the risk of information disclosure by an external attacker.

다음으로, 사용자 단말(300)는 수학식 5와 같이 암호화된 데이터에 대한 집합을 생성하여 문서 서버(200)에 저장한다. 여기서, 인덱스(

Figure 112010042686618-pat00136
)에 난수(
Figure 112010042686618-pat00137
) 및 해당 난수가 적용된 암호화된 키워드(
Figure 112010042686618-pat00138
)가 문서 서버(200)에 전송되어진다.Next, the user terminal 300 generates a set of encrypted data as shown in Equation 5 and stores it in the document server 200. Where index (
Figure 112010042686618-pat00136
) To random numbers
Figure 112010042686618-pat00137
) And encrypted keywords with their random numbers (
Figure 112010042686618-pat00138
) Is transmitted to the document server 200.

[수학식 5][Equation 5]

Figure 112010042686618-pat00139
Figure 112010042686618-pat00139

도 7은 본 발명의 일 실시예에 따른 다자간 검색 시스템의 쿼리 및 검색 과정을 나타낸다.7 illustrates a query and search process of a multi-party search system according to an embodiment of the present invention.

도 7에 도시된 바와 같이, 조회(Query) 과정에 있어서, 사용자 단말(300)는 사용자의 식별정보, 키워드 및 자신의 제 1 비밀키를 이용하여, 문서 서버(200)에 요청할 쿼리(

Figure 112010042686618-pat00140
)를 생성한다. As illustrated in FIG. 7, in the query process, the user terminal 300 requests a document server 200 to request the document server 200 by using the user's identification information, a keyword, and a first secret key thereof.
Figure 112010042686618-pat00140
)

즉,

Figure 112010042686618-pat00141
을 생성하여 문서 서버(200)로 전송한다. In other words,
Figure 112010042686618-pat00141
Create and transmit to the document server 200.

여기서, 사용자 관리장치(100)로부터 수신한 해당 사용자의 제 1 비밀키를 통해 쿼리가 생성되므로, 외부 공격자가 정당한 쿼리를 생성할 수 없게 되어, 쿼리에 대한 안정성이 확보될 수 있다.Here, since the query is generated through the first private key of the user received from the user management apparatus 100, the external attacker can not generate a valid query, the stability of the query can be secured.

검색(Search) 과정에 있어서, 사용자 단말(300)는 문서 서버에 쿼리(

Figure 112010042686618-pat00142
)를 전송하고 그에 대응되는 응답 데이터(
Figure 112010042686618-pat00143
)를 수신한다. 그리고, 사용자 단말(300)는 응답 데이터로부터 암호화된 문서를 복호화하게 된다.In the search process, the user terminal 300 queries a document server (
Figure 112010042686618-pat00142
) And the corresponding response data (
Figure 112010042686618-pat00143
). In addition, the user terminal 300 decrypts the encrypted document from the response data.

보다 구체적으로 설명하자면, 사용자 단말(300)로부터 쿼리(

Figure 112010042686618-pat00144
)를 수신한 문서 서버(200)는, 사용자 리스트(
Figure 112010042686618-pat00145
)에 해당 식별정보가 등록되어 있는지 여부를 확인하고, 만약 등록된 정보가 존재하지 않으면 정당한 사용자 단말이 아니므로 종료한다. 만약 해당 사용자에 대한 등록된 정보가 존재할 경우, 문서 서버(200)는 사용자 단말(300)로부터 수신한 쿼리값 및 해당 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키(
Figure 112010042686618-pat00146
)를 다음과 같이 산출한다.In more detail, the query from the user terminal 300 (
Figure 112010042686618-pat00144
), The document server 200 receives the user list (
Figure 112010042686618-pat00145
Check whether the corresponding identification information is registered, and if the registered information does not exist, the terminal is terminated because it is not a valid user terminal. If there is registered information on the user, the document server 200 generates a keyword index generation key based on the query value received from the user terminal 300 and the second secret key of the user.
Figure 112010042686618-pat00146
) Is calculated as follows.

Figure 112010042686618-pat00147
Figure 112010042686618-pat00147

그리고 문서 서버(200)는,And document server 200,

Figure 112010042686618-pat00148
Figure 112010042686618-pat00148

의 집합(

Figure 112010042686618-pat00149
)중에서 키워드 인덱스 생성키에 대응되는 암호화된 문서를 검색한다. Set of
Figure 112010042686618-pat00149
), The encrypted document corresponding to the keyword index generation key is retrieved.

그리고, 검색된 암호화된 문서(

Figure 112010042686618-pat00150
) 및 암호화된 문서에 대한 제 1 생성키(
Figure 112010042686618-pat00151
)을 생성하여 사용자 단말(300)로 전송한다. Then, the retrieved encrypted document (
Figure 112010042686618-pat00150
) And the first generation key for the encrypted document (
Figure 112010042686618-pat00151
) Is generated and transmitted to the user terminal 300.

그러면, 사용자 단말(300)는 제 1 생성키를 이용하여 암호화된 문서에 대한 문서 암호화키(

Figure 112010042686618-pat00152
)를 아래와 같이 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화하게 된다.Then, the user terminal 300 is a document encryption key for the document encrypted using the first generation key (
Figure 112010042686618-pat00152
) Is calculated as follows, and the encrypted document is decrypted based on the calculated document encryption key.

Figure 112010042686618-pat00153
Figure 112010042686618-pat00153

도 8은 본 발명의 일 실시예에 따른 다자간 검색 방법의 순서도이다.8 is a flowchart of a multi-party search method according to an embodiment of the present invention.

사용자 단말(300)이 사용자 관리장치(100)에 사용자 등록 요청을 수행한다(S801).The user terminal 300 performs a user registration request to the user management apparatus 100 (S801).

다음으로, 사용자 관리장치(100)가 사용자 등록 요청에 따라, 사용자 등록을 요청한 사용자의 사용자 단말(300)에 제 1 비밀키를 발급한다(S802).Next, in response to the user registration request, the user management apparatus 100 issues a first secret key to the user terminal 300 of the user who requested the user registration (S802).

그리고, 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 사용자의 식별정보를 문서 서버(200)에 제공한다(S803).Then, the second secret key generated to include the first secret key and the identification information of the user are provided to the document server 200 (S803).

다음으로, 사용자 단말(300)이 사용자 관리장치(100)에 난수를 전송한다(S804).Next, the user terminal 300 transmits a random number to the user management apparatus 100 (S804).

다음으로, 문서 서버(200)가 사용자 단말(300)로부터 수신한 난수 및 제 2 비밀키를 이용하여 문서 암호화키의 생성에 사용되는 제 1 생성키 및 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 사용자 단말(300)에 제공한다(S805).Next, the document server 200 uses the random number and the second secret key received from the user terminal 300 to generate the first generation key and the keyword index generation key used to generate the document encryption key. A generation key is generated and provided to the user terminal 300 (S805).

다음으로, 사용자 단말(300)이 제 1 생성키에 기초하여 문서 암호화키를 생성하고, 제 2 생성키에 기초하여 키워드 인덱스 생성키를 생성한다(S806).Next, the user terminal 300 generates a document encryption key based on the first generation key, and generates a keyword index generation key based on the second generation key (S806).

그리고, 사용자 단말(300)이 제 1 생성키에 기초하여 생성된 문서 암호화키를 이용하여 문서를 암호화하고, 제 2 생성키에 기초하여 생성된 키워드 인덱스 생성키를 이용하여 키워드를 암호화하여 문서 서버(200)로 전송한다(S807, S808).The user terminal 300 encrypts the document using the document encryption key generated based on the first generation key, and encrypts the keyword using the keyword index generation key generated based on the second generation key. In step S807, S808.

다음으로, 문서 서버(200)가 암호화된 문서 및 암호화된 키워드를 사용자 단말(300)로부터 수신하여 저장한다(S809).Next, the document server 200 receives and stores the encrypted document and the encrypted keyword from the user terminal 300 (S809).

다음으로, 사용자 단말(300)이 쿼리값을 생성하여 문서 서버(200)에 전송한다(S810, S811). 여기서, 사용자 단말(300)은 사용자의 키워드 입력에 따라 키워드, 사용자의 식별정보 및 사용자 단말(300)의 제 1 비밀키가 포함된 쿼리값을 생성할 수 있다.Next, the user terminal 300 generates a query value and transmits it to the document server 200 (S810 and S811). Here, the user terminal 300 may generate a query value including a keyword, user identification information, and a first secret key of the user terminal 300 according to a user's keyword input.

다음으로, 문서 서버(200)가 해당 사용자가 사용자 리스트에 등록된 사용자인지 여부를 판단한다(S812). Next, the document server 200 determines whether the corresponding user is a user registered in the user list (S812).

다음으로, 사용자가 사용자 리스트에 등록된 사용자인 경우, 문서 서버(200)가 사용자 단말(300)로부터 수신한 쿼리값 및 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색한다(S813).Next, when the user is a user registered in the user list, the document server 200 calculates a keyword index generation key based on the query value received from the user terminal 300 and the user's second secret key, and calculated The encrypted document corresponding to the keyword index generation key is retrieved (S813).

다음으로, 문서 서버(200)가 암호화된 문서 및 암호화된 문서에 대한 제 1 생성키를 사용자 단말(300)로 전송한다(S814).Next, the document server 200 transmits the encrypted document and the first generation key for the encrypted document to the user terminal 300 (S814).

다음으로, 사용자 단말(300)은 문서 서버(200)로부터 수신한 제 1 생성키로부터 암호화된 문서에 대한 문서 암호화키를 산출하고, 산출한 문서 암호화키에 기초하여 암호화된 문서를 복호화한다(S815).Next, the user terminal 300 calculates a document encryption key for the encrypted document from the first generation key received from the document server 200, and decrypts the encrypted document based on the calculated document encryption key (S815). ).

이후, 문서 서버(200)는 사용자 단말(300)로부터 사용자 탈퇴 요청을 수신한 경우에는, 사용자 탈퇴를 요청한 사용자의 식별정보 및 사용자 탈퇴를 요청한 사용자의 제 2 비밀키를 사용자 리스트로부터 제거하게 된다.Subsequently, when the document server 200 receives the user withdrawal request from the user terminal 300, the document server 200 removes the identification information of the user who requested to withdraw the user and the second secret key of the user who requested to withdraw the user from the user list.

상술된 과정(S801~S809)를 이용하여, 예를 들어, 다른 정당한 사용자(

Figure 112010042686618-pat00154
)가 동일한 키워드(
Figure 112010042686618-pat00155
)를 이용하여 생성한 쿼리By using the above-described processes (S801 to S809), for example, other legitimate users (
Figure 112010042686618-pat00154
) Have the same keyword (
Figure 112010042686618-pat00155
Generated using)

즉,

Figure 112010042686618-pat00156
을 문서 서버(200)로 전송하면, 문서 서버(200)는 In other words,
Figure 112010042686618-pat00156
To the document server 200, the document server 200

Figure 112010042686618-pat00157
을 생성한다.
Figure 112010042686618-pat00157
.

그러면,

Figure 112010042686618-pat00158
이므로, 다른 사용자는 사용자가 저장한 데이터를 암호화된 상태로 전송받을 수 있다. 그리고, 다른 사용자는 문서 서버(200)로부터 전송받은
Figure 112010042686618-pat00159
로부터
Figure 112010042686618-pat00160
를 생성하고,
Figure 112010042686618-pat00161
이므로, 다른 사용자는 사용자가 저장한 암호화된 문서를 정당하게 복호화할 수 있게 된다.then,
Figure 112010042686618-pat00158
Therefore, the other user can receive the data stored by the user in an encrypted state. And, the other user received from the document server 200
Figure 112010042686618-pat00159
from
Figure 112010042686618-pat00160
Creates a,
Figure 112010042686618-pat00161
Therefore, another user can just decrypt the encrypted document stored by the user.

따라서, 다수의 사용자들이 안전하고 효율적으로 암호화된 문서에 대한 검색을 수행할 수 있게 된다.Thus, a large number of users can securely and efficiently search for encrypted documents.

한편, 상술된 사용자 관리장치(100) 및 문서 서버(200)는 다자간 검색 시스템에 각각 모듈로 구현될 수 있음은 물론이다. 예컨대, 사용자 관리장치(100)는 사용자 관리부, 문서 서버(200)는 문서 관리부로 다자간 검색 시스템에 구성요소로 포함될 수 있다.On the other hand, the user management apparatus 100 and the document server 200 described above can be implemented in a module, respectively, in the multi-party search system. For example, the user management apparatus 100 may be a user manager, and the document server 200 may be a document manager.

또한, 상술된 도 3의 암호화 데이터 저장부(220)는 캐쉬, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 및 플래쉬 메모리(Flash memory)와 같은 비휘발성 메모리 소자 또는 RAM(Random Access Memory)과 같은 휘발성 메모리 소자 또는 하드디스크 드라이브(HDD, Hard Disk Drive), CD-ROM과 같은 저장 매체 중 적어도 하나로 구현될 수 있으나 이에 한정되지는 않는다. In addition, the above-described encrypted data storage unit 220 of FIG. 3 includes a cache, a read only memory (ROM), a programmable ROM (PROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), and a flash memory (Flash memory). Or a volatile memory device such as a random access memory (RAM) or a storage medium such as a hard disk drive (HDD) or a CD-ROM, but is not limited thereto. .

그리고 도 2 내지 도 4에서 도시된 각각의 구성요소는 일종의 '모듈'로 구성될 수 있다. 상기 '모듈'은 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(ASIC, Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 구성요소들과 모듈들에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.And each component shown in Figures 2 to 4 may be composed of a kind of 'module'. The term 'module' refers to a hardware component such as software or a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and the module performs certain roles. However, a module is not limited to software or hardware. A module may be configured to reside on an addressable storage medium and may be configured to execute one or more processors. The functionality provided by the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules.

또한 전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.In addition, the above description of the present invention is intended for illustration, and those skilled in the art may understand that the present invention may be easily modified in other specific forms without changing the technical spirit or essential features of the present invention. There will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

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

100: 사용자 관리장치 110: 사용자 리스트 관리부
120: 키 생성부 200: 문서 서버
210: 사용자 리스트 관리부 220: 암호화 데이터 저장부
230: 키 생성부 240: 데이터 검색부
300: 사용자 단말 310: 식별정보 관리 요청부
320: 데이터 암호화부 330: 쿼리 생성부
340: 데이터 복호화부
100: user management device 110: user list management unit
120: key generation unit 200: document server
210: user list management unit 220: encrypted data storage unit
230: key generation unit 240: data search unit
300: user terminal 310: identification information management request unit
320: data encryption unit 330: query generation unit
340: data decoder

Claims (17)

다자간 검색 시스템에 있어서,
사용자 등록 요청에 따라, 상기 사용자 등록을 요청한 사용자의 사용자 단말에 제 1 비밀키를 발급하고, 상기 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 상기 사용자의 식별정보를 문서 관리부에 제공하는 사용자 관리부 및
상기 사용자 단말로부터 수신한 난수 및 상기 제 2 비밀키를 이용하여, 문서를 암호화하는 문서 암호화키의 생성에 사용되는 제 1 생성키 및 상기 문서에 대한 키워드를 암호화하는 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 상기 사용자 단말에 제공하고, 상기 사용자 단말로부터 수신한 상기 암호화된 문서 및 암호화된 키워드를 저장하는 문서 관리부를 포함하되,
상기 암호화된 문서는 상기 제 1 생성키에 기초하여 생성된 문서 암호화키에 의하여 상기 사용자 단말에서 암호화된 것이고, 상기 암호화된 키워드는 상기 제 2 생성키에 기초하여 생성된 키워드 인덱스 생성키에 의하여 상기 사용자 단말에서 암호화된 것이고,
상기 사용자 단말은 사용자의 키워드 입력에 따라 상기 키워드, 상기 사용자의 식별정보 및 상기 사용자 단말의 제 1 비밀키가 포함된 쿼리값을 생성하여 상기 문서 관리부로 전송하고, 상기 문서 관리부로부터 수신한 암호화된 문서를 복호화하는 것인 다자간 검색 시스템.
In the multiparty retrieval system,
In response to a user registration request, issuing a first private key to a user terminal of the user who requested the user registration, and providing a second secret key generated to include the first private key and identification information of the user to a document manager; User management and
Using the random number received from the user terminal and the second secret key, the first generation key used to generate the document encryption key for encrypting the document and the keyword index generation key for encrypting the keyword for the document is used. Generating a second generation key to be provided to the user terminal and storing the encrypted document and the encrypted keyword received from the user terminal;
The encrypted document is encrypted at the user terminal by a document encryption key generated based on the first generation key, and the encrypted keyword is generated by the keyword index generation key generated based on the second generation key. Encrypted on the user terminal,
The user terminal generates a query value including the keyword, the identification information of the user, and the first secret key of the user terminal according to a user's keyword input, and transmits the query value to the document manager, and receives the encrypted message received from the document manager. A multiparty retrieval system for decrypting a document.
삭제delete 제 1 항에 있어서,
상기 문서 관리부는 상기 사용자가 사용자 리스트에 등록된 사용자인 경우, 상기 쿼리값 및 상기 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 상기 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 상기 암호화된 문서 및 상기 암호화된 문서에 대한 제 1 생성키를 상기 사용자 단말로 전송하는 것인 다자간 검색 시스템.
The method of claim 1,
When the user is a user registered in the user list, the document manager calculates a keyword index generation key based on the query value and the second secret key of the user, and encrypts the corresponding keyword index generation key. Retrieving a document, and transmitting the encrypted document and a first generation key for the encrypted document to the user terminal.
제 3 항에 있어서,
상기 사용자 단말은 상기 문서 관리부로부터 수신한 상기 제 1 생성키로부터 상기 암호화된 문서에 대한 문서 암호화키를 산출하고, 상기 산출한 문서 암호화키에 기초하여 상기 암호화된 문서를 복호화하는 것인 다자간 검색 시스템.
The method of claim 3, wherein
The user terminal calculates a document encryption key for the encrypted document from the first generation key received from the document management unit, and decrypts the encrypted document based on the calculated document encryption key. .
제 3 항에 있어서,
상기 문서 관리부는,
상기 사용자 등록을 요청한 사용자의 식별정보 및 상기 제 1 비밀키가 포함되도록 생성한 상기 제 2 비밀키를 사용자별로 관리하는 사용자 리스트 관리부,
상기 사용자 단말로부터 수신한 난수 및 상기 제 2 비밀키를 이용하여 상기 문서 암호화키의 생성에 사용되는 제 1 생성키 및 상기 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하는 키 생성부,
상기 암호화된 문서 및 암호화된 키워드를 저장하는 암호화 데이터 저장부 및
상기 쿼리값 및 상기 사용자의 제 2 비밀키에 기초하여 상기 키워드 인덱스 생성키를 산출하고, 상기 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 상기 암호화된 문서 및 상기 암호화된 문서에 대한 제 1 생성키를 상기 사용자 단말로 전송하는 데이터 검색부를 포함하는 다자간 검색 시스템.
The method of claim 3, wherein
The document management unit,
A user list manager which manages the second secret key generated to include the identification information of the user who has requested the user registration and the first secret key for each user;
A key generation unit generating a first generation key used for generating the document encryption key and a second generation key used for generating the keyword index generation key using the random number received from the user terminal and the second secret key ,
An encrypted data storage unit for storing the encrypted document and the encrypted keyword;
The keyword index generation key is calculated based on the query value and the second secret key of the user, and an encrypted document corresponding to the calculated keyword index generation key is searched for. And a data retrieval unit for transmitting the first generation key to the user terminal.
제 5 항에 있어서,
상기 사용자 리스트 관리부는,
사용자 탈퇴를 요청한 사용자의 식별정보 및 상기 사용자 탈퇴를 요청한 사용자의 제 2 비밀키를 상기 사용자 리스트로부터 제거하는 것인 다자간 검색 시스템.
The method of claim 5, wherein
The user list management unit,
And removing the identification information of the user who requested to withdraw the user and the second secret key of the user who requested to withdraw the user from the user list.
제 3 항에 있어서,
상기 사용자 단말은,
상기 문서 암호화키를 생성하여 상기 문서 관리부에 저장할 문서를 암호화하고, 상기 키워드 인덱스 생성키를 생성하여 상기 문서에 대한 키워드를 암호화하는 데이터 암호화부,
상기 사용자의 키워드 입력에 따라 상기 키워드, 상기 사용자의 식별정보 및 상기 사용자 단말의 제 1 비밀키가 포함된 상기 쿼리값을 생성하는 쿼리 생성부 및
상기 문서 관리부로부터 수신한 상기 제 1 생성키로부터 상기 암호화된 문서에 대한 문서 암호화키를 산출하고, 상기 산출한 문서 암호화키에 기초하여 상기 암호화된 문서를 복호화하는 데이터 복호화부를 포함하는 다자간 검색 시스템.
The method of claim 3, wherein
The user terminal,
A data encryption unit generating the document encryption key to encrypt a document to be stored in the document management unit, and generating the keyword index generation key to encrypt a keyword for the document;
A query generator configured to generate the query value including the keyword, identification information of the user, and a first secret key of the user terminal according to a keyword input of the user;
And a data decryption unit for calculating a document encryption key for the encrypted document from the first generation key received from the document manager, and for decrypting the encrypted document based on the calculated document encryption key.
제 1 항에 있어서,
상기 사용자 관리부는,
상기 사용자 등록을 요청한 사용자의 식별정보를 사용자 리스트로 관리하는 사용자 리스트 관리부 및
상기 사용자 관리부의 비밀키를 이용하여 상기 사용자 등록을 요청한 사용자의 사용자 단말에 발급할 상기 제 1 비밀키 및 상기 문서 관리부에 제공할 상기 제 1 비밀키가 포함되도록 생성한 상기 제 2 비밀키를 생성하는 키 생성부를 포함하는 다자간 검색 시스템.
The method of claim 1,
The user management unit,
A user list manager for managing identification information of a user who has requested the user registration as a user list;
Generating the second secret key generated to include the first secret key to be issued to the user terminal of the user who requested the user registration and the first secret key to be provided to the document manager using the secret key of the user manager. Multi-party retrieval system including a key generation unit.
다자간 검색 방법에 있어서,
사용자 관리장치가 사용자 등록 요청에 따라, 상기 사용자 등록을 요청한 사용자의 사용자 단말에 제 1 비밀키를 발급하고, 상기 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 상기 사용자의 식별정보를 문서 서버에 제공하는 단계,
상기 문서 서버가 상기 사용자 단말로부터 수신한 난수 및 상기 제 2 비밀키를 이용하여, 문서를 암호화하는 문서 암호화키의 생성에 사용되는 제 1 생성키 및 상기 문서에 대한 키워드를 암호화하는 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 상기 사용자 단말에 제공하는 단계 및
상기 문서 서버가 상기 문서 암호화키를 이용하여 암호화된 문서 및 상기 키워드 인덱스 생성키를 이용하여 암호화된 키워드를 상기 사용자 단말로부터 수신하여 저장하는 단계를 포함하되,
상기 문서 암호화키는 상기 제 1 생성키에 기초하여 생성되고, 상기 키워드 인덱스 생성키는 상기 제 2 생성키에 기초하여 생성된 것이고,
상기 문서 서버가 상기 사용자가 사용자 리스트에 등록된 사용자인 경우, 상기 사용자 단말로부터 수신한 쿼리값 및 상기 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 상기 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 상기 암호화된 문서 및 상기 암호화된 문서에 대한 제 1 생성키를 상기 사용자 단말로 전송하는 단계를 더 포함하는 다자간 검색 방법.
In the multiparty search method,
In response to a user registration request, a user management device issues a first secret key to a user terminal of a user who has requested the user registration, and documents a second secret key generated to include the first secret key and identification information of the user. Providing the server,
A first generation key used to generate a document encryption key for encrypting a document and a keyword index generation key for encrypting a keyword for the document using the random number received from the user terminal and the second secret key by the document server Generating and providing a second generation key used for generation of the terminal to the user terminal; and
And receiving, by the document server, a document encrypted using the document encryption key and a keyword encrypted using the keyword index generation key from the user terminal.
The document encryption key is generated based on the first generation key, the keyword index generation key is generated based on the second generation key,
If the document server is a user registered in the user list, the document server calculates a keyword index generation key based on the query value received from the user terminal and the second secret key of the user, and calculates the keyword index generation key. Retrieving an encrypted document corresponding to and transmitting the encrypted document and a first generation key for the encrypted document to the user terminal.
삭제delete 제 9 항에 있어서,
상기 사용자 단말은 사용자의 키워드 입력에 따라 상기 키워드, 상기 사용자의 식별정보 및 상기 사용자 단말의 제 1 비밀키가 포함된 상기 쿼리값을 생성하는 것인 다자간 검색 방법.
The method of claim 9,
And the user terminal generates the query value including the keyword, identification information of the user, and a first secret key of the user terminal according to a user's keyword input.
제 9 항에 있어서,
상기 사용자 단말은 상기 문서 서버로부터 수신한 상기 제 1 생성키로부터 상기 암호화된 문서에 대한 문서 암호화키를 산출하고, 상기 산출한 문서 암호화키에 기초하여 상기 암호화된 문서를 복호화하는 것인 다자간 검색 방법.
The method of claim 9,
The user terminal calculates a document encryption key for the encrypted document from the first generation key received from the document server, and decrypts the encrypted document based on the calculated document encryption key. .
제 9 항에 있어서,
상기 문서 서버가 사용자 탈퇴를 요청한 사용자의 식별정보 및 상기 사용자 탈퇴를 요청한 사용자의 제 2 비밀키를 사용자 리스트로부터 제거하는 단계를 더 포함하는 다자간 검색 방법.
The method of claim 9,
And removing, by the document server, identification information of a user who has requested to withdraw from the user and a second secret key of the user who has requested to withdraw from the user from the user list.
다자간 검색 시스템에 있어서,
사용자 등록 요청에 따라, 상기 사용자 등록을 요청한 사용자의 사용자 단말에 제 1 비밀키를 발급하고, 상기 제 1 비밀키가 포함되도록 생성한 제 2 비밀키 및 상기 사용자의 식별정보를 문서 서버에 제공하는 사용자 관리장치,
문서 암호화키를 생성하여 상기 문서 서버에 저장할 문서를 암호화하고, 키워드 인덱스 생성키를 생성하여 상기 문서에 대한 키워드를 암호화하며, 상기 암호화된 문서 및 상기 암호화된 키워드를 상기 문서 서버로 전송하는 사용자 단말 및
상기 사용자 단말로부터 수신한 난수 및 상기 제 2 비밀키를 이용하여 상기 문서 암호화키의 생성에 사용되는 제 1 생성키 및 상기 키워드 인덱스 생성키의 생성에 사용되는 제 2 생성키를 생성하여 상기 사용자 단말에 제공하고, 상기 사용자 단말로부터 수신한 상기 암호화된 문서 및 암호화된 키워드를 저장하는 문서 서버를 포함하되,
상기 사용자 단말은 상기 제 1 생성키에 기초하여 상기 문서 암호화키를 생성하고, 상기 제 2 생성키에 기초하여 상기 키워드 인덱스 생성키를 생성하는 것이고,
상기 사용자 단말은 사용자의 키워드 입력에 따라 상기 키워드, 상기 사용자의 식별정보 및 상기 사용자 단말의 제 1 비밀키가 포함된 쿼리값을 생성하여 상기 문서 서버로 전송하고, 상기 문서 서버로부터 수신한 암호화된 문서를 복호화하는 것인 다자간 검색 시스템.
In the multiparty retrieval system,
In response to a user registration request, issuing a first secret key to a user terminal of the user who requested the user registration, and providing a document server with a second secret key generated to include the first secret key and identification information of the user; User management device,
A user terminal generating a document encryption key to encrypt a document to be stored in the document server, generating a keyword index generation key to encrypt a keyword for the document, and transmitting the encrypted document and the encrypted keyword to the document server. And
The user terminal is generated by using the random number received from the user terminal and the second secret key to generate a first generation key used to generate the document encryption key and a second generation key used to generate the keyword index generation key. And providing a document server for storing the encrypted document and the encrypted keyword received from the user terminal,
The user terminal generates the document encryption key based on the first generation key, and generates the keyword index generation key based on the second generation key;
The user terminal generates a query value including the keyword, the identification information of the user, and the first secret key of the user terminal according to a keyword input of the user, transmits the query value to the document server, and receives the encrypted message received from the document server. A multiparty retrieval system for decrypting a document.
삭제delete 제 14 항에 있어서,
상기 문서 서버는 상기 사용자가 사용자 리스트에 등록된 사용자인 경우, 상기 쿼리값 및 상기 사용자의 제 2 비밀키에 기초하여 키워드 인덱스 생성키를 산출하고, 상기 산출된 키워드 인덱스 생성키에 해당하는 암호화된 문서를 검색하여, 상기 암호화된 문서 및 상기 암호화된 문서에 대한 제 1 생성키를 상기 사용자 단말로 전송하는 것인 다자간 검색 시스템.
15. The method of claim 14,
When the user is a user registered in the user list, the document server calculates a keyword index generation key based on the query value and the second secret key of the user, and encrypts the corresponding keyword index generation key. Retrieving a document, and transmitting the encrypted document and a first generation key for the encrypted document to the user terminal.
제 16 항에 있어서,
상기 사용자 단말은 상기 문서 서버로부터 수신한 상기 제 1 생성키로부터 상기 암호화된 문서에 대한 문서 암호화키를 산출하고, 상기 산출한 문서 암호화키에 기초하여 상기 암호화된 문서를 복호화하는 것인 다자간 검색 시스템.
17. The method of claim 16,
And the user terminal calculates a document encryption key for the encrypted document from the first generation key received from the document server, and decrypts the encrypted document based on the calculated document encryption key. .
KR1020100063390A 2010-07-01 2010-07-01 Multi?user search system and method of encrypted document KR101140576B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100063390A KR101140576B1 (en) 2010-07-01 2010-07-01 Multi?user search system and method of encrypted document

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100063390A KR101140576B1 (en) 2010-07-01 2010-07-01 Multi?user search system and method of encrypted document

Publications (2)

Publication Number Publication Date
KR20120002729A KR20120002729A (en) 2012-01-09
KR101140576B1 true KR101140576B1 (en) 2012-05-02

Family

ID=45609952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100063390A KR101140576B1 (en) 2010-07-01 2010-07-01 Multi?user search system and method of encrypted document

Country Status (1)

Country Link
KR (1) KR101140576B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101978384B1 (en) * 2017-01-09 2019-05-15 순천향대학교 산학협력단 Apparatus and method for data encryption and decryption of web storage
CN110166466B (en) * 2019-05-28 2020-02-21 湖南大学 Multi-user searchable encryption method and system capable of efficiently updating permissions
KR102580407B1 (en) * 2020-11-18 2023-09-20 (주)한국아이티평가원 System and method for non-identification of voice signals
WO2022108217A1 (en) * 2020-11-18 2022-05-27 (주)한국아이티평가원 System and method for de-identification of voice signal
KR102278158B1 (en) 2020-11-20 2021-07-16 주식회사 아이콘루프 Medical information management system and method with enhanced privacy

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060107049A (en) * 2005-04-07 2006-10-13 삼성전자주식회사 Printing apparatus having security funcition and method for the same
KR20090031079A (en) * 2007-09-21 2009-03-25 고려대학교 산학협력단 Method of similarity string matching from ciphertext, recording medium and system using by the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060107049A (en) * 2005-04-07 2006-10-13 삼성전자주식회사 Printing apparatus having security funcition and method for the same
KR20090031079A (en) * 2007-09-21 2009-03-25 고려대학교 산학협력단 Method of similarity string matching from ciphertext, recording medium and system using by the same

Also Published As

Publication number Publication date
KR20120002729A (en) 2012-01-09

Similar Documents

Publication Publication Date Title
US11381398B2 (en) Method for re-keying an encrypted data file
Pasupuleti et al. An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing
CN108494768B (en) Ciphertext searching method and system supporting access control
CN106254324B (en) A kind of encryption method and device of storage file
CN103731432B (en) Multi-user supported searchable encryption method
JP5562687B2 (en) Securing communications sent by a first user to a second user
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
JP2016510962A (en) Encrypted network storage space
KR20130085491A (en) Multi-user searchable encryption system with index validation and tracing and method thereof
JP6770075B2 (en) Encrypted message search method, message sending / receiving system, terminal, program
WO2017033843A1 (en) Searchable cryptograph processing system
CN104168320B (en) The method and system that a kind of user data is shared
Ma et al. CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud
KR101140576B1 (en) Multi?user search system and method of encrypted document
Bhandari et al. A framework for data security and storage in Cloud Computing
CN110610102A (en) Data access method, device and system
KR20210058313A (en) Data access control method and system using attribute-based password for secure and efficient data sharing in cloud environment
Chen et al. Password-authenticated searchable encryption
Tian et al. An efficient scheme of cloud data assured deletion
KR102386717B1 (en) Data access control system based anonymous user attribute and method thereof
KR101422759B1 (en) Secure method for data store and share in data outsourcing
AU2019101343B4 (en) A computer system implemented method for generating a symmetric encryption key for encrypting and decrypting secure data
Yan et al. Secure and efficient big data deduplication in fog computing
Kaci et al. Access control aware search on the cloud computing
CN108920968B (en) File searchable encryption method based on connection keywords

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160225

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170403

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190411

Year of fee payment: 8