KR100839220B1 - Method for searching encrypted database and System thereof - Google Patents

Method for searching encrypted database and System thereof Download PDF

Info

Publication number
KR100839220B1
KR100839220B1 KR1020060101805A KR20060101805A KR100839220B1 KR 100839220 B1 KR100839220 B1 KR 100839220B1 KR 1020060101805 A KR1020060101805 A KR 1020060101805A KR 20060101805 A KR20060101805 A KR 20060101805A KR 100839220 B1 KR100839220 B1 KR 100839220B1
Authority
KR
South Korea
Prior art keywords
document
key
encrypted
search
user
Prior art date
Application number
KR1020060101805A
Other languages
Korean (ko)
Other versions
KR20080035295A (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 KR1020060101805A priority Critical patent/KR100839220B1/en
Publication of KR20080035295A publication Critical patent/KR20080035295A/en
Application granted granted Critical
Publication of KR100839220B1 publication Critical patent/KR100839220B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

암호화된 데이터베이스 검색 방법 및 그 시스템이 개시된다. An encrypted database retrieval method and system are disclosed.

본 발명은 인증된 사용자가 문서 및 상기 문서에 대한 대표 키워드를 입력하면, 상기 문서를 문서암호용 키로 암호화하고 상기 대표 키워드를 검색키로 암호화하여 인덱스를 생성하며, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 단계, 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 입력된 키워드와 상기 사용자의 검색키를 이용한 트랩도어를 생성하여 상기 서버에 질의하는 단계 및 상기 서버에서 상기 트랩도어 및 상기 서버에 저장된 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계를 포함한다. According to the present invention, when an authenticated user inputs a document and a representative keyword for the document, the document is encrypted with a document encryption key, the representative keyword is encrypted with a search key, and an index is generated. Transmitting to the server, when a user authenticated by an arbitrary client inputs a keyword for a document to be searched, generating a trap door using the input keyword and the user's search key and querying the server; and Retrieving an encrypted document using the trapdoor and an index stored in the server, and transmitting the retrieved document to the client.

본 발명에 의하면, 데이터베이스에 암호화 기법을 적용하면서 동시에 효율적인 검색을 가능하게 하고, 정보의 유출을 막아 정보의 오남용을 막을 뿐 아니라 계층적인 접근 권한을 둘 수 있다.According to the present invention, it is possible to apply an encryption technique to a database and at the same time enable efficient retrieval, prevent leakage of information to prevent misuse of information, and provide hierarchical access rights.

Description

암호화된 데이터베이스 검색 방법 및 그 시스템 {Method for searching encrypted database and System thereof}Method for searching encrypted database and system

도 1은 본 발명에 따른 암호화된 데이터베이스 검색 시스템의 블럭도이다.1 is a block diagram of an encrypted database search system in accordance with the present invention.

도 2는 본 발명의 일 실시예에 따른 암호화된 데이터베이스 검색 방법의 흐름도이다.2 is a flowchart of an encrypted database search method according to an embodiment of the present invention.

도 3은 본 발명의 다른 실시예에 따른 암호화된 데이터베이스 검색 방법의 흐름도이다.3 is a flowchart of an encrypted database search method according to another embodiment of the present invention.

도 4는 본 발명의 또다른 실시예에 따른 암호화된 데이터베이스 검색 방법의 흐름도이다.4 is a flowchart of an encrypted database search method according to another embodiment of the present invention.

본 발명은 서버 및 클라이언트 시스템에 관한 것으로, 특히, 암호화된 데이터베이스 검색 방법 및 그 시스템에 관한 것이다.TECHNICAL FIELD The present invention relates to server and client systems, and more particularly, to a method and system for searching encrypted databases.

정보화 사회에서 그 정보들의 저장소인 데이터베이스의 관리는 무엇보다 중요하다. 민감한 정보 및 개인정보를 보호하기 위한 가장 현실적인 방법은 이러한 정보들을 저장하는 데이터베이스의 암호화이다. 현재까지의 상용 모듈이 제공하고 있는 암호화 방법은 암호화된 문서를 읽어와 복호화한 후 키워드 검색을 하는 형식이 대부분이고, 이런 복호화 과정에서 내부 관리자에 의한 정보 유출이 또 하나의 문제로 지적되고 있다. 또 지금까지 암호화 방법이 현실성이 없었던 가장 큰 이유는 암호화된 데이터베이스 상에서는 효율적인 자료 검색을 보장 받지 못했다는 것과 이를 위한 연구 또한 개인 사용자를 위한 안전성 위주의 이론적 연구에 국한되어져 현실적인 면과는 다소 거리가 있었던 것이다. 즉, 지금까지의 연구는 2000년 Song et al.의 대칭키 기반의 문서 전체를 검색하는 시스템에 관한 연구를 필두로 하여, 그 이후에는 문서의 키워드를 암호화하여 만든 인덱스를 사용하여 검색하는 시스템에 관한 연구가 주류를 이루면서 그것의 안전성 증명을 주목적으로 해왔다. In an information society, the management of the database, the repository of the information, is of paramount importance. The most practical way to protect sensitive and private information is the encryption of the database that stores it. The encryption method provided by commercial modules up to now is mostly a form of searching a keyword after reading and decrypting an encrypted document, and information leakage by an internal administrator is pointed out as another problem in this decryption process. In addition, the biggest reason why the encryption method was not practical until now was that the efficient data retrieval was not guaranteed on the encrypted database, and the study for this was limited to the safety-oriented theoretical study for individual users, which was somewhat far from realistic. will be. That is, the research so far started with Song et al.'S research on the system for retrieving the entire document based on the symmetric key in 2000. After that, the system searched using the index created by encrypting the keyword of the document. As research has become mainstream, its main purpose has been to prove its safety.

그러나, 암호화된 문서에 대한 효율적인 검색은 개인정보 뿐만 아니라 민감한 정보 보호에 가장 필요한 기술이다. 따라서 현재 절실히 요구되어지는 것은 암호화된 문서를 복호화하지 않은 상태에서 검색 가능한 시스템의 구축으로 이는 보안성 뿐만 아니라 상용 가능해야 하며, 개인의 비밀 문서 뿐만 아니라 조직의 그룹 관리를 위한 문서에도 적합한 것이어야 한다. 오늘날은 USB같은 대용량 저장 매체가 일반화되어 있기 때문에, 굳이 개인의 비밀 문서를 데이터베이스에 암호화하여 저장할 필요는 없으며, 조직내 구성원들이 공유한 비밀정보를 암호화하여 서버에 저장해 두고 수시로 검색해 업데이트 할 수 있는 환경이 더 현실적이기 때문이다. However, efficient retrieval of encrypted documents is the most necessary technique for protecting sensitive information as well as personal information. Therefore, what is urgently needed is to build a searchable system without decrypting encrypted documents, which must be not only secure but also commercially available, and suitable for documents for organizational group management as well as private secret documents. . Since mass storage media such as USB are commonplace today, it is not necessary to encrypt and store individual secret documents in a database, but it is possible to encrypt and store secret information shared by members in an organization and store it on a server, which can be retrieved and updated from time to time. Because this is more realistic.

그러나, 이러한 그룹 환경에서 암호화된 검색 시스템의 설계는 그리 간단한 것이 아니다. 왜냐하면, 그룹은 가입자의 입/탈퇴가 자유로운 다이나믹한 환경이고 암호화에 사용되는 그룹키는 멤버쉽 체인지 때마다 그것의 안전성을 위해 갱신되어 져야 하는 특성을 가진다. 또, 그룹 환경의 암호화된 검색 시스템에서는 다음과 같은 보안 요구 사항을 필요 조건으로 한다. 우선 탈퇴하는 멤버는 그 그룹에 관한 모든 문서에 대해서는 접근 불가능해야 하고, 새로 가입한 멤버는 그 그룹에 관해서는 현재 문서뿐 아니라 그 이전 문서까지 모두 검색 가능해야 한다. 이것의 해결책으로 우선, 그 그룹의 모든 문서를 복호화하여 갱신된 키로 다시 재암호화 하는 것을 들 수 있을 것이다. 하지만 이러한 과정은 엄청난 계산량을 필요로 한다. However, the design of an encrypted search system in such a group environment is not so simple. Because the group is a dynamic environment in which subscribers can freely enter or leave the subscriber, the group key used for encryption has a property that must be updated for its security whenever membership changes. In addition, an encrypted search system in a group environment requires the following security requirements. First, the withdrawing member must be inaccessible to all documents related to the group, and newly joined members must be able to search both the current document and the previous document for that group. A solution to this would first be to decrypt all the documents in the group and re-encrypt them with the updated key. However, this process requires a great deal of computation.

따라서, 그룹 환경에서의 효율적인 검색 시스템은 멤버쉽 체인지가 일어나는 상황에서 기존 문서의 재암호화 과정 없이 새가입자는 그전 문서까지 검색 가능해야 하며, 탈퇴한 자는 그 이후의 문서에 대해서는 접근 불가능해야 하는 것이다.Therefore, an efficient retrieval system in a group environment should allow new subscribers to search for previous documents without re-encryption of existing documents in the situation of membership change, and those who withdraw should not be able to access subsequent documents.

Park et al.은 처음으로 일방향성 해쉬 함수 키체인을 역으로 사용하여 이런 그룹 환경에 대한 검색 스킴을 제안하였다. 하지만, 이 스킴은 전방향 안전성(forward secrecy)를 만족시키지 못한다. 즉, 탈퇴자 중 한명이 자신이 알고 있던 그룹키를 서버에게 알려준다면, 서버는 그 당시 뿐만 아니라 그 이전 문서까지 모두 복호화 할 수 있으며, 이는 완전한 시스템 붕괴를 의미하는 것이다.Park et al. First proposed a retrieval scheme for this group environment using the unidirectional hash function keychain inversely. However, this scheme does not satisfy forward secrecy. In other words, if one of the opt-outs tells the server the group key he knew, the server can decrypt both the document as well as the previous one, which means a complete system crash.

그리고, Goll et al.이 동시적 검색(conjunctive search)을 제안하였지만 매번 검색시마다 문서 전체를 업데이트 해야 한다. 이들의 스킴은 종래 연구가 제공하지 못했던 'query isolation'(서버는 누적된 결과로부터 검색 결과 외의 평문에 관한 어떠한 정보도 알 수 없다)에 대한 안전성을 제공하면서 암호 검색 시스템이 갖추어야 할 완벽한 안전성을 구현하였다. 그러나, 이를 성취하기 위해서 검색시마다 모든 문서를 업데이트 해야 하는 비효율적인 측면이 발생한 것이다.Goll et al. Proposed a conjunctive search, but the entire document must be updated with each search. Their scheme provides the security for 'query isolation' (the server does not know any information about the plain text other than the search results from the accumulated results) that the previous research did not provide, and implements the perfect security that the crypto search system should have. It was. However, in order to achieve this, there is an inefficient aspect of updating every document every search.

또, Ballad et al. 의 페어링 함수를 이용한 검색 스킴은 10,000개의 인덱스를 검색하는데 720초(720000 ms)가 소요된다. 이것은 절대 상용 불가능한 성능이다. 이러한 성능은 단지 페어링 함수의 연산량 때문만은 아니며, 서버의 데이터베이스 저장 구조와 검색 과정 자체의 문제에 기인하는 것으로 분석된다.In addition, Ballad et al. The search scheme using the pairing function of takes 720 seconds (720000 ms) to search 10,000 indexes. This is a performance that is never commercially available. This performance is not only due to the amount of computation of the pairing function, but also due to problems with the server's database storage structure and the retrieval process itself.

따라서, 종래의 암호화된 문서의 검색방법은 내부 관리자의 정보 유출을 방지할 수 없고, 조직의 그룹 관리를 위한 문서에 적합하지 않으며, 문서의 검색시마다 모든 문서를 업데이트 해야 하고, 데이터 저장 구조상의 문제와 암호화로 인한 검색 절차상의 문제로 DB 스키마 적용의 불가능성으로 인한 비효율적인 문제점이 있다.Therefore, the conventional method of retrieving encrypted documents cannot prevent information leakage of internal administrators, is not suitable for documents for group management of an organization, all documents must be updated every time the documents are retrieved, and problems in data storage structure are required. There is an inefficient problem due to the impossibility of applying DB schema due to problems of search procedure due to encryption and encryption.

따라서, 본 발명이 이루고자 하는 첫번째 기술적 과제는 암호화된 문서 검색시의 비효율성을 최소화하고, 데이터베이스에 암호화 기법을 적용하면서 동시에 효율적인 검색을 가능하게 하고, 정보의 유출을 막아 정보의 오/남용을 막을 뿐 아니라 계층적인 접근 권한을 두어 정보의 체계적인 관리 및 효율적인 자료 검색이 가능하게 하는 암호화된 데이터베이스 검색 방법을 제공하는데 있다.Accordingly, the first technical problem to be achieved by the present invention is to minimize the inefficiency in retrieving encrypted documents, to enable efficient retrieval while applying encryption techniques to the database, and to prevent information leakage and misuse of information by preventing information leakage. In addition, it provides an encrypted database search method that enables hierarchical access to systematically manage information and enable efficient data retrieval.

본 발명이 이루고자 하는 두번째 기술적 과제는 상기의 암호화된 데이터베이스 검색 방법이 적용된 암호화된 데이터베이스 검색 시스템을 제공하는데 있다.The second technical problem to be achieved by the present invention is to provide an encrypted database search system to which the encrypted database search method is applied.

상기 첫번째 기술적 과제를 이루기 위하여, 본 발명은 인증된 사용자가 문서 및 상기 문서에 대한 대표 키워드를 입력하면, 상기 문서를 문서암호용 키로 암호 화하고 상기 대표 키워드를 검색키로 암호화하여 인덱스를 생성하며, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 단계, 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 입력된 키워드와 상기 사용자의 검색키를 이용한 트랩도어를 생성하여 상기 서버에 질의하는 단계 및 상기 서버에서 상기 트랩도어 및 상기 서버에 저장된 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계를 포함하는 암호화된 데이터베이스 검색 방법을 제공한다.In order to achieve the first technical problem, when the authenticated user inputs a document and a representative keyword for the document, the present invention encrypts the document with a document encryption key and encrypts the representative keyword with a search key to generate an index. Transmitting the encrypted document and the index to the server, when a user authenticated by an arbitrary client inputs a keyword for a document to be searched, generates a trap door using the input keyword and the search key of the user. And querying the server and retrieving the encrypted document using the trapdoor and the index stored in the server, and transmitting the retrieved document to the client.

또한, 상기 첫번째 기술적 과제를 이루기 위하여, 본 발명은 인증된 사용자가 문서 및 상기 문서에 대한 복수의 키워드를 입력하는 단계, 상기 문서를 문서암호용 키로 암호화하는 단계, 상기 복수의 키워드로부터 임의의 키워드를 추출하여 동시적 검색을 위한 병합 검색어를 구성하고, 상기 복수의 키워드 및 상기 병합 검색어를 검색키로 암호화하여 인덱스를 생성하는 단계, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 단계, 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 복수의 키워드 및 상기 병합 검색어에 대해 상기 입력된 키워드를 상기 사용자의 검색키 및 랜덤하게 생성한 난수로 암호화한 트랩도어를 생성하여 상기 서버에 질의하는 단계 및 상기 서버에서 상기 트랩도어 및 상기 서버에 저장된 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계를 포함하는 암호화된 데이터베이스 검색 방법을 제공한다.In addition, in order to achieve the first technical problem, the present invention comprises the steps of an authenticated user inputs a document and a plurality of keywords for the document, encrypting the document with a key for document encryption, any keyword from the plurality of keywords Constructing a merged search term for a simultaneous search and encrypting the plurality of keywords and the merged search term with a search key to generate an index, transmitting the encrypted document and the index to the server, When a user authenticated in the client inputs a keyword for a document to be searched, a trap door is generated by encrypting the plurality of keywords and the merged keyword with the user's search key and a randomly generated random number. Querying the server and at the server the trapdoor and the server A method of searching an encrypted database, the method comprising: searching for an encrypted document using an index stored in and transmitting the retrieved document to the client.

또한, 상기 첫번째 기술적 과제를 이루기 위하여, 본 발명은 인증된 사용자 가 문서 및 상기 문서에 대한 복수의 키워드를 입력하는 단계, 상기 문서를 문서암호용 키로 암호화하고, 상기 복수의 키워드를 검색키로 암호화하여 인덱스를 생성하며, 상기 암호화된 문서에 대한 식별자, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 단계, 상기 서버에서 상기 인덱스와 상기 식별자를 매칭시킨 제1리스트를 생성하고, 상기 식별자와 상기 암호화된 문서를 매칭시킨 제2리스트를 생성하는 단계, 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 입력된 키워드를 상기 사용자의 검색키로 암호화한 트랩도어를 생성하여 상기 서버에 질의하는 단계 및 상기 서버에서 상기 제1리스트 및 상기 제2리스트를 이용하여 상기 트랩도어가 가리키는 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계를 포함하는 암호화된 데이터베이스 검색 방법을 제공한다.In addition, in order to achieve the first technical problem, the present invention comprises the steps of an authenticated user inputs a document and a plurality of keywords for the document, encrypting the document with a document encryption key, and encrypting the plurality of keywords with a search key Generating an index, transmitting an identifier for the encrypted document, the encrypted document, and the index to the server, generating a first list of matching the index and the identifier at the server; Generating a second list of matching encrypted documents; when an authenticated user inputs a keyword for a document to be searched by an arbitrary client, a trap door is generated by encrypting the input keyword with the search key of the user; Querying a server and using the first list and the second list at the server W provides an encrypted database, the search method comprising the trap retrieve encrypted document door points and transmits the retrieved document to the client.

상기 두번째 기술적 과제를 이루기 위하여, 본 발명은 복수의 클라이언트 및 서버를 포함하는 데이터베이스 검색 시스템에 있어서, 상기 데이터베이스 검색 시스템은 사용될 보안 정책을 설정하고, 사용자들의 아이디, 패스워드, 문서암호용 키 및 검색키를 생성하여 키매칭 테이블에 저장하며, 상기 키매칭 테이블을 주기적으로 각 사용자들의 클라이언트에 전송하는 그룹 메니저를 포함하고, 상기 클라이언트는 상기 키매칭 테이블에 의해 인증된 사용자가 문서 및 상기 문서에 대한 대표 키워드를 입력하면, 상기 문서를 문서암호용 키로 암호화하고 상기 대표 키워드를 검색키로 암호화하여 인덱스를 생성하며, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 업로드부 및 상기 키매칭 테이블에 의해 인증된 사용자가 검 색할 문서에 대한 키워드를 입력하면, 상기 입력된 키워드와 상기 사용자의 검색키를 이용한 트랩도어를 생성하여 상기 서버에 질의하는 검색부를 포함하고, 상기 서버는 상기 트랩도어 및 상기 서버에 저장된 인덱스를 이용하여 약정된 프로토콜에 의해 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 것을 특징으로 하는 암호화된 데이터베이스 검색 시스템을 제공한다.In order to achieve the second technical problem, the present invention provides a database retrieval system including a plurality of clients and servers, wherein the database retrieval system sets a security policy to be used, user ID, password, key for document password and retrieval key. Generate and store in a key matching table, the group manager periodically transmitting the key matching table to a client of each user, wherein the client is authorized by the key matching table to represent the document and the document. If a keyword is inputted, the document is encrypted with a key for document encryption, the representative keyword is encrypted with a search key to generate an index, and is authenticated by an uploading unit for transmitting the encrypted document and the index to the server and the key matching table. To the document you want to retrieve. When a keyword is input, a search unit is generated to query the server by generating a trap door using the input keyword and the search key of the user, and the server is a protocol contracted using the trap door and the index stored in the server. It provides an encrypted database retrieval system, characterized in that for retrieving the document encrypted by the transmission and transmitting the retrieved document to the client.

상술한 바와 같이, 본 발명은 완전히 암호화된 검색 시스템의 설계를 목적으로 한다. 민감한 정보를 저장하고 있는 데이터베이스를 암호화하여 그것을 복호화하지 않은 상태에서 암호화된 검색어로 질의하여 검색 가능하게 하는 시스템으로, 이는 서버 관리자는 사용자가 어떠한 검색어로 어떠한 내용의 문서를 검색하는지 모르기 때문에 비신뢰적인 서버 관리자가 사용자의 정보를 임의로 외부로 유출하는 것을 막을 수 있다.As mentioned above, the present invention aims to design a fully encrypted retrieval system. A system that encrypts a database that stores sensitive information and makes it possible to query and search by encrypted search terms without decrypting it. This is unreliable because the server administrator does not know what search terms the user is searching for. The server administrator can prevent the user's information from leaking out arbitrarily.

다음으로, 본 발명은 그룹 환경에서의 다목적용 검색 시스템의 설계를 목적으로 한다. 기존의 사용자와 서버와의 1 대 1인 관계를 다 대 1로 확장하여 앞서 설명한 멤버쉽 체인지로 인한 그룹 환경에서의 검색 시스템의 문제를 해결하였다. 뿐만 아니라, 개인의 비밀 문서와 그룹 구성원들의 비밀 문서 모두 검색 가능하게 하는 다목적용 검색 시스템을 설계하고, 각각 다른 암호화키를 이용한 검색 시스템을 구성함으로써 접근 권한 역시 부여한다.Next, the present invention aims to design a multipurpose search system in a group environment. The existing one-to-one relationship between users and servers has been extended to many-to-one to solve the problem of the search system in the group environment due to the membership change described above. In addition, by designing a multipurpose retrieval system that enables the retrieval of both private and private documents and group members' secret documents, it also grants access by configuring retrieval systems using different encryption keys.

마지막으로, 본 발명은 다양한 기능과 상용 가능한 효율성을 제공을 목적으로 한다. 조직의 정책에 따라 Top secret 같은 일급 비밀을 관리하는 이상적인 안전성을 보장하는 검색 시스템과 그 보다 안전성은 다소 약하지만 현실적인 환경에 서 상용 적합한 효율적인 검색 시스템을 골라 사용할 수 있도록 한다. 상용 가능한 효율적인 검색 시스템은 암호화로 인한 검색 시스템의 비효율성을 극복한 것이어야 하며, 이를 위해 DB 스키마의 적용이 가능한 검색 구조이어야 한다. 그리고 효율적인 동시적 검색이 가능한 검색 시스템이어야 한다.Finally, the present invention aims to provide a variety of functions and compatible efficiencies. According to the organization's policy, it is possible to select an ideal security system for managing top secrets such as top secrets and an efficient search system that is commercially suitable in a somewhat less secure but realistic environment. An efficient search system that can be used commercially must overcome the inefficiency of the search system due to encryption. For this purpose, an efficient search system must be applicable to the DB schema. And it should be a search system capable of efficient simultaneous search.

본 발명은 암호화된 문서를 복호화하지 않고 암호화된 키워드를 이용하여 원하는 문서를 검색하는 방법 및 시스템에 관한 것이다.The present invention relates to a method and system for searching for a desired document using an encrypted keyword without decrypting the encrypted document.

본 발명의 시나리오는 거대한 계층적 그룹의 하위 그룹인 gi의 멤버 pj은 그룹의 비밀 공유 문서 D1을 사내의 서버에 암호화하여 저장하고 키워드 w1를 이용하여 D1을 검색하려 한다. 이때, 다음과 같은 4가지 과정을 거친다. Scenario of the present invention to store the encrypted p j is a member of the group shared secret document D 1 in the g i sub-group of huge hierarchical organization of the group to a server and retrieve the D 1 using the keyword w 1. At this time, the following four processes.

첫번째, 준비 과정(Setup process)이다. 그룹 메니저(GM)는 검색 시스템에 사용될 함수 및 변수 크기, 키사이즈 등을 결정한다. 또한, 그룹 메니저는 사용자들의 등록을 수행하는데, 각 그룹 구성원 및 개인 사용자들을 아이디와 패스워드, 문서 암호용 키, 검색키를 생성하여 키매칭 테이블에 저장한다. 그룹 메니저는 각 사용자들의 클라이언트 프로그램에 키매칭 테이블 전송한다.First is the setup process. The group manager (GM) determines the function and variable size, key size, etc. to be used in the retrieval system. In addition, the group manager performs registration of users. Each group member and individual user generates an ID, a password, a document password key, and a retrieval key and stores them in a key matching table. The group manager sends a keymatching table to the client program of each user.

두번째, 인증 과정(Authentication process)이다. 사용자 로긴(login)은 입력창에 아이디와 패스워드를 입력하고, 그것과 매칭되는 값이 클라이언트 프로그램 내의 키매칭 테이블에 있는지 스캔하는 방식으로 수행될 수 있다. 인증 성공의 경우, 클라이언트의 비밀키로 암호화 되어있던 사용자의 문서 암호화키와 검색키를 복호화한다.Second is the authentication process. The user login may be performed by inputting an ID and password in an input window and scanning whether a value matching it is in a key matching table in the client program. In the case of successful authentication, the document encryption key and the search key of the user encrypted with the client secret key are decrypted.

세번째, 업로딩 과정(Uploading process)이다. 사용자는 문서와 그 문서의 대표 키워드를 입력한다. 클라이언트 프로그램은 복호화한 사용자의 문서암호용 키와 검색키로 사용자가 입력한문서를 암호화하고 검색키로 키워드를 암호화하여 인덱스를 생성하여 서버에게 전송한다.Third is the uploading process. The user enters the document and a representative keyword of the document. The client program encrypts the document input by the user with the decrypted user's document encryption key and search key, encrypts the keyword with the search key, and generates an index and transmits the index to the server.

네번째, 검색 과정(Search process)이다. 사용자 인증이 완료되고, 인증된 사용자가 검색할 키워드를 입력하면, 클라이언트는 키워드와 사용자의 검색키를 이용하여 질의어(트랩도어)를 생성하고 서버에게 질의한다. 서버는 질의어를 이용하여 테스트 과정 수행하고, 해당 문서를 클라이언트에게 전송한다. 클라이언트는 전송받은 문서를 복호화하여 사용자의 모니터에 출력한다. Fourth, the search process. When user authentication is completed and the authenticated user inputs a keyword to search, the client generates a query word (trap door) using the keyword and the user's search key and queries the server. The server performs the test process using the query and sends the document to the client. The client decrypts the received document and outputs it to the user's monitor.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다.Hereinafter, with reference to the drawings will be described a preferred embodiment of the present invention. However, embodiments of the present invention illustrated below may be modified in many different forms, and the scope of the present invention is not limited to the embodiments described below.

도 1은 본 발명에 따른 암호화된 데이터베이스 검색 시스템의 블럭도이다.1 is a block diagram of an encrypted database search system in accordance with the present invention.

본 발명에 따른 암호화된 데이터베이스 검색 시스템은 그룹 메니저(100), 복수의 클라이언트(110-180) 및 서버(190)를 포함한다.The encrypted database search system according to the present invention includes a group manager 100, a plurality of clients 110-180, and a server 190.

그룹 메니저(100)는 시스템에 사용될 보안 정책을 설정하고, 사용자들의 아이디, 패스워드, 문서암호용 키 및 검색키를 생성하여 키매칭 테이블에 저장하며, 키매칭 테이블을 실시간 또는 주기적으로 각 사용자들의 클라이언트(110-180)에 전송한다.The group manager 100 sets a security policy to be used in the system, generates user IDs, passwords, document encryption keys, and search keys and stores them in the key matching table, and stores the key matching table in real time or periodically for each client of the user. Send it to (110-180).

클라이언트(110)는 클라이언트 프로그램을 포함하는데, 클라이언트 프로그램 은 인증부(111), 업로드부(112) 및 검색부(113)를 포함한다.The client 110 includes a client program, which includes an authenticator 111, an uploader 112, and a searcher 113.

인증부(111)는 클라이언트(110)에 접근하는 사용자를 인증한다. 인증부(111)는 예를 들어, 입력창에 아이디와 패스워드를 입력하고, 입력된 아이디 및 패스워드와 매칭되는 값이 클라이언트 프로그램 내의 키매칭 테이블에 있는지 스캔하는 방식으로 사용자를 인증할 수 있다. 인증부(111)는 키매칭 테이블의 아이디와 패스워드로 개인 사용자 및 그룹 멤버쉽을 인증한다.The authenticator 111 authenticates a user accessing the client 110. For example, the authentication unit 111 may authenticate a user by inputting an ID and a password into an input window and scanning whether a value matching the input ID and password exists in a key matching table in the client program. The authentication unit 111 authenticates individual user and group membership using the ID and password of the key matching table.

업로드부(112)는 키매칭 테이블에 의해 인증된 사용자가 업로드할 문서 및 문서에 대한 대표 키워드를 입력하면, 문서를 문서암호용 키로 암호화하고 대표 키워드를 검색키로 암호화하여 인덱스를 생성한다. 또한, 업로드부(112)는 암호화된 문서 및 인덱스를 서버(190)에 전송한다.When the user authenticated by the key matching table inputs a representative keyword for a document and a document to be uploaded, the uploading unit 112 encrypts the document with a key for document encryption and generates an index by encrypting the representative keyword with a search key. In addition, the uploader 112 transmits the encrypted document and the index to the server 190.

검색부(113)는 키매칭 테이블에 의해 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 입력된 키워드와 사용자의 검색키를 이용한 트랩도어를 생성하여 서버(190)에 질의한다.When the user authenticated by the key matching table inputs a keyword for a document to be searched, the search unit 113 generates a trap door using the input keyword and the user's search key and queries the server 190.

서버(190)는 트랩도어 및 서버에 저장된 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 클라이언트(110)에 전송한다. 예를 들어, 서버(190)는 암호화된 문서 및 인덱스를 저장하기 위한 데이터 베이스(191), 트랩도어 및 인덱스를 이용하여 암호화된 문서를 데이터 베이스(191)에서 검색하고 검색된 문서를 클라이언트(110)에 전송하기 위한 서버 검색부(192)를 포함할 수 있다. 이때, 데이터 베이스(191)는 VLDB를 이용할 수 있다.The server 190 retrieves the encrypted document using the trapdoor and the index stored in the server and transmits the retrieved document to the client 110. For example, the server 190 retrieves the encrypted document from the database 191 using a database 191, a trapdoor and an index for storing the encrypted document and the index, and retrieves the retrieved document from the client 110. It may include a server search unit 192 for transmitting to. In this case, the database 191 may use a VLDB.

도 2는 본 발명의 일 실시예에 따른 암호화된 데이터베이스 검색 방법의 흐 름도이다.2 is a flowchart of an encrypted database search method according to an embodiment of the present invention.

먼저, 인증된 사용자가 문서 및 문서에 대한 대표 키워드를 입력하면, 입력된 문서를 문서암호용 키로 암호화하고 대표 키워드를 검색키로 암호화하여 인덱스를 생성하며, 암호화된 문서 및 인덱스를 서버에 전송한다(210 과정).First, when an authenticated user inputs a representative keyword for a document and a document, the input document is encrypted with a document encryption key, the representative keyword is encrypted with a search key, an index is generated, and the encrypted document and index are transmitted to the server ( 210 courses).

다음, 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하는지 판단한다(220 과정). Next, it is determined whether an authenticated user inputs a keyword for a document to be searched by an arbitrary client (operation 220).

키워드가 입력되면, 입력된 키워드와 사용자의 검색키를 이용한 트랩도어를 생성하여 서버에 질의한다(225 과정). 반면에 키워드가 입력되지 않으면, 인증된 사용자가 키워드를 입력하거나 다른 작업을 완료할 때까지 대기한다(220 과정).If a keyword is input, a trapdoor using the input keyword and the user's search key is generated and inquired to the server (step 225). On the other hand, if a keyword is not entered, the authenticated user waits until the user inputs the keyword or completes another task (step 220).

마지막으로, 서버에서 트랩도어 및 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 클라이언트에 전송한다(230 과정).Finally, the server retrieves the encrypted document using the trapdoor and the index and transmits the retrieved document to the client (step 230).

바람직하게는, 본 발명의 일 실시예에 따른 암호화된 데이터베이스 검색 방법은 서버로부터 전송받은 문서를 클라이언트가 사용자의 문서암호용 키로 복호화하는 과정을 더 포함할 수 있다. 이때, 복호화된 문서를 사용자의 모니터로 출력하는 과정을 더 포함할 수 있다.Preferably, the encrypted database search method according to an embodiment of the present invention may further include a process of the client decrypting the document received from the server with a key for the document encryption of the user. In this case, the method may further include outputting the decrypted document to the user's monitor.

본 발명에서는 보다 현실적인 환경을 고려하여 그룹 환경에서 암호화된 문서 검색 시스템을 설계한다. 그리고 앞서 말한 Goll et al의 문제점을 극복하면서 안전성은 그들의 스킴처럼 최상으로 유지하는 스킴을 그룹 환경에서 설계한 SSIS를 제안한다. 이런 종래 연구의 연장선상의 스킴에서 탈피하여 현실적으로 상용 가능하도록 최적화 시킨 암호화된 DB 검색 시스템인 ESIS를 제안한다. 이 두 스킴 모두 다 위 도면의 4단계(setup, authentication, uploading, search)로 구성된다. In the present invention, an encrypted document retrieval system is designed in a group environment in consideration of a more realistic environment. Overcoming the aforementioned problems of Goll et al, we propose an SSIS designed scheme in a group environment in which safety is maintained as best as their scheme. We propose ESIS, an encrypted DB retrieval system optimized to be commercially viable by breaking away from the conventional scheme. Both of these schemes consist of four steps (setup, authentication, uploading, and search) in the above figure.

이하에서 사용되는 기호를 정의하면 다음과 같다.

Figure 112006075481713-pat00001
는 그룹 i의 s번째 세션의 그룹키,
Figure 112006075481713-pat00002
는 그룹 i의 검색키(인덱스 생성키)이다.
Figure 112006075481713-pat00003
는 그룹 i의 문서 암호용 키이다. 즉, 문서의 암호와 인덱스 생성에 쓰이는 키를 달리한다.
Figure 112006075481713-pat00004
는 개인 사용자
Figure 112006075481713-pat00005
의 개인키,
Figure 112006075481713-pat00006
는 사용자
Figure 112006075481713-pat00007
의 검색키,
Figure 112006075481713-pat00008
는 개인 사용자
Figure 112006075481713-pat00009
의 문서 암호용 키,
Figure 112006075481713-pat00010
는 사용자 j의 아이디,
Figure 112006075481713-pat00011
는 n번째 문서,
Figure 112006075481713-pat00012
는 문서
Figure 112006075481713-pat00013
의 식별자,
Figure 112006075481713-pat00014
는 n번째 문서
Figure 112006075481713-pat00015
의 t번째 키워드,
Figure 112006075481713-pat00016
는 n번째 문서
Figure 112006075481713-pat00017
의 t번째 인덱스,
Figure 112006075481713-pat00018
는 클라이언트 프로그램의 비밀키,
Figure 112006075481713-pat00019
는 q번째 쿼리에 생성된 난수이다.The symbols used below are defined as follows.
Figure 112006075481713-pat00001
Is the group key of the sth session of group i,
Figure 112006075481713-pat00002
Is the search key (index generation key) of group i.
Figure 112006075481713-pat00003
Is the key for document encryption in group i. In other words, the key used to create the document's password and index is different.
Figure 112006075481713-pat00004
An individual user
Figure 112006075481713-pat00005
'S private key,
Figure 112006075481713-pat00006
Is a user
Figure 112006075481713-pat00007
'S search key,
Figure 112006075481713-pat00008
An individual user
Figure 112006075481713-pat00009
Keys for document encryption,
Figure 112006075481713-pat00010
Is the id of user j,
Figure 112006075481713-pat00011
Is the nth document,
Figure 112006075481713-pat00012
Document
Figure 112006075481713-pat00013
Identifier of,
Figure 112006075481713-pat00014
Is the nth document
Figure 112006075481713-pat00015
T keyword of,
Figure 112006075481713-pat00016
Is the nth document
Figure 112006075481713-pat00017
T index of,
Figure 112006075481713-pat00018
Is the secret key of the client program,
Figure 112006075481713-pat00019
Is a random number generated in the qth query.

본 발명의 다른 실시예에 따른 암호화된 데이터베이스 검색 방법 즉, SSIS(Secure Searchable Index Schemes)는 다음과 같이 구성된다.An encrypted database search method according to another embodiment of the present invention, that is, Secure Searchable Index Schemes (SSIS) is configured as follows.

먼저, 준비 단계 (Setup process)이다. 그룹 메니저는 검색 시스템에 사용될 함수, 변수, 및 키 사이즈를 포함하는 보안 정책을 결정하고 사용자들의 등록절차가 이뤄진다. 이 과정에서 생성된 키들은 키매칭 테이블의 형태로 저장되고 이는 다시 각 사용자들의 클라이언트 프로그램에 전송된다.First, the setup process. The group manager determines the security policy, including the functions, variables, and key sizes to be used in the retrieval system, and the registration process of the users is made. The keys generated in this process are stored in the form of a key matching table, which is then sent back to the client program of each user.

표 1은 키매칭 테이블의 일 예이다.Table 1 shows an example of a key matching table.

IDID PWPW 검색키Search key 문서암호용키Document encryption key ID1, ID2, ID3......ID 1 , ID 2 , ID 3 ...... h(PW1)h (PW 1 ) Ekc(K1)E kc (K 1 ) Ekc(R1)E kc (R 1 ) ID35, ID36, ID39.....ID 35 , ID 36 , ID 39 ..... h(PW2)h (PW 2 ) Ekc(K2)E kc (K 2 ) Ekc(R2)E kc (R 2 ) ........................ ........ .......... .............. ID251, ID253, ID274.....ID 251 , ID 253 , ID 274 ..... h(PW11)h (PW 11 ) Ekc(K11)E kc (K 11 ) Ekc(R11)E kc (R 11 ) .......................... ........ .......... ............ ID2,ID 2 , h(pw2)h (pw 2 ) Ekc(k2)E kc (k 2 ) Ekc(r2)E kc (r 2 ) ID5,ID 5 , h(pw5)h (pw 5 ) Ekc(k5)E kc (k 5 ) Ekc(r5)E kc (r 5 ) ...................... ........ ................ ..............

다음으로, 인증 단계 (Authentication process)이다. 로긴시 사용자가 사전에 등록된 정당한 사용자인지를 인증받는 과정이다.Next is the authentication process. This is a process of authenticating whether a login user is a valid user registered in advance.

다음으로, 업로딩 단계 (Uploading process)이다. 인증에 성공한 사용자는 업로딩할 문서와 그 문서에 대한 키워드를 입력하고 클라이언트 프로그램은 그것들을 암호화하고 인덱스를 생성하여 서버에 전송한다.Next, an uploading process. The user who successfully authenticates enters the documents to upload and keywords for the documents, and the client program encrypts them, creates an index, and sends them to the server.

SSIS에서는 각 문서당 t 개의 키워드를 이용해 인덱스를 구성하며, 동시적 검색(conjunctive search)을 위해 t 개중 r 개를 뽑아 병합 검색어(meta-keywords)를 구성한다. 예로, 키워드 개수 t 가 7이고 r 이 3이면, 싱글 키워드 7개, 2개짜리 키워드 21개(7C2), 3개짜리 키워드 35개(7C3)로 한 문서당 총 63개의 키워드로 인덱스 스트링을 구성하게 된다. 인덱스 스트링 구성 방법은 다음의 수학식 1과 같다;SSIS constructs an index using t keywords for each document, and forms meta-keywords by extracting r of t for conjunctive search. For example, if the number of keywords t is 7 and r is 3, there are 7 single keywords, 21 two keywords ( 7 C 2 ), and 35 three keywords ( 7 C 3 ). It will form an index string. The index string construction method is shown in Equation 1 below;

Figure 112006075481713-pat00020
Figure 112006075481713-pat00020

Figure 112006075481713-pat00021
Figure 112006075481713-pat00021

다음으로, 검색 단계 (Search process)는 트랩도어 생성 단계(Trapdoor generation stage)와 테스트 및 검색 단계 (Test and Search stage)를 포함한다.Next, the search process includes a trapdoor generation stage and a test and search stage.

먼저, 트랩도어 생성 단계를 설명하면 다음과 같다. 여기서 트랩도어란 사용자의 검색키(비밀키)로 키워드를 암호화하여 검색을 요청하는 질의어이다. 알고리즘 Trapdoor는 Tw=(T1, T2)를 출력한다. First, the trapdoor generation step will be described. The trapdoor is a query word that requests a search by encrypting a keyword with a user's search key (secret key). The algorithm Trapdoor outputs T w = (T 1 , T 2 ).

SSIS에서 트랩도어 생성의 일 예는 다음의 수학식 2와 같다.An example of trapdoor generation in SSIS is shown in Equation 2 below.

Figure 112006075481713-pat00022
Figure 112006075481713-pat00022

Figure 112006075481713-pat00023
Figure 112006075481713-pat00023

Figure 112006075481713-pat00024
Figure 112006075481713-pat00024

여기서

Figure 112006075481713-pat00025
는 매 쿼리시 마다 새롭게 랜덤하게 생성되어지는 값이고, 트랩도어는 모듈 연산으로 연산되어진다. 때문에 서버는 다음과 같은 사실을 알 수 없다 ; 1)쿼리된 키워드가 이전에 쿼리되어졌던 키워드와 같은 것인지, 2)쿼리에 사용된 검색키 Ki가 이전 질의자의 키와 같은 것인지, 비록 같은 그룹의 멤버가 같은 키 워드를 검색했을지라도 서버는 그 사실을 알 수 없다. 이것으로 인해, 서버는 축적된 결과들로부터 어떤 새로운 사실을 알아낼 수 없어 암화화된 검색 시스템 상에서 완벽한 안전성을 제공할 수 있다. here
Figure 112006075481713-pat00025
Is a new randomly generated value at every query, and trapdoor is calculated by module operation. Because of this, the server cannot know the following facts; 1) whether the queryed keyword is the same as the one that was queried previously, 2) the search key K i used in the query is the same as the key of the previous query, even if members of the same group searched for the same keyword. It is not known. Because of this, the server cannot learn any new facts from the accumulated results and can provide complete security on the encrypted search system.

다음으로, 테스트 및 검색 단계 (Test and Search stage)를 설명하면 다음과 같다. 모든 n={1,2,...,n}에 대하여, 서버는 전송받은 트랩도어와 각 문서의 인덱스 스트링에 있는 식별자(identifier, id0와 id1)를 사용해서 다음의 수학식 3을 연산하여 문서를 검색하게 된다.Next, the test and search stage will be described. For every n = {1,2, ..., n}, the server uses the following equation (3) using the trapdoors received and the identifiers (id 0 and id 1 ) in the index string of each document: The operation will retrieve the document.

Figure 112006075481713-pat00026
Figure 112006075481713-pat00026

서버는 각 문서마다 연산한 이 결과값과 같은 것이 인덱스 스트링 중에 존재하는지 체크하고, 만약 있다면 해당하는 암호문

Figure 112006075481713-pat00027
을 클라이언트에게 리턴한다.The server checks if there is something in the index string that equals this result computed for each document, and if so, the ciphertext.
Figure 112006075481713-pat00027
To the client.

이와 같이, 효율적인 테스트식의 구성(트랩도어에서 랜덤하게 생성되어진

Figure 112006075481713-pat00028
가 연산후 결과값에는 존재하지 않는다)에 의해서 Golle의 스킴처럼 검색시마다 문서 전체를 업데이트하는 과정 없이도 'query isolation'을 제공할 수 있다.In this way, an efficient test configuration ( randomly generated in the trapdoor
Figure 112006075481713-pat00028
Is not present in the result after the operation), as in Golle's scheme, we can provide 'query isolation' without the need to update the entire document on every search.

마지막으로, 출력 단계(Output Stage)는 다음과 같다. 클라이언트는 받은 암호문

Figure 112006075481713-pat00029
을 문서암호용키 Ri를 사용하여 복호화하고, 그 결과를 사용자의 컴퓨터에 출력한다.Finally, the output stage is as follows. Client received cipher text
Figure 112006075481713-pat00029
Is decrypted using the document encryption key R i and the result is output to the user's computer.

도 3은 본 발명의 다른 실시예에 따른 암호화된 데이터베이스 검색 방법의 흐름도이다.3 is a flowchart of an encrypted database search method according to another embodiment of the present invention.

먼저, 인증된 사용자가 문서 및 상기 문서에 대한 복수의 키워드를 입력한다(310 과정). 다음, 입력된 문서를 문서암호용 키로 암호화하고, 복수의 키워드로부터 임의의 키워드를 추출하여 동시적 검색을 위한 병합 검색어를 구성하며, 복수의 키워드 및 병합 검색어를 검색키로 암호화하여 인덱스를 생성한다(315 과정).First, an authenticated user inputs a document and a plurality of keywords for the document (step 310). Next, the input document is encrypted with a document encryption key, an arbitrary keyword is extracted from the plurality of keywords to form a merged search term for simultaneous search, and the index is generated by encrypting the plurality of keywords and the merged search term with the search key ( 315 courses).

다음, 암호화된 문서 및 인덱스를 서버에 전송하여 업로드한다(317 과정).Next, the encrypted document and the index are transmitted to the server and uploaded (step 317).

업로드가 완료되면, 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하는지 판단한다(320 과정). 키워드가 입력되면, 입력된 키워드를 사용자의 검색키로 암호화하여 복수의 키워드 및 병합 검색어에 대한 트랩도어를 생성하고, 트랩도어로 서버에 질의한다(325 과정).When the upload is completed, it is determined whether an authenticated user inputs a keyword for a document to be searched by an arbitrary client (step 320). When the keyword is input, the input keyword is encrypted with the user's search key to generate a trap door for the plurality of keywords and the merged search word, and the server is queried with the trap door (step 325).

마지막으로, 서버에서 트랩도어 및 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 클라이언트에 전송한다(330 과정).Finally, the server retrieves the encrypted document using the trapdoor and the index and transmits the retrieved document to the client (step 330).

본 발명의 또다른 실시예에 따른 암호화된 데이터베이스 검색 방법 즉, ESIS(Efficient Searchable Index Schemes)는 다음과 같이 구성된다. 스킴 진행 과정 역시 준비 단계와 인증 단계는 SSIS와 같으므로 업로딩 단계와 검색 단계만을 설명한다.An encrypted database search method according to another embodiment of the present invention, that is, ESIS (Efficient Searchable Index Schemes) is configured as follows. The scheme progression also describes the uploading and retrieval steps as the preparation and authentication steps are the same as for SSIS.

먼저, 업로딩 단계(Uploading process)를 설명하면 다음과 같다. ESIS에서는 SSIS와 달리 병합 검색어 (meta - keywords)에 대한 인덱스를 생성하지 않고 동시 적 검색은 교집합 연산법을 이용하기로 한다. 암호문과 인덱스 생성 방법은 다음의 수학식 4를 이용할 수 있다.First, the uploading process will be described as follows. Unlike SSIS, ESIS does not create indexes for merge keywords (meta-keywords) and instead uses the intersection algorithm for simultaneous searches. The cipher text and the index generation method may use Equation 4 below.

Figure 112006075481713-pat00030
Figure 112006075481713-pat00030

사용자가 입력한 업로딩할 문서를 클라이언트 프로그램이 위와 같이 서버에 전송하면 서버는 다음과 같은 인덱스 리스트를 만든다. 즉, ESIS는 2개의 데이터베이스로 구성되며, 여기서 dn은 문서 식별자로서의 역할 뿐만 아니라 주소지로서의 역할도 하는 것이다.When the client program sends the document to be uploaded by the user to the server as above, the server creates the index list as follows. In other words, ESIS consists of two databases, where d n serves not only as a document identifier but also as an address.

이와 같은 방법으로 인덱스 리스트의 구조가 생성되므로 기본키(primary key)와 외부키(foreign key)를 이용한 효율적인 DB 스키마를 적용시킬 수가 있다.In this way, because the structure of the index list is created, an efficient DB schema using primary and foreign keys can be applied.

생성된 인덱스 리스트의 구조의 일 예는 표 2와 같다.An example of the structure of the generated index list is shown in Table 2.

인덱스index 문서 식별자Document identifier 문서 식별자Document identifier 암호화된 문서Encrypted document

Figure 112006075481713-pat00031
Figure 112006075481713-pat00031
Figure 112006075481713-pat00032
Figure 112006075481713-pat00032
Figure 112006075481713-pat00033
Figure 112006075481713-pat00033
Figure 112006075481713-pat00034
Figure 112006075481713-pat00034
Figure 112006075481713-pat00035
Figure 112006075481713-pat00035
Figure 112006075481713-pat00036
Figure 112006075481713-pat00036
Figure 112006075481713-pat00037
Figure 112006075481713-pat00037
Figure 112006075481713-pat00038
Figure 112006075481713-pat00038
.......... ........ .......... ..........
Figure 112006075481713-pat00039
Figure 112006075481713-pat00039
Figure 112006075481713-pat00040
Figure 112006075481713-pat00040
Figure 112006075481713-pat00041
Figure 112006075481713-pat00041
Figure 112006075481713-pat00042
Figure 112006075481713-pat00042
Figure 112006075481713-pat00043
Figure 112006075481713-pat00043
Figure 112006075481713-pat00044
Figure 112006075481713-pat00044
Figure 112006075481713-pat00045
Figure 112006075481713-pat00045
Figure 112006075481713-pat00046
Figure 112006075481713-pat00046
Figure 112006075481713-pat00047
Figure 112006075481713-pat00047
Figure 112006075481713-pat00048
Figure 112006075481713-pat00048
Figure 112006075481713-pat00049
Figure 112006075481713-pat00049
Figure 112006075481713-pat00050
Figure 112006075481713-pat00050
...... ........ .......... ..........
Figure 112006075481713-pat00051
Figure 112006075481713-pat00051
Figure 112006075481713-pat00052
Figure 112006075481713-pat00052
Figure 112006075481713-pat00053
Figure 112006075481713-pat00053
Figure 112006075481713-pat00054
Figure 112006075481713-pat00054
.......... ........ ........ ..........
Figure 112006075481713-pat00055
Figure 112006075481713-pat00055
Figure 112006075481713-pat00056
Figure 112006075481713-pat00056
Figure 112006075481713-pat00057
Figure 112006075481713-pat00057
Figure 112006075481713-pat00058
Figure 112006075481713-pat00058
............ ........ .......... ............
Figure 112006075481713-pat00059
Figure 112006075481713-pat00059
Figure 112006075481713-pat00060
Figure 112006075481713-pat00060
Figure 112006075481713-pat00061
Figure 112006075481713-pat00061
Figure 112006075481713-pat00062
Figure 112006075481713-pat00062
............ ........
Figure 112006075481713-pat00063
Figure 112006075481713-pat00063
Figure 112006075481713-pat00064
Figure 112006075481713-pat00064

이하에서는 표 2의 왼쪽에 제시된 인덱스 리스트를 제1리스트로 정의하고, 오른쪽에 제시된 암호화된 문서는 제2리스트로 정의한다.Hereinafter, the index list shown on the left side of Table 2 is defined as the first list, and the encrypted document shown on the right side is defined as the second list.

다음으로, 검색 단계(Search process)인데, 검색 단계는 트랩도어 생성 단계(Trapdoor generation stage), 테스트 및 검색 단계(Test and search stage)를 포함한다.Next, a search process, which includes a trapdoor generation stage, a test and search stage.

먼저, 트랩도어 생성 단계는 다음의 수학식 5와 같이 트랩도어를 생성한다.First, the trap door generation step generates a trap door as shown in Equation 5 below.

Figure 112006075481713-pat00065
Figure 112006075481713-pat00065

다음, 테스트 및 검색 단계는 서버가 트랩도어를 받으면 인덱스 리스트에서 그것과 같은 값이 있는지 스캔한다. 만약 있다면 그것에 해당하는 문서 식별자를 오른쪽 표에서 다시 찾아 그것에 해당하는 암호화된 문서를 리턴한다. 만약 2개 이상의 동시적 검색(conjunctive search)이라면, 첫 번째 키워드를 검색한 후, 그 결과에 해당하는 인덱스에 대해서만 두 번째 키워드를 검색하여 공통된 결과만을 저장해 두고, 이 공통된 결과값에 대해서만 그 다음 키워드를 검색한다. 질의된 키워드만큼 이런 과정을 수행한 후, 최종 결과만을 사용자에게 리턴한다. 즉, 교집합(inersection) 연산을 통하여 동시적 검색을 수행하는 것이다. Next, the test and search phase scans the server for a value equal to that in the index list when the server receives the trapdoor. If it does, find the corresponding document identifier in the table on the right and return the corresponding encrypted document. If there are two or more conjunctive searches, the first keyword is searched, then the second keyword is searched only for the index corresponding to the result, and only the common result is stored, and the next keyword is used only for this common result. Search for. After doing this for the keywords that were queried, only the final result is returned to the user. In other words, a simultaneous search is performed through an intersection operation.

마지막으로, 출력 단계(Output stage)에서는 클라이언트 프로그램이 서버로부터 받은 암호문을 사용자의 문서암호용키로 복호화하여 그 결과값을 사용자에게 출력한다.Finally, in the output stage, the client program decrypts the cipher text received from the server with the user's document encryption key and outputs the result to the user.

도 4는 본 발명의 또다른 실시예에 따른 암호화된 데이터베이스 검색 방법의 흐름도이다.4 is a flowchart of an encrypted database search method according to another embodiment of the present invention.

먼저, 인증된 사용자가 업로드할 문서 및 문서에 대한 복수의 키워드를 입력한다(410 과정). 다음, 입력된 문서를 문서암호용 키로 암호화하고 복수의 키워드를 검색키로 암호화하여 인덱스를 생성하며, 암호화된 문서에 대한 식별자, 암호화된 문서 및 인덱스를 서버에 전송한다(415 과정).First, a user inputs a plurality of keywords for documents and documents to be uploaded (step 410). Next, the input document is encrypted with a document encryption key, a plurality of keywords are encrypted with a search key to generate an index, and an identifier, an encrypted document, and an index for the encrypted document are transmitted to the server (step 415).

업로드가 완료되면, 서버에서 인덱스와 식별자를 매칭시킨 제1리스트를 생성하고, 식별자와 암호화된 문서를 매칭시킨 제2리스트를 생성한다(417 과정). 이때, 제 1리스트의 인덱스와 식별자를 ‘기본키 (primary key)’로 선언하고, 제 2리스트의 식별자를 ‘외부키 (foreign key)’로 선언하여 DB 스키마를 적용함으로써 관계형 DB를 구성한다.When the upload is completed, the server generates a first list that matches the index and the identifier, and generates a second list that matches the identifier and the encrypted document (step 417). In this case, the relational DB is constructed by declaring the index and identifier of the first list as a 'primary key' and declaring the identifier of the second list as a 'foreign key' to apply a DB schema.

다음, 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하는지 판단한다(420 과정). 키워드가 입력되면, 입력된 키워드를 사용자의 검색키로 암호화한 트랩도어를 생성하여 서버에 질의한다(425 과정).Next, it is determined whether an authenticated user inputs a keyword for a document to be searched by an arbitrary client (operation 420). If a keyword is input, a trapdoor in which the input keyword is encrypted using the user's search key is generated and the server is queried (step 425).

마지막으로, 서버에서 제1리스트 및 제2리스트를 이용하여 트랩도어가 가리키는 암호화된 문서를 검색하고 검색된 문서를 클라이언트에 전송한다(430 과정).Finally, the server searches for the encrypted document indicated by the trapdoor using the first list and the second list, and transmits the retrieved document to the client (step 430).

본 발명은 암호화 키를 이용하여 암호화한 문서를 복호화하지 않은 상태에서 검색 가능하게 하는 시스템에 관한 것이다. The present invention relates to a system that enables retrieval without decrypting a document encrypted using an encryption key.

본 발명은 키워드를 이용한 인덱스 검색 시스템에 관한 것이다. 서버 관리자를 비신뢰적인 내부 공격자로 간주한다. 이런 내부 공격자 및 외부 격자로부터 안전한 시스템을 구축하기 위해 각 문서를 암호화하고, 각 문서를 대표하는 주요 키 워드들을 뽑아 암호화하여 그 문서에 해당하는 인덱스를 만든다. 검색할 때는 검색어를 암호화하여 질의하고, 서버는 이런 질의에 해당하는 인덱스가 그 문서에 속한 것인지를 테스트하여 사용자에게 해당 문서를 리턴한다. The present invention relates to an index search system using keywords. Treat server administrators as untrusted internal attackers In order to build a secure system from such an internal attacker and an external grid, each document is encrypted, and key documents representing each document are extracted and encrypted to create an index corresponding to the document. When searching, the query is encrypted by query, and the server tests whether the index corresponding to the query belongs to the document and returns the document to the user.

본 발명은 보안성과 기능성을 동시에 고려한 상용 적합한 알고리즘에 관한 것이다. 본 발명은 안전한 정보 관리를 위하여 암호화키를 이용한 암호화 기법을 사용한다. 또한, 로긴시 그룹 구성원 및 개인 사용자로서의 인증 과정을 거쳐 접근 권한을 준다. 서버단에서의 복호화 과정 없이 검색 가능하기 때문에 서버 관리자 역시 문서에 대한 내용을 알 수 없다. SSIS는 암호 검색 시스템에 있어서 최고의 안전성에 효율적인 측면을 개선한 알고리즘이다. The present invention relates to a commercially suitable algorithm considering security and functionality at the same time. The present invention uses an encryption technique using an encryption key for secure information management. In addition, access is granted through authentication process as a login group member and individual user. The server administrator can not know the contents of the document because it can be searched without decryption at the server side. SSIS is an algorithm that improves the highest security and efficient aspect of a password retrieval system.

본 발명은 상용 DB와 연동 가능하다. ESIS는 일반 상용 데이터베이스에 사용되는 DB 스키마를 암호화된 검색 시스템에서도 사용 가능하도록 설계하여 검색 속도를 향상시킨다. 페어링 함수를 사용하지 않고도 동시적 검색(conjunctive search, 2개 이상의 검색어를 모두 포함하는 문서 검색)이 가능하다. The present invention can be linked to a commercial DB. ESIS speeds up the search by designing the DB schema used for general commercial databases to be used in an encrypted search system. Concurrent search (document search that includes two or more search terms) is possible without using the pairing function.

본 발명은 다목적용 시스템에 관한 것이다. 종래의 사용자와 서버와의 관계가 1:1인 검색 시스템에서 다:1인 그룹 환경으로 확장한다. 즉, 거대 조직을 하나의 계층적 그룹으로 간주하고, 전체 그룹 및 그 하위 그룹들의 구성원으로서 뿐만 아니라 개인 사용자로서도 검색 가능한 시스템을 구축한다. The present invention relates to a multipurpose system. It extends from a one-to-one search system where the relationship between a user and a server is 1: 1. That is, consider a large organization as a hierarchical group, and build a searchable system not only as a member of the entire group and its subgroups, but also as an individual user.

본 발명은 관리 효율적이다. 그룹 메니저는 계층적 그룹의 여러 하위 그룹들의 구성원들의 키 관리와 등록 절차를 담당한다. 안전성과 기능성을 고려하여 각 키 사이즈와 변수들, 키워드 개수를 결정한다. 즉, 보안 정책 결정자로서의 역할을 수행한다. 클라이언트 프로그램은 검색 시스템에서 일종의 접속 프로그램이다. 사용자를 대신하여 서버와 검색 과정을 수행한다. 이를 위해 키 매칭 테이블을 보유하고 있으며, 이는 주기적으로 그룹 메니저로부터 업데이트된 정보를 내려받아 동기화 시켜준다. 키매칭 테이블은 사용자 로그인시 인증 기능을 수행하고 이로써 접근 제한을 가능하게 한다. 뿐만 아니라, 업데이트가 용이하다. 암호화하여 서버에 저장하고 싶은 문서가 있으면 업로딩 단계와 동일한 방법으로 수행하면 되기 때문에 별도의 제한 없이 업데이트 가능하다. The present invention is management efficient. The group manager is responsible for key management and registration procedures for members of various subgroups of the hierarchical group. Determine key size, variables, and number of keywords in consideration of safety and functionality. It acts as a security policy maker. The client program is a type of access program in the search system. Perform a search with the server on your behalf. For this purpose, it holds a key matching table, which periodically downloads updated information from the group manager and synchronizes it. The key matching table performs an authentication function upon user login, thereby allowing access restriction. In addition, updates are easy. If there is a document that you want to encrypt and store on the server, you can update it without any limitation because you can do it in the same way as the uploading step.

본 발명에 따른 스킴 SSIS, ESIS의 평문 버전인 P-SSIS와 P-ESIS를 모두 같이 실험하였다. 표 3에 의하면 ESIS의 성능은 SSIS보다 월등히 뛰어나며, 평문버전과 거의 차이가 없음을 알 수 있다. 그러나 DB스키마를 적용하지 않았던 처음 실험에서는 그러한 결과가 나오지 않았다. 처음 실험에서는 ESIS 역시 성능이 매우 저조하였다. 그래서 DB스키마를 적용하여 실험하려 하였으나 SSIS는 DB스키마 적용이 불가능한 구조와 검색 방법을 가지고 있었다. 따라서 ESIS에만 기본키와 외부키를 이용한 DB스키마를 적용하여 실험하였고 그 결과 표 3과 같은 놀라운 결과를 얻을 수 있었다. SSIS는 종래 연구들의 구조와 검색 방법을 그대로 따르면서 효율성을 향상시킨 스킴이기 때문에 종래 스킴 역시 성능이 저조할 것이라는 추측 아래 종래 스킴 역시 실험해 보았다. 결과는 예상했던대로 표 4에서 보는 바와 같이 ESIS는 Golle et al.의 스킴과 SSIS보다 약 480배 가량 빠르며, Song et al.의 스킴보다 약 10배 가량 빨랐다.The P-SSIS and P-ESIS, which are plain text versions of the schemes SSIS and ESIS, were tested together. According to Table 3, the performance of ESIS is much better than SSIS, and it is almost no difference from the plain text version. However, the first experiment without DB schema did not show such results. In the first experiments, ESIS was also very poor. So, we tried to experiment with DB schema, but SSIS had structure and search method that DB schema could not be applied. Therefore, we experimented by applying DB schema using primary key and foreign key only to ESIS. Since SSIS is a scheme that improves efficiency while maintaining the structure and search method of the previous studies, the conventional scheme was also experimented under the assumption that the conventional scheme would also perform poorly. As expected, as shown in Table 4, ESIS was about 480 times faster than Golle et al. And SSIS and about 10 times faster than Song et al.

표 3과 표 4의 단위는 ms 이다.The unit of Table 3 and Table 4 is ms.

P-P- SSISSSIS SSISSSIS P-P- ESISESIS ESISESIS 업로딩 시간 (1개문서)Upload time (1 document) 5454 154154 2828 4949 검색Search 1-키워드1-keyword 2-키워드2-keyword 1-키워드1-keyword 2-키워드2-keyword 1-키워드1-keyword 2-키워드2-keyword 1-키워드1-keyword 2-키워드2-keyword 2500개 문서2500 documents 9494 102102 61716171 1414814148 3030 3333 3535 4141 5000개 문서5000 documents 172172 203203 1235912359 2825028250 4141 4545 4747 5252 7500개 문서7500 documents 203203 250250 1851618516 4255442554 5151 5555 6161 7474 10000개 문서10000 documents 281281 320320 3782837828 5757857578 6565 7171 7979 9292

문서 수Number of documents SongSong GolleGolle SSISSSIS ESISESIS 2,5002,500 262262 8,3288,328 61716171 3535 5,0005,000 345345 16,42216,422 1235912359 4747 7,5007,500 608608 24,45324,453 1851618516 6161 10,00010,000 825825 32,45432,454 3782837828 7979

이상에서는 안전성 위주의 스킴인 SSIS와 효율성 위주의 스킴인 ESIS를 설계하고, 이 두 스킴 모두를 구현하여 실험과 분석을 하였다. 이 과정에서 DB 검색 시스템에서 DB가 제공하는 스키마의 적절한 사용이 검색 시스템의 효율성에 얼마나 중요한 역할을 하는지 알 수 있으며 종래 스킴들 역시 DB 스키마 적용이 불가능하여 상용화하기엔 부적합 하다는 것을 실험을 통하여 알 수 있었다. 따라서 사용되는 함수의 연산량과 통신량의 효율성 뿐만 아니라 그것의 응용계층과의 상호 연동시 효율성도 반드시 고려해야 할 중요한 사항이라는 것을 알 수 있다.In the above, we designed SSIS, a safety-oriented scheme, and ESIS, an efficiency-oriented scheme, and implemented both experiments and analyzed them. In this process, it can be seen how important the proper use of the schema provided by the DB in the DB search system plays an important role in the efficiency of the search system. Experiments show that the conventional schemes are not suitable for commercialization because the DB schema is not applicable. . Therefore, it can be seen that not only the efficiency of the calculation and communication of the functions used, but also the efficiency when interworking with its application layer is an important factor to consider.

NEIS 및 전자정부 구현과 더불어 개인정보보호는 굉장히 중요한 핫 이슈로 부각되었다. NEIS 및 전자정부에 사용되는 데이터베이스의 오남용을 가장 확실하게 방지할 수 있는 방안은 개인정보보호와 기밀한 정보보호를 담당하는 데이터베이스의 암호화이다. 본 발명은 데이터베이스에 암호화 기법을 적용하면서 동시에 효율적인 검색을 가능하게 하여 기업의 경쟁력과 관공서의 공신력, 그리고 서비스 제공 업자들 및 금융기관의 보안상 신뢰도를 높일 수 있다. 근자에 일어난 국내 대기업의 채용 응시자 정보가 인터넷에 대규모로 유출된 사건만 봐도 데이터베이스의 암호화가 얼마나 중요한 가를 알 수 있다. Along with the implementation of NEIS and e-government, privacy has become a very important hot issue. The most reliable protection against misuse of databases used by NEIS and e-government is encryption of databases responsible for privacy and confidential information protection. The present invention can improve the competitiveness of the company, the public trust of the government, and the security reliability of service providers and financial institutions by applying encryption techniques to the database and at the same time enabling efficient search. The fact that large-scale leaks in job candidates of large Korean companies in recent years have been leaked to the Internet shows the importance of database encryption.

경제적인 측면으로는 DB업계의 호응을 예상할 수 있다. 이미 국외에선 개발 단계에 들어가 있지만, 암호화 기법의 비효율성이란 선입견과 보안 문제의 인식 부족 때문에 국내에선 연구에 대한 시도조차 없는 상황에서 이와 같이 상용 가능한 효율적인 성능을 가진 시스템의 개발은 국내 업계에게 DB 보안에 관한 중요성을 고취시키고 상품 개발을 유도해 낼 수 있을 것으로 보여진다. 또한 이런 상품 개발은 기업, 병원, 관공서, 금융기관, 서비스 업체 등 개인 정보 및 민감한 정보를 다루는 데이터베이스를 두는 모든 조직들은 이를 사용할 것으로 여겨지므로 넓은 시장을 확보할 수 있을 것으로 보여진다. 기업이나 관공서 또는 병원 같은 공공기관에서는 외부로 노출되어져서는 안될 기밀한 정보를 많이 다룬다. 본 발명은 그들의 데이터베이스에 암호화 기법을 적용하여 정보의 유출을 막아 정보의 오남용을 막을 뿐 아니라 계층적인 접근 권한을 두어 정보의 체계적인 관리 및 효율적인 자료 검색이 가능하게 하고, 이러한 데이터베이스의 효율적인 검색 시스템을 실현함으로써 안전한 정보 관리 체계를 실현하여 정보화 사회에서 경제 성장뿐만 아니라 국가 정책 발전의 원동력이 되게 할 것이다.On the economic side, we can expect the DB industry to respond. Already in the development stage abroad, inefficiency of encryption technique is prejudice and lack of awareness of security problem, so there is no attempt to research in Korea. It seems to be able to inspire the importance of and to induce product development. In addition, such product development is expected to be used by all organizations that have databases that deal with personal and sensitive information, such as companies, hospitals, government offices, financial institutions, and service providers, and thus have a broad market. Public institutions such as corporations, public offices and hospitals deal with a lot of confidential information that should not be exposed to the outside. The present invention not only prevents information leakage by applying encryption techniques to their databases, but also provides hierarchical access rights to enable systematic management of information and efficient data retrieval, and realize an efficient retrieval system of such databases. By implementing a secure information management system, it will be the driving force of national policy development as well as economic growth in the information society.

바람직하게는, 본 발명의 암호화된 데이터베이스 검색 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록하여 제공할 수 있다.Preferably, a program for executing the encrypted database retrieval method of the present invention on a computer may be recorded and provided on a computer-readable recording medium.

본 발명은 소프트웨어를 통해 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.The invention can be implemented via software. When implemented in software, the constituent means of the present invention are code segments that perform the necessary work. The program or code segments may be stored on a processor readable medium or transmitted by a computer data signal coupled with a carrier on a transmission medium or network.

컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 테이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The computer-readable recording medium includes all kinds of recording devices in which data is stored which can be read by a computer system. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, DVD ± ROM, DVD-RAM, magnetic tape, floppy disks, hard disks, optical data storage devices, and the like. The computer readable recording medium can also be distributed over network coupled computer devices so that the computer readable code is stored and executed in a distributed fashion.

본 발명은 도면에 도시된 일 실시예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary and will be understood by those of ordinary skill in the art that various modifications and variations can be made therefrom. However, such modifications should be considered to be within the technical protection scope of the present invention. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이, 본 발명에 의하면, 데이터베이스에 암호화 기법을 적용하 면서 동시에 효율적인 검색을 가능하게 하고, 정보의 유출을 막아 정보의 오남용을 막을 뿐 아니라 계층적인 접근 권한을 두어 정보의 체계적인 관리 및 효율적인 자료 검색이 가능하게 하는 효과가 있다.As described above, according to the present invention, it is possible to apply an encryption scheme to a database and at the same time enable efficient retrieval, prevent leakage of information to prevent misuse of information, and provide hierarchical access rights to systematically manage and manage information. It has the effect of enabling data retrieval.

Claims (11)

인증된 사용자가 문서 및 상기 문서에 대한 대표 키워드를 입력하면, 상기 문서를 문서암호용 키로 암호화하고 상기 대표 키워드를 검색키로 암호화하여 인덱스를 생성하며, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 단계;When an authenticated user inputs a document and a representative keyword for the document, the document is encrypted with a document encryption key, the representative keyword is encrypted with a search key to generate an index, and the encrypted document and the index are transmitted to the server. Making; 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 입력된 키워드와 상기 사용자의 검색키를 이용한 트랩도어를 생성하여 상기 서버에 질의하는 단계; 및When a user authenticated in an arbitrary client inputs a keyword for a document to be searched, generating a trap door using the input keyword and the user's search key and querying the server; And 상기 서버에서 상기 트랩도어 및 상기 서버에 저장된 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계를 포함하는 암호화된 데이터베이스 검색 방법.And retrieving the encrypted document using the trapdoor and the index stored in the server, and transmitting the retrieved document to the client. 제 1 항에 있어서,The method of claim 1, 상기 클라이언트에서 상기 검색된 문서를 상기 사용자의 문서암호용 키를 이용하여 복호화하는 단계를 더 포함하는 것을 특징으로 하는 암호화된 데이터베이스 검색 방법.And decrypting, at the client, the retrieved document using the document encryption key of the user. 제 2 항에 있어서,The method of claim 2, 상기 복호화된 문서를 상기 클라이언트의 모니터로 출력하는 단계를 더 포함하는 것을 특징으로 하는 암호화된 데이터베이스 검색 방법.And outputting the decrypted document to the monitor of the client. 제 1 항에 있어서,The method of claim 1, 상기 문서 및 상기 문서에 대한 대표 키워드를 입력하는 단계는Entering the document and a representative keyword for the document 그룹 메니저에서 검색 시스템에 사용될 함수, 변수, 및 키 사이즈를 포함하는 보안 정책을 결정하고, 사용자들의 아이디, 패스워드, 문서암호용 키 및 검색키를 생성하여 키매칭 테이블에 저장하는 단계; 및Determining a security policy including a function, a variable, and a key size to be used in the retrieval system in the group manager, generating a user ID, a password, a key for a document password, and a retrieval key and storing the key in a key matching table; And 상기 키매칭 테이블을 주기적으로 각 사용자들의 클라이언트에 전송하는 단계를 포함하는 것을 특징으로 하는 암호화된 데이터베이스 검색 방법.Periodically transmitting the keymatching table to a client of each user. 제 4 항에 있어서,The method of claim 4, wherein 상기 문서 및 상기 문서에 대한 대표 키워드를 입력하는 단계는Entering the document and a representative keyword for the document 임의의 클라이언트에서 사용자가 입력한 아이디 및 패스워드가 상기 키매칭 테이블에 존재하면, 상기 아이디 및 패스워드를 입력한 사용자를 인증하는 단계; 및Authenticating a user who inputs the ID and password if the ID and password input by the user in any client exist in the key matching table; And 상기 인증된 사용자의 클라이언트에서 비밀키로 암호화된 문서암호용 키 및 검색키를 복호화하는 단계를 포함하는 것을 특징으로 하는 암호화된 데이터베이스 검색 방법.And decrypting a document encryption key and a retrieval key encrypted with a secret key at a client of the authenticated user. 인증된 사용자가 문서 및 상기 문서에 대한 복수의 키워드를 입력하는 단계;Inputting a document and a plurality of keywords for the document by an authenticated user; 상기 문서를 문서암호용 키로 암호화하는 단계;Encrypting the document with a key for document encryption; 상기 복수의 키워드로부터 임의의 키워드를 추출하여 동시적 검색을 위한 병합 검색어를 구성하고, 상기 복수의 키워드 및 상기 병합 검색어를 검색키로 암호화하여 인덱스를 생성하는 단계;Extracting an arbitrary keyword from the plurality of keywords to construct a merged search term for simultaneous search, and generating an index by encrypting the plurality of keywords and the merged search term with a search key; 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 단계;Sending the encrypted document and the index to the server; 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 복수의 키워드 및 상기 병합 검색어에 대해 상기 입력된 키워드를 상기 사용자의 검색키 및 랜덤하게 생성한 난수로 암호화한 트랩도어를 생성하여 상기 서버에 질의하는 단계; 및When a user authenticated in an arbitrary client inputs a keyword for a document to be searched, a trapdoor which encrypts the input keyword for the plurality of keywords and the merged search word with the user's search key and a randomly generated random number is generated. Generating and querying the server; And 상기 서버에서 상기 트랩도어 및 상기 서버에 저장된 인덱스를 이용하여 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계를 포함하는 암호화된 데이터베이스 검색 방법.And retrieving the encrypted document using the trapdoor and the index stored in the server, and transmitting the retrieved document to the client. 제 6 항에 있어서,The method of claim 6, 상기 검색된 문서를 상기 클라이언트에 전송하는 단계는The step of transmitting the retrieved document to the client 모든 n={1,2,...,n}에 대하여, 상기 서버에서 전송받은 트랩도어
Figure 112006075481713-pat00066
Figure 112006075481713-pat00067
와 각 문서의 인덱스에 있는 식별자 id0 및 id1를 이용하여
Figure 112006075481713-pat00068
Figure 112006075481713-pat00069
Figure 112006075481713-pat00070
를 연산하여, 각 문서마다 연산한 결과값과 동일한 것이 인덱스 중에 존재하면 해당하는 암호화된 문서를 상기 클라이언트에게 전송하는 단계를 포함하는 것을 특징으로 하는 암호화된 데이터베이스 검색 방법.
For every n = {1,2, ..., n}, the trapdoor received from the server
Figure 112006075481713-pat00066
Figure 112006075481713-pat00067
And the identifiers id 0 and id 1 in the index of each document
Figure 112006075481713-pat00068
Figure 112006075481713-pat00069
Figure 112006075481713-pat00070
And if the same as the result value calculated for each document exists in the index, transmitting the corresponding encrypted document to the client.
인증된 사용자가 문서 및 상기 문서에 대한 복수의 키워드를 입력하는 단계;Inputting a document and a plurality of keywords for the document by an authenticated user; 상기 문서를 문서암호용 키로 암호화하고, 상기 복수의 키워드를 검색키로 암호화하여 인덱스를 생성하며, 상기 암호화된 문서에 대한 식별자, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 단계;Encrypting the document with a key for document encryption, encrypting the plurality of keywords with a search key to generate an index, and transmitting an identifier, the encrypted document, and the index for the encrypted document to the server; 상기 서버에서 상기 인덱스와 상기 식별자를 매칭시킨 제1리스트를 생성하고, 상기 식별자와 상기 암호화된 문서를 매칭시킨 제2리스트를 생성하는 단계;Generating a first list in which the index matches the identifier and a second list in which the identifier matches the encrypted document; 임의의 클라이언트에서 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 입력된 키워드를 상기 사용자의 검색키로 암호화한 트랩도어를 생성하여 상기 서버에 질의하는 단계; 및When a user authenticated in an arbitrary client inputs a keyword for a document to be searched, generating a trap door encrypted with the input keyword using the search key of the user and querying the server; And 상기 서버에서 상기 제1리스트 및 상기 제2리스트를 이용하여 상기 트랩도어가 가리키는 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계를 포함하는 암호화된 데이터베이스 검색 방법.Searching for the encrypted document indicated by the trapdoor using the first list and the second list at the server and transmitting the retrieved document to the client. 제 8 항에 있어서,The method of claim 8, 상기 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 단계는Retrieving the encrypted document and transmitting the retrieved document to the client 상기 트랩도어가 2 이상의 키워드를 포함하는 동시적 검색을 나타내는 경우, 하나의 키워드를 검색한 결과에 해당하는 인덱스에 대해서만 다음 키워드를 검색하여 공통된 결과를 추출하는 교집합 연산을 이용하여 동시적 검색을 수행하는 단계를 포함하는 것을 특징으로 하는 암호화된 데이터베이스 검색 방법.When the trapdoor indicates a simultaneous search that includes two or more keywords, a simultaneous search is performed using an intersection operation that searches for the next keyword and extracts a common result only for an index corresponding to one keyword search result. And encrypting the database. 제 8 항에 있어서,The method of claim 8, 상기 제2리스트를 생성하는 단계는Generating the second list 상기 제1리스트의 인덱스와 식별자를 기본키로 선언하고, 상기 제2리스트의 식별자를 외부키로 선언하여 DB 스키마를 적용하여 암호화된 데이터베이스에 관계형 DB를 구성하는 단계를 포함하는 것을 특징으로 하는 암호화된 데이터베이스 검색 방법.Declaring an index and an identifier of the first list as a primary key, Declaring the identifier of the second list as a foreign key to apply a DB schema to configure a relational DB in an encrypted database Search method. 복수의 클라이언트 및 서버를 포함하는 데이터베이스 검색 시스템에 있어서,In a database search system including a plurality of clients and servers, 상기 데이터베이스 검색 시스템은The database search system 사용될 보안 정책을 설정하고, 사용자들의 아이디, 패스워드, 문서암호용 키 및 검색키를 생성하여 키매칭 테이블에 저장하며, 상기 키매칭 테이블을 주기적으로 각 사용자들의 클라이언트에 전송하는 그룹 메니저를 포함하고,Setting a security policy to be used, generating a user ID, password, document encryption key and search key, and storing the key matching table, and including a group manager to periodically transmit the key matching table to clients of each user, 상기 클라이언트는The client is 상기 키매칭 테이블에 의해 인증된 사용자가 문서 및 상기 문서에 대한 대표 키워드를 입력하면, 상기 문서를 문서암호용 키로 암호화하고 상기 대표 키워드를 검색키로 암호화하여 인덱스를 생성하며, 상기 암호화된 문서 및 상기 인덱스를 상기 서버에 전송하는 업로드부; 및When a user authenticated by the key matching table inputs a document and a representative keyword for the document, the document is encrypted with a document encryption key and the representative keyword is encrypted with a search key to generate an index. The encrypted document and the Upload unit for transmitting the index to the server; And 상기 키매칭 테이블에 의해 인증된 사용자가 검색할 문서에 대한 키워드를 입력하면, 상기 입력된 키워드와 상기 사용자의 검색키를 이용한 트랩도어를 생성하여 상기 서버에 질의하는 검색부를 포함하고,When a user authenticated by the key matching table inputs a keyword for a document to be searched, the search unit generates a trap door using the input keyword and the search key of the user and queries the server. 상기 서버는 상기 트랩도어 및 상기 서버에 저장된 인덱스를 이용하여 약정된 프로토콜에 의해 암호화된 문서를 검색하고 검색된 문서를 상기 클라이언트에 전송하는 것을 특징으로 하는 암호화된 데이터베이스 검색 시스템.And the server retrieves the document encrypted by the contract protocol using the trapdoor and the index stored in the server, and transmits the retrieved document to the client.
KR1020060101805A 2006-10-19 2006-10-19 Method for searching encrypted database and System thereof KR100839220B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060101805A KR100839220B1 (en) 2006-10-19 2006-10-19 Method for searching encrypted database and System thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060101805A KR100839220B1 (en) 2006-10-19 2006-10-19 Method for searching encrypted database and System thereof

Publications (2)

Publication Number Publication Date
KR20080035295A KR20080035295A (en) 2008-04-23
KR100839220B1 true KR100839220B1 (en) 2008-06-19

Family

ID=39574310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060101805A KR100839220B1 (en) 2006-10-19 2006-10-19 Method for searching encrypted database and System thereof

Country Status (1)

Country Link
KR (1) KR100839220B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225107B2 (en) 2008-12-18 2012-07-17 Electronics And Telecommunications Research Institute Methods of storing and retrieving data in/from external server
KR101190059B1 (en) * 2008-12-12 2012-10-16 한국전자통신연구원 Method for data encryption and method for conjunctive keyword search of encrypted data

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100899450B1 (en) * 2007-09-21 2009-05-27 고려대학교 산학협력단 Method of similarity string matching from ciphertext, Recording medium and System using by the same
KR100903601B1 (en) * 2007-10-24 2009-06-18 한국전자통신연구원 Searching system for encrypted numeric data and searching method therefor
KR101302137B1 (en) * 2009-12-16 2013-09-16 한국전자통신연구원 Method for Searchable Symmetric Encryption
KR101104845B1 (en) * 2010-09-08 2012-01-16 (주)소만사 Safe communication system between database and client using db vpn and the method thereof
KR101282281B1 (en) * 2011-08-30 2013-08-23 고려대학교 산학협력단 Weighted keyword searching method for perserving privacy, and apparatus thereof
US9311494B2 (en) * 2011-12-01 2016-04-12 Hitachi, Ltd. Secure search method and secure search device
KR20140029984A (en) 2012-08-31 2014-03-11 한국전자통신연구원 Medical information management method of medical database operating system
KR102131306B1 (en) * 2013-05-09 2020-07-07 삼성전자주식회사 Apparatus for M anaging Data, Method for Managing Data, System for Managing Data
KR101697868B1 (en) * 2015-05-19 2017-01-19 포항공과대학교 산학협력단 Method for encrypting data for sharing or searching the data and apparatus for performing the method
CN113626485A (en) * 2021-07-03 2021-11-09 西安电子科技大学 Searchable encryption method and system suitable for database management system
CN114417109A (en) * 2021-12-29 2022-04-29 电子科技大学广东电子信息工程研究院 Ciphertext searching method, device and system based on security gateway

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980044525A (en) * 1996-12-06 1998-09-05 양승택 How to stay secure in an information retrieval system
KR20000072232A (en) * 2000-08-19 2000-12-05 이석구 system of distribution for digital contents using internet
KR20050046596A (en) * 2003-11-14 2005-05-18 소니 가부시끼 가이샤 Information acquisition system and information acquisition method
KR20050099751A (en) * 2004-04-12 2005-10-17 주식회사 비티웍스 System and method for security of database
KR20050112943A (en) * 2004-05-28 2005-12-01 주식회사 다음커뮤니케이션 Individualized information furnishing system using unique searching keyword and method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980044525A (en) * 1996-12-06 1998-09-05 양승택 How to stay secure in an information retrieval system
KR20000072232A (en) * 2000-08-19 2000-12-05 이석구 system of distribution for digital contents using internet
KR20050046596A (en) * 2003-11-14 2005-05-18 소니 가부시끼 가이샤 Information acquisition system and information acquisition method
KR20050099751A (en) * 2004-04-12 2005-10-17 주식회사 비티웍스 System and method for security of database
KR20050112943A (en) * 2004-05-28 2005-12-01 주식회사 다음커뮤니케이션 Individualized information furnishing system using unique searching keyword and method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문 데이터베이스암호화 및 검색시스템의 효율성에 관한 연구

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101190059B1 (en) * 2008-12-12 2012-10-16 한국전자통신연구원 Method for data encryption and method for conjunctive keyword search of encrypted data
US8225107B2 (en) 2008-12-18 2012-07-17 Electronics And Telecommunications Research Institute Methods of storing and retrieving data in/from external server

Also Published As

Publication number Publication date
KR20080035295A (en) 2008-04-23

Similar Documents

Publication Publication Date Title
KR100839220B1 (en) Method for searching encrypted database and System thereof
EP2731041B1 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
US9031876B2 (en) Managing keys for encrypted shared documents
US9558366B2 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
Li et al. Secure deduplication storage systems supporting keyword search
Zerr et al. Zerber: r-confidential indexing for distributed documents
Wang et al. Towards secure and effective utilization over encrypted cloud data
Zhang et al. Inference attack-resistant e-healthcare cloud system with fine-grained access control
Sun et al. Research on logistics information blockchain data query algorithm based on searchable encryption
EP3304405A1 (en) Encryption directed database management system and method
CN114579998A (en) Block chain assisted medical big data search mechanism and privacy protection method
Sultan et al. Securing organization’s data: A role-based authorized keyword search scheme with efficient decryption
Park et al. PKIS: practical keyword index search on cloud datacenter
Meharwade et al. Efficient keyword search over encrypted cloud data
WO2018080857A1 (en) Systems and methods for creating, storing, and analyzing secure data
Di Crescenzo et al. Practical and privacy-preserving policy compliance for outsourced data
EP2920732B1 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
Wang et al. An effective verifiable symmetric searchable encryption scheme in cloud computing
Tian et al. A trusted control model of cloud storage
Mu et al. Encrypted data retrieval scheme based on bloom filter
Almobaideen et al. Searchable encryption architectures: survey of the literature and proposing a unified architecture
Manek et al. Cloud Oriented Distributed and Encrypted File Storage (CODE-FS)
Zhang et al. Secure Keyword Search
Mehto et al. A secured and searchable encryption algorithm for cloud storage
Sridhar et al. Querying methods of Encrypted Cloud Data

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: 20130405

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140304

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150622

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee