KR101548654B1 - Apparatus and method for database query using ordered bucket with secure encryption - Google Patents

Apparatus and method for database query using ordered bucket with secure encryption Download PDF

Info

Publication number
KR101548654B1
KR101548654B1 KR1020140117050A KR20140117050A KR101548654B1 KR 101548654 B1 KR101548654 B1 KR 101548654B1 KR 1020140117050 A KR1020140117050 A KR 1020140117050A KR 20140117050 A KR20140117050 A KR 20140117050A KR 101548654 B1 KR101548654 B1 KR 101548654B1
Authority
KR
South Korea
Prior art keywords
query
record
bucket
key
unit
Prior art date
Application number
KR1020140117050A
Other languages
Korean (ko)
Inventor
이윤호
Original Assignee
서울과학기술대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울과학기술대학교 산학협력단 filed Critical 서울과학기술대학교 산학협력단
Priority to KR1020140117050A priority Critical patent/KR101548654B1/en
Application granted granted Critical
Publication of KR101548654B1 publication Critical patent/KR101548654B1/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

Landscapes

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

Abstract

The present invention relates to an apparatus and a method for a database query using an ordered bucket with a secure encryption system. The device includes: an encryption processing unit which receives a plain text input to encrypt the plain text input to the corresponding encrypted text, and receives the encrypted text to decode the encrypted text to the corresponding plain text; a database unit which stores a record composed of the encrypted text, and a bucket number of the record; and a query unit which receives a query, searches for the record subjected to the query in the database unit, decodes the record into a plain text, and outputs the decoded text. The present invention uses a sequence bucket to have an encryption scheme secure with respect to the IND-OCPA-P security model. Accordingly, the present invention can improve the security of the encrypted database which can be queried without being decoded.

Description

보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치 및 방법{APPARATUS AND METHOD FOR DATABASE QUERY USING ORDERED BUCKET WITH SECURE ENCRYPTION}TECHNICAL FIELD [0001] The present invention relates to a database query device and method using a secure bu er,

본 발명은 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치 및 방법에 관한 것으로, 보다 상세하게는 IND-OCPA-P 보안 모델에 대하여 안전한 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치 및 방법에 관한 것이다.
The present invention relates to an apparatus and method for querying a database using a security cipher system and using an order bucket, and more particularly, to a database query apparatus and method employing an order cipher with a secure encryption scheme for an IND-OCPA- Apparatus and method.

암호화 데이터베이스는 평문으로부터 암호화 알고리즘을 사용하여 암호화된 암호문을 레코드로 하여 정보를 저장한다. 이 때 암호문에 대해서는 평문 공간에서 성립하는 순서 관계 등의 성질이 성립하지 않을 수 있기 때문에 암호문에 대한 쿼리를 수행하기 위해서는 암호문을 복호화할 필요가 있다.The encryption database stores the information as a record of the encrypted ciphertext using the encryption algorithm from the plain text. In this case, since the property such as the order relation established in the plaintext space may not hold with respect to the cipher text, it is necessary to decipher the cipher text in order to perform the query on the cipher text.

한편 암호화 알고리즘 중 대칭적 암호화 알고리즘(Symmetric Encryption Algorithm)이 공개키 암호화 알고리즘(Public Key Encryption Algorithm)보다 연산속도가 빠르기 때문에, 암호화 데이터베이스에서는 주로 대칭적 암호화 알고리즘이 사용된다.On the other hand, Symmetric Encryption Algorithm is faster than Public Key Encryption Algorithm in encryption algorithm, so symmetric encryption algorithm is mainly used in encryption database.

이러한 경우 암호화 데이터베이스에 저장된 모든 레코드를 복호화하여야 하는 문제를 해결하기 위하여 버킷(Bucket)을 사용하는 인덱스 방법이 도입되었다. 버킷을 사용하는 암호화 데이터베이스 시스템에서는 데이터베이스에 저장되는 레코드들을 버킷으로 구분한다. 이 때, 모든 암호화된 암호문은 특정한 버킷 번호를 할당받으며, 같은 평문을 암호화할 경우 같은 버킷 번호를 할당받게 된다. 따라서 쿼리의 대상이 되는 평문을 암호화할 때 할당되는 버킷 번호와 같은 버킷 번호를 가지는 암호문으로 구성된 레코드만을 복호화함으로써 쿼리의 대상이 되는 레코드를 검색할 수 있다. 또한 버킷 번호가 평문 공간에서의 순서를 보존하는 순서 버킷(Ordered Bucket)을 사용할 수도 있으며, 이 경우 쿼리에 의하여 주어지는 특정 범위 안에 속하는 레코드를 검색하는 범위 쿼리(Range Query)를 효율적으로 수행할 수 있음이 알려져 있다.In this case, an index method using a bucket has been introduced to solve the problem of decoding all the records stored in the encrypted database. Cryptography using buckets Database systems use buckets to separate records that are stored in the database. At this time, all encrypted ciphertexts are assigned a specific bucket number, and when encrypting the same plaintext, they are assigned the same bucket number. Therefore, it is possible to retrieve records subject to a query by decrypting only records constituted by ciphertexts having a bucket number equal to a bucket number allocated when a plaintext to be a query is encrypted. It is also possible to use an ordered bucket in which the bucket number preserves the order in the plaintext space. In this case, a range query that searches for records belonging to a specific range given by the query can be efficiently performed Is known.

이러한 순서 버킷을 사용하는 암호화 데이터베이스 시스템의 보안성과 관련하여 버킷을 사용하는 기존의 데이터베이스 쿼리 방법들은, 다항식 쿼리 거리에서 순서 평문 선택 공격하에서의 불판별성(Indistinguishability Under Ordered Chosen Plaintext Adversary With Polynomial Querying Distance, IND-OCPA-P) 보안 모델 하에서 안전하지 않다.Conventional database query methods using buckets in relation to the security of an encryption database system using such an ordering bucket are based on the INDINIABILITY OF ORDERED CHANNEL INTERPRETATION WITHIN POLYMINAL QUERYING DISTANCE (IND- OCPA-P) security model.

한국등록특허 제10-0859162호(등록일: 2008.09.11., 발명의 명칭 : 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법, 청구범위 제1항)가 있다.Korean Patent No. 10-0859162 (filed on Sep. 11, 2008, entitled " Apparatus and method for processing a user query through cryptographic modulation of a query in a database including an encrypted column, claim 1) .

본 발명은, IND-OCPA-P 보안 모델에 대하여 안전한 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치 및 방법을 제공하는 데 그 목적이 있다.
It is an object of the present invention to provide a database query device and method using an order bucket having a secure encryption scheme for the IND-OCPA-P security model.

본 발명의 일 측면에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치는 평문을 입력받아 그에 대응하는 암호문으로 상기 평문을 암호화하고 상기 평문에 대응하는 버킷 번호를 산출하며, 상기 암호문을 입력받아 그에 대응하는 상기 평문으로 상기 암호문을 복호화하는 암호처리부, 상기 암호문으로 구성된 레코드와 상기 레코드의 상기 버킷 번호를 저장하는 데이터베이스부 및 쿼리를 입력받아 상기 쿼리의 대상인 레코드를 상기 버킷 번호를 이용하여 상기 데이터베이스부에서 검색하고 평문으로 복호화하여 출력하는 쿼리부를 포함하되, 상기 쿼리부는 상기 쿼리의 검색 대상인 레코드와 버킷 번호가 일치하는 레코드를 상기 데이터베이스부에서 검색하여 평문으로 복호화하고, 상기 암호처리부는 키공간에서 암호화 및 복호화에 사용되는 키의 값을 선택하고, 기설정된 버킷의 수와 같은 크기의 키벡터의 각 원소의 값을 평문공간에서 선택하고 오름차순으로 정렬하여 상기 키 및 키벡터를 생성하며, 상기 키벡터 중 그 값이 상기 평문 이상인 최초의 원소의 인덱스 값을 상기 평문의 버킷 번호로 산출하는 것을 특징으로 한다.A database query apparatus having a secure encryption scheme according to an aspect of the present invention, which uses a sequence bucket, receives a plain text, encrypts the plain text with a corresponding cipher text, calculates a bucket number corresponding to the plain text, A cryptographic processing unit for receiving the ciphertext and decrypting the ciphertext with the plaintext corresponding to the ciphertext, a database unit for storing a record composed of the ciphertext and the bucket number of the record, and a record receiving the query, The query unit searches the database unit for a record whose bucket number matches a record that is a search object of the query, and decodes the search result into a plain text, The key Selects the values of the keys used for encryption and decryption, selects values of each element of the key vector having the same size as the predetermined number of buckets in the plaintext space, generates the key and key vector by sorting in ascending order, The index value of the first element whose value is equal to or larger than the plain text is calculated as the bucket number of the plain text.

본 발명의 다른 측면에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 방법은 쿼리부가 사용자로부터 쿼리를 입력받는 단계, 암호처리부가 평문을 입력받아 상기 평문을 암호화한 암호문 및 상기 평문에 대응하는 버킷 번호를 데이터베이스부에 저장하는 단계, 상기 쿼리부가 상기 쿼리의 검색 대상인 암호문으로 구성된 레코드를 상기 데이터베이스부에서 검색하는 단계 및 상기 암호처리부가 입력받은 키에 근거하여 상기 레코드를 평문으로 복호화하여 출력하는 단계를 포함한다.According to another aspect of the present invention, there is provided a database query method having a security encryption scheme and using an order bucket, the method comprising: receiving a query from a query part user; inputting a plaintext, Storing a bucket number corresponding to the query in the database unit, searching the database unit for a record composed of ciphertexts to be searched by the query unit, and decrypting the record into a plaintext based on the key input by the encryption processing unit And outputting.

바람직하게는, 상기 검색하는 단계에서, 상기 쿼리부는 상기 쿼리의 검색 대상인 레코드와 버킷 번호가 일치하는 레코드를 상기 데이터베이스부에서 검색하는 것을 특징으로 한다.Preferably, in the searching step, the query unit searches the database unit for a record whose bucket number matches a record that is a search target of the query.

바람직하게는, 상기 검색하는 단계에서, 상기 쿼리부는 상기 쿼리가 지정하는 상기 평문의 범위의 양 끝의 평문의 버킷 번호에 의하여 결정되는 범위 내에 레코드의 버킷 번호가 존재하는 상기 레코드를 상기 데이터베이스부에서 검색하는 것을 특징으로 한다.Preferably, in the retrieving step, the query unit records the record in which the bucket number of the record exists within a range determined by the bucket number of the plain text at both ends of the range of the plain text designated by the query, And searching for the search result.

바람직하게는, 상기 암호처리부가 키공간에서 상기 키의 값을 선택하고, 상기 버킷의 수와 같은 크기의 키벡터의 각 원소의 값을 평문공간에서 선택하고 오름차순으로 정렬하여 상기 키 및 키벡터를 생성하는 것을 특징으로 한다.Preferably, the encryption processing unit selects the value of the key in the key space, selects the value of each element of the key vector having the same size as the number of buckets in the plaintext space, arranges the key vector in ascending order, .

바람직하게는, 상기 암호처리부가 상기 키벡터 중 그 값이 상기 평문 이상인 최초의 원소의 인덱스 값을 상기 평문의 버킷 번호로 산출하는 것을 특징으로 한다.
Preferably, the encryption processing unit calculates the index value of the first element whose value is equal to or greater than the plain text as the bucket number of the plain text.

본 발명에 따르면, 순서 버킷을 이용하여 암호화된 데이터베이스를 복호화하지 않고서도 쿼리할 수 있으며, 순서 버킷이 IND-OCPA-P 보안 모델에 대하여 안전한 암호화 체계를 구비하게 하여 복호화하지 않고 쿼리할 수 있는 암호화된 데이터베이스의 보안성을 향상시킬 수 있다.According to the present invention, it is possible to query without decrypting an encrypted database using an order bucket, and to provide a secure encryption scheme for the order-bucket, IND-OCPA-P security model, The security of the database can be improved.

도 1은 본 발명의 일 실시예에 따른보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 방법의 동작을 도시한 순서도이다.
1 is a block diagram of a database query device having a secure encryption scheme and using an order bucket according to an embodiment of the present invention.
2 is a flowchart illustrating an operation of a database query method having a secure encryption scheme and using an order bucket according to an embodiment of the present invention.

이하에서는 본 발명에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치 및 방법을 첨부된 도면들을 참조하여 상세하게 설명한다. 이러한 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로, 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a database query device and method having a secure encryption scheme and using an order bucket according to the present invention will be described in detail with reference to the accompanying drawings. In this process, the thicknesses of the lines and the sizes of the components shown in the drawings may be exaggerated for clarity and convenience of explanation. In addition, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the intention or custom of the user, the operator. Therefore, definitions of these terms should be made based on the contents throughout this specification.

도 1은 본 발명의 일 실시예에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치의 블록도이다.1 is a block diagram of a database query device having a secure encryption scheme and using an order bucket according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 장치는, 암호처리부(100), 쿼리부(200) 및 데이터베이스부(300)를 포함하여 이루어질 수 있다.1, a database query apparatus having a secure encryption scheme and using an order bucket according to an embodiment of the present invention includes an encryption processing unit 100, a query unit 200, and a database unit 300 ).

암호처리부(100)는 평문을 입력받아 그에 대응하는 암호문으로 평문을 암호화하고 암호문을 입력받아 그에 대응하는 평문으로 암호문을 복호화한다.The encryption processing unit 100 receives the plaintext, encrypts the plaintext with the corresponding cipher text, receives the cipher text, and decrypts the cipher text with the plaintext corresponding thereto.

일반적으로 암호화 데이터베이스는 저장 대상이 되는 데이터를 암호화된 암호문으로 구성된 레코드의 형태로 저장하며, 사용자는 암호화된 레코드를 복호화한 뒤 쿼리하여야 한다.Generally, the encryption database stores the data to be stored in the form of a record composed of encrypted ciphertexts, and the user must decrypt and query the encrypted record.

이러한 암호화 및 복호화를 위하여는 미리 설정한 키를 사용하며, 평문을 특정한 키를 이용하여 암호화하는 방법으로 암호문을 생성하고, 생성된 암호문을 같은 키를 사용하여 복호화하여야 암호문을 생성한 원래 평문을 복원할 수 있다. 즉, 이러한 키를 비밀로 유지함으로써 암호문의 보안성을 유지할 수 있다. 이러한 암호화 체계를 대칭적 암호화 체계(Symmetric Encryption Scheme)라 한다.For encryption and decryption, a pre-set key is used. A plaintext is encrypted using a specific key to generate a cipher text. The generated cipher text is decrypted using the same key to restore the original plaintext that generated the cipher text. can do. That is, the security of the ciphertext can be maintained by keeping such a key secret. This encryption scheme is called a symmetric encryption scheme.

이 때, 대칭적 암호화 체계는 평문공간 M과 암호문공간 C에 대하여, 기호 SE=(K,E,D)로 나타낼 수 있으며, SE는 세 개의 알고리즘으로 구성된다. 또한 선택된 평문 공격 하에서의 불판별성(Indistinguishablity Under Chosen Plaintext Attack, IND-CPA) 모델에 대하여 현재 사용되고 있는 대칭적 암호화 체계가 안전함이 알려져 있다.In this case, the symmetric cryptosystem can be represented by the symbol SE = ( K , E , D ) for plaintext space M and ciphertext space C , and SE is composed of three algorithms. It is also known that the symmetric encryption scheme currently used for the Indistinguishablity Under Chosen Plaintext Attack (IND-CPA) model under the selected plaintext attack is secure.

먼저 키 생성 알고리즘(Key Generation Algorithm) K는 평문 공간에서 하나의 키를 선택하는 랜덤화된 알고리즘(Randomized Algorithm)이다. 암호화 알고리즘(Encryption Algorithm) E는 비밀 키 K와 평문 m을 입력받아 암호문 c를 출력하며 랜덤화된 알고리즘일 수도 있고 결정적 알고리즘(Deterministic Algorithm)일 수도 있다. 복호화 알고리즘(Decryption Algorithm) D는 비밀 키 K와 암호문 c를 입력받아 평문 m 또는 특수 기호 ⊥를 출력하는 결정적 알고리즘이다. 이 때 ⊥는 암호문이 유효한 암호문이 아님을 의미할 수 있다.First, the key generation algorithm K is a randomized algorithm that selects one key in the plaintext space. Encryption Algorithm E receives secret key K and plaintext m, outputs ciphertext c, and can be a randomized algorithm or a deterministic algorithm. Decryption Algorithm D is a deterministic algorithm that receives a secret key K and a cipher text c and outputs a plaintext m or a special symbol ⊥. In this case, ⊥ may mean that the cipher text is not a valid cipher text.

또한, 상술한 바와 같이, 데이터베이스에 저장된 모든 레코드를 복호화하지 않고서 쿼리를 처리하기 위하여, 데이터베이스에 저장되는 레코드들을 버킷으로 구분한다. 이 때, 모든 암호화된 암호문은 특정한 버킷 번호를 할당받으며, 같은 평문을 암호화할 경우 같은 버킷 번호를 할당받게 된다. 따라서 쿼리의 대상이 되는 평문을 암호화할 때 할당되는 버킷 번호와 같은 버킷 번호를 가지는 암호문으로 구성된 레코드만을 복호화함으로써 쿼리의 대상이 되는 레코드를 검색할 수 있다.In addition, as described above, in order to process a query without decrypting all the records stored in the database, the records stored in the database are divided into buckets. At this time, all encrypted ciphertexts are assigned a specific bucket number, and when encrypting the same plaintext, they are assigned the same bucket number. Therefore, it is possible to retrieve records subject to a query by decrypting only records constituted by ciphertexts having a bucket number equal to a bucket number allocated when a plaintext to be a query is encrypted.

여기에서, 버킷 번호를 결정하는 알고리즘 및 키를 선택하는 알고리즘에 의하여 순서 버킷을 이용한 암호화 체계(Encryption with Ordered Bucketization, EOB)를 구성할 수 있다.Here, an encryption method using an order bucket (EOB) can be constructed by an algorithm for determining a bucket number and an algorithm for selecting a key.

먼저 순서 버킷 체계(Ordered Bucketization Scheme)은 기호 OB p,M(K OB,T OB)로 표시되며, 다음의 수학식 1에 의하여 주어진다.
First, the ordered bucket scheme is represented by the symbols OB p, M ( K OB , T OB ) and is given by the following equation (1).

Figure 112014084401679-pat00001
Figure 112014084401679-pat00001

상기 수학식 1에서, K OB는 키벡터(Key Vector)를 생성하는 랜덤화된 알고리즘이며, T OB는 버킷 번호를 산출하는 결정적 알고리즘(Dterministic Algorithm)이다. 즉, 상기 수학식 1에 의하면 p는 버킷의 수를 나타내는 자연수이며, K OB가 자연수을 입력으로 하여 평문공간 M에 속하는 평문들로 구성되는 길이 p의 벡터를 출력하는 랜덤화된 알고리즘임을 나타낸다. In Equation (1), K OB is a randomized algorithm for generating a key vector, and T OB is a Dterministic Algorithm for calculating a bucket number. That is, according to Equation (1), p represents a natural number representing the number of buckets, and K OB represents a randomized algorithm that outputs a vector of length p composed of plain texts belonging to the plain text space M, taking a natural number as an input.

또한 T OB는 버킷 번호를 산출하는 결정적 알고리즘으로서, 키벡터 KOB와 평문공간에 속하는 값 m을 입력으로 받아 0과 p-1 사이의 구간에 속하는 자연수를 출력한다. 이 때 T OB는, 평문공간을 M이라 하고, KOB가 키백터 생성 알고리즘 K OB가 버킷의 수 p에 대하여 생성한 키벡터이며, m0 및 m1이 평문공간 M에서 균일하게 랜덤으로 선택한 평문이라면, T OB(KOB,m0) ≥ T OB(KOB,m1) 와 m0 ≥ m1은 논리적으로 동치이다, 라는 조건을 만족한다. 이러한 조건을 만족하는 버킷을 순서 버킷(Ordered Bucket)이라고 한다. 즉, 알고리즘 T OB는 주어진 평문을 순서 버킷으로 분류할 수 있다.Also, T OB is a deterministic algorithm for calculating a bucket number, and receives a key vector K OB and a value m belonging to a plain space, and outputs a natural number belonging to the interval between 0 and p-1. At this time T OB is, the plaintext space is referred to as M, K OB key and vector generation algorithm K OB a key that is generated with respect to the number p of the bucket vector, m 0 and m 1 is made uniform on the plaintext space M selected at random If it is plaintext, then T OB (K OB , m 0 ) ≥ T OB (K OB , m 1 ) and m 0 ≥ m 1 are logically equivalent. A bucket satisfying these conditions is called an ordered bucket. That is, the algorithm T OB can classify a given plaintext into an ordered bucket.

또한 이러한 순서 버킷 체계와 대칭적 암호화 체계를 결합하여 대칭적 순서 버킷 암호화(Symmetric Encryption with Ordered Bucketization) EOB[OB M ,p,SE](K EOB,E EOB,D EOB)를 구성할 수 있다.It is also possible to construct Symmetric Encryption with Ordered Bucketization EOB [ OB M , p , SE ] ( K EOB , E EOB , D EOB ) by combining this ordering bucket scheme and symmetric encryption scheme.

대칭적 순서 버킷 암호화 EOB[OB M ,p,SE](K EOB,E EOB,D EOB)는 다음의 수학식 2에 의하여 주어진다.
Symmetric order bucket encryption EOB [ OB M , p , SE ] ( K EOB , E EOB , D EOB ) is given by:

Figure 112014084401679-pat00002
Figure 112014084401679-pat00002

Figure 112014084401679-pat00003
Figure 112014084401679-pat00003

Figure 112014084401679-pat00004

Figure 112014084401679-pat00004

상기 수학식 2에서, K EOB는 키를 생성하는 알고리즘으로서, 버킷의 수를 나타내는 자연수 p를 입력으로 받아, 키생성 알고리즘 K에 의하여 키 K를 생성하고 키벡터 생성 알고리즘 K OB에 키벡터 KOB를 산출한 뒤, K와 KOB의 쌍 KEOB를 출력한다. 암호화 알고리즘 E EOB는 키 생성 알고리즘 K EOB의 출력 KEOB와 평문 m을 입력받아, KEOB에 포함된 비밀 키 K와 m을 암호화 알고리즘 E에 입력하여 얻은 암호문 c와, KEOB에 포함된 키벡터 KOB와 m을 버킷 번호 알고리즘 T OB에 입력하여 얻은 버킷 번호 bucket#를 구하고 bucket#와 c를 짝지은 쌍 CEOB를 출력한다. 복호화 알고리즘 D EOB는 키 생성 알고리즘 K EOB의 출력 KEOB와 암호화 알고리즘 E EOB의 출력 CEOB를 입력받아 KEOB에 포함된 비밀 키 K와 CEOB에 포함된 암호문 C를 복호화 알고리즘 D에 입력하여 얻은 평문 m을 출력한다.In Equation 2, K EOB is an algorithm for generating a key, take a natural number p indicates the number of buckets to the input, the key generation algorithm to generate a key K by K and the key to the key vector generation algorithm K OB vector K OB And outputs a pair K EOB of K and K OB . Encryption algorithm E EOB is key generation algorithm output of K EOB K EOB and the plain text m an input received, the key vector containing the K EOB ciphertext c and, K EOB obtained by entering a secret key K and encrypting m algorithm E contained in K OB and m are input to the bucket number algorithm T OB to obtain the bucket number bucket # obtained, and the pair C EOB to which bucket # and c are connected is output. Decryption algorithm D EOB is obtained by entering the receiving the output K EOB and outputs C EOB of the encryption algorithm E EOB of the key generation algorithm K EOB are included in K EOB the secret key K and C EOB included in the cipher text C to the decryption algorithm D Output the plain m.

이하 수학식 3은 키백터 생성 알고리즘 K OB의 구현 예를 나타낸다.Equation (3) below shows an implementation example of the key vector generation algorithm K OB .

Figure 112014084401679-pat00005
Figure 112014084401679-pat00005

또한 이하 수학식 4는 버킷 번호 산출 알고리즘 T OB의 구현 예를 나타낸다.Equation (4) below shows an implementation example of the bucket number calculation algorithm T OB .

Figure 112014084401679-pat00006
Figure 112014084401679-pat00006

여기에서, 암호처리부(100)는, 기 설정된 버킷의 수에 근거하여 암호화 및 복호화에 사용되는 키 및 버킷 번호를 산출하는데 사용되는 키벡터를 생성하는 키생성부(130), 키 및 평문을 입력받아 평문을 암호문으로 암호화하는 암호화부(110), 키 및 암호문을 입력받아 암호문을 평문으로 복호화하는 복호화부(120) 및 키벡터 및 평문을 입력받아 평문에 대응하는 버킷 번호를 산출하는 버킷처리부를 포함할 수 있다.Here, the encryption processing unit 100 includes a key generation unit 130 for generating a key vector used for encryption and decryption based on the number of predetermined buckets, and a key vector used for calculating a bucket number, A decryption unit 120 that receives the key and the ciphertext and decrypts the ciphertext into a plain text, and a bucket processing unit that receives the key vector and the plain text and calculates a bucket number corresponding to the plain text, .

즉, 암호화부(110)는 대칭적 암호화 체계의 암호화 알고리즘 E와 수학식 2에 포함된 암호화 알고리즘 E EOB를 수행할 수 있으며, 복호화부(120)는 대칭적 암호화 체계의 복호화 알고리즘 D와 수학식 2에 포함된 복호화 알고리즘 D EOB를 수행할 수 있다.That is, the encryption unit 110 can perform the encryption algorithm E of the symmetric encryption scheme and the encryption algorithm E EOB included in the equation (2), and the decryption unit 120 decrypts the symmetric encryption scheme decryption algorithm D and the equation 2, the decryption algorithm contained in the can to perform a D EOB.

또한 키생성부(130)는 대칭적 암호화 체계의 키 생성 알고리즘 K와 수학식 1에 포함된 키벡터 생성 알고리즘 K OB 및 수학식 2에 포함된 키 생성 알고리즘 K EOB를 수행할 수 있으며, 버킷처리부(140)는 수학식 1에 포함된 버킷 번호 산출 알고리즘 T OB를 수행할 수 있다.Also, the key generation unit 130 may perform the key generation algorithm K of the symmetric encryption scheme, the key vector generation algorithm K OB included in the equation (1), and the key generation algorithm K EOB included in the equation (2) (140) may perform the bucket number calculation algorithm T OB included in Equation (1).

이 때, 키생성부(130)는, 키 생성 알고리즘 K에 나타난 바와 같이 키공간 Keys에서 키의 값을 선택하고, 키벡터 생성 알고리즘 K OB 및 수학식 3에 나타난 바와 같이 버킷의 수 p와 같은 크기의 키벡터의 각 원소의 값을 평문공간 M에서 선택하고 오름차순으로 정렬하여 키 및 키벡터를 생성할 수 있다.At this time, the key generation unit 130 selects the value of the key in the key space Keys as shown in the key generation algorithm K , and calculates the key vector K as the key vector generation algorithm K OB and the number of buckets p as shown in equation (3) A key and a key vector can be generated by selecting the value of each element of the size key vector in the plaintext space M and sorting in ascending order.

또한 버킷처리부(140)는 수학식 4에 나타난 바와 같이, 키벡터의 원소 중 그 값이 주어진 평문 m 이상인 최초의 원소의 인덱스 값 ret를 평문 m의 버킷 번호로 산출할 수 있다.Also, as shown in Equation (4), the bucket processing unit 140 can calculate the index value ret of the first element whose value is equal to or larger than the given plain-text m, as the bucket number of the plain m.

상술한 바와 같은 대칭적 순서 버킷 암호화의 보안성을 평가하기 위하여 IND-OCPA-P 보안 모델이 제시되었다.The IND-OCPA-P security model has been proposed to evaluate the security of symmetric order bucket encryption as described above.

대칭적 암호화 체계 SE(K,E,D)에 대하여, A가 공격자(Adversary), 즉 알고리즘이고 b가 0 또는 1의 값을 가진다고 가정하면, 다음 수학식 5에 의하여 주어지는 실험을 고려할 수 있다.Assuming that A is an adversary, that is, an algorithm and b has a value of 0 or 1, for the symmetric encryption system SE ( K , E , D ), the experiment given by the following equation 5 can be considered.

Figure 112014084401679-pat00007
Figure 112014084401679-pat00007

상기 수학식 5에서 LR 오라클 LR(·,·,b)는 두 개의 평문 M1 과 M2 중 b의 값에 따라 하나를 선택하는 오라클이다. 또한 공격자 A는 LR 오라클에 쿼리를 행한 뒤 LR 오라클에 주어진 b의 값이 무엇인가를 맞추려 하는 알고리즘이다.In Equation (5), the LR oracle LR (·, · b) is an oracle that selects one according to the value of b among the two plaintexts M 1 and M 2 . Attacker A is an algorithm that queries LR Oracle and then matches the value of b given to LR Oracle.

이 때 공격자 A가 다음 수학식 6에 의하여 주어지는 조건을 만족하면 공격자 A가 q-ind-ocpa-p 공격자라고 한다. 여기에서 q는 공격자 A 에게 허락되는 최대의 쿼리 수를 의미하고, A는 q개의 평문의 쌍으로 이루어진 쿼리 {(m0 i,m1 i)} (1 ≤ i ≤ q) 를 만든다.
At this time it is when the attacker A and then meet the condition given by equation (6) growing the attacker A attacks the q-ind-ocpa-p. Where q is the maximum number of queries allowed for attacker A , and A produces a query {m 0 i , m 1 i } (1 ≤ i ≤ q) of q plaintext pairs.

Figure 112014084401679-pat00008
Figure 112014084401679-pat00008

모든 효율적(efficient)인 q-ind-ocpa-p 공격자 A에 대해서 다음 수학식 7에 의하여 정의되는 q-ind-ocpa-p 이득이 충분히 작으면, 대칭적 암호화 체계 SE는 q-ind-ocpa-p 보안성이 있다고 정의한다.For all efficient q-ind-ocpa-p attackers A , if the q-ind-ocpa-p gain defined by Equation (7) is sufficiently small, the symmetric cryptosystem SE is q-ind-ocpa- p Defines security.

Figure 112014084401679-pat00009
Figure 112014084401679-pat00009

이제, 대칭적 순서 버킷 암호화 EOB[OB M ,p,SE]의 보안성이 다음과 같이 정의될 수 있다. 대칭적 암호화 스킴 SE(K,E,D)에 대하여, 주어진 보안 파라미터(Security Parameter) 1l과, 모든 공격자 A에 대해,

Figure 112014084401679-pat00010
이 성립하면 SE는 IND-OCPA-P 모델에서 안전하다고 정의한다.Now, the security of the symmetric order bucket encryption EOB [ OB M , p , SE ] can be defined as follows. For a symmetric encryption scheme SE ( K , E , D ), given a Security Parameter 1 l and for all attackers A ,
Figure 112014084401679-pat00010
, SE is defined as safe in the IND-OCPA-P model.

이 때, 상기 수학식 3 및 수학식 4에서 주어진 구현 예를 사용하는 대칭적 순서 버킷 암호화 EOB[OB M ,p,SE]에 대하여 다음 수학식 8이 성립한다.
At this time, the following equation (8) holds for the symmetric order bucket encryption EOB [ OB M , p , SE ] using the embodiment given in the above Equations (3) and (4).

Figure 112014084401679-pat00011
Figure 112014084401679-pat00011

그런데 상기 수학식 8의 조건은 대칭적 순서 버킷 암호화 EOB[OB M ,p,SE]가 사용하는 대칭키 암호화 체계 SE가 IND-CPA 모델에서 안전함을 의미하며, 현재 사용되고 있는 대칭키 암호화 체계는 INC-CPA 모델에서 안전함이 알려져 있다. 따라서 대칭적 순서 버킷 암호화 EOB[OB M ,p,SE]가 IND-OCPA-P 모델에서 안전하다.However, the condition of Equation (8) means that the symmetric key cryptosystem SE used by the symmetric order bucket cipher EOB [ OB M , p , SE ] is secure in the IND-CPA model and the currently used symmetric key cryptosystem is INC Safety is known in the CPA model. Therefore, the symmetric order bucket encryption EOB [ OB M , p , SE ] is safe in the IND-OCPA-P model.

데이터베이스부(300)는 암호문으로 구성된 레코드와 레코드의 버킷 번호를 저장한다. 즉, 암호화 데이터베이스에 저장되는 레코드는 암호화되어 저장되며, 레코드에 해당하는 원문을 입력받아 버킷처리부(140)에 의하여 산출된 버킷 번호가 암호화된 레코드와 쌍으로 저장될 수 있다.The database unit 300 stores a record composed of ciphertexts and a bucket number of a record. That is, the record stored in the encryption database is encrypted and stored, and the original text corresponding to the record is received, and the bucket number calculated by the bucket processing unit 140 can be stored in a pair with the encrypted record.

쿼리부(200)는 쿼리를 입력받아 쿼리의 대상인 레코드를 데이터베이스부(300)에서 검색하고 평문으로 복호화하여 출력한다.The query unit 200 receives the query, searches the database unit 300 for a record that is the object of the query, decodes it into a plain text, and outputs the plain text.

이 때, 쿼리부(200)는 데이터베이스부(300)에 저장된 레코드의 일부만을 평문으로 복호화할 수 있다. 즉, 쿼리부(200)는 데이터베이스부(300)에 암호화된 레코드와 함께 저장된 버킷 번호를 사용하여 레코드를 모두 복호화하지 않고 쿼리를 수행할 수 있다.At this time, the query unit 200 can decode only a part of the records stored in the database unit 300 into a plain text. That is, the query unit 200 can perform the query without decoding all the records using the bucket number stored together with the encrypted record in the database unit 300. [

여기에서, 쿼리부(200)는 쿼리의 검색 대상인 레코드와 버킷 번호가 일치하는 레코드를 데이터베이스부(300)에서 검색하여 평문으로 복호화할 수 있다.Here, the query unit 200 can search the database unit 300 for a record whose bucket number matches the record to be searched for in the query, and decode it into plain text.

즉, 버킷 번호 생성 알고리즘이 결정적이므로, 평문이 일치하면 버킷 번호가 일치하며, 따라서 쿼리 대상인 레코드와 버킷 번호가 일치하는 레코드들 중에만 쿼리 대상이 레코드가 존재할 수 있다. 따라서 쿼리 대상과 버킷 번호가 일치하는 레코드만을 데이터베이스부(300)에서 검색하여 복호화함으로써 모든 데이터베이스를 복호화하지 않고 쿼리를 수행할 수 있다.That is, since the bucket number generation algorithm is deterministic, if the plaintext matches, the bucket number is matched. Therefore, the record to be queried can exist only in the record whose bucket number matches the query target record. Therefore, only the records matching the query target and the bucket number are searched and decoded by the database unit 300, so that queries can be performed without decoding all the databases.

또한, 쿼리는 평문의 범위를 지정하고, 쿼리부(200)는 평문의 범위의 양 끝의 평문의 버킷 번호에 의하여 결정되는 범위 내에 레코드의 버킷 번호가 존재하는 레코드를 테이터베이스부(300)에서 검색하여 복호화할 수 있다.In addition, the query specifies the range of the plain text, and the query unit 200 records a record in which the bucket number of the record exists within the range determined by the bucket number of the plain text at both ends of the range of the plain text, Can be searched and decoded.

즉, 쿼리가 평문의 범위를 지정하는 범위 쿼리인 경우, 수학식 1에 관하여 상술한 바와 같이 산출되는 버킷 번호가 순서 버킷의 버킷 번호이므로, 쿼리가 지정한 범위에 포함되는 평문의 버킷 번호는, 평문의 범위의 양 끝에 해당하는 두 개의 평문에 대하여 산출한 버킷 번호에 의하여 주어지는 버킷 번호의 범위에 포함되게 된다. 따라서, 범위 쿼리는 범위의 양 끝의 평문의 버킷 번호에 의하여 결정되는 버킷 번호의 범위 내에 버킷 번호가 존재하는 레코드만을 검색함으로써 수행될 수 있으며, 따라서 모든 데이터베이스를 복호화하지 않고 쿼리를 수행할 수 있다.That is, when the query is a range query specifying the range of the plain text, since the bucket number calculated as described above with respect to Equation 1 is the bucket number of the order bucket, the bucket number of the plain text included in the range specified by the query, Is included in the range of the bucket number given by the bucket number calculated for the two plain texts corresponding to both ends of the range of. Thus, the range query can be performed by retrieving only the records in which the bucket number exists within the range of the bucket number determined by the bucket number of the plaintext at both ends of the range, so that the query can be performed without decrypting all the databases .

도 2는 본 발명의 일 실시예에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 방법의 동작을 도시한 순서도이다. 이를 참조하여 본 발명의 일 실시예에 따른 보안성이 있는 암호화 체계를 구비하고 순서 버킷을 이용하는 데이터베이스 쿼리 방법을 설명한다.2 is a flowchart illustrating an operation of a database query method having a secure encryption scheme and using an order bucket according to an embodiment of the present invention. A database query method having a secure encryption scheme according to an embodiment of the present invention and using an order bucket will be described.

먼저 암호처리부(100)가 키공간에서 키의 값을 선택하고, 버킷의 수와 같은 크기의 키벡터의 각 원소의 값을 평문공간에서 선택하고 오름차순으로 정렬하여 키 및 키벡터를 생성한다(S110). 이 때, 암호처리부(100)에 포함된 키생성부(130)가 수학식 2에 포함된 키 생성 알고리즘 KEOB를 수행하여 키 및 키벡터를 생성할 수 있다. 또한 버킷의 수는 기 설정된 자연수일 수 있다. 즉, 키생성부(130)는 수학식 3의 구현 예에 의하여 키백터를 생성할 수 있다.First, the encryption processing unit 100 selects a value of a key in a key space, selects a value of each element of the key vector having the same size as the number of buckets in the plaintext space, and arranges it in ascending order to generate a key and a key vector (S110 ). At this time, the key generation unit 130 included in the encryption processing unit 100 may generate a key and a key vector by performing a key generation algorithm KEOB included in Equation (2). The number of buckets may also be a predetermined natural number. That is, the key generation unit 130 may generate the key vector according to the embodiment of Equation (3).

이어서, 암호처리부(100)가 평문을 입력받아 평문을 암호화한다(S120). 이 때, 암호처리부(100)에 포함된 암호화부(110)가 암호화 알고리즘 E를 수행하여 평문을 암호화할 수 있다.Then, the encryption processing unit 100 receives the plain text and encrypts the plain text (S120). At this time, the encryption unit 110 included in the encryption processing unit 100 can encrypt the plain text by performing the encryption algorithm E.

이후, 암호처리부(100)가 평문에 대응하는 버킷 번호를 산출한다(S130). 이 때, 암호처리부(100)에 포함된 버킷처리부(140)가 수학식 1에 포함된 버킷 번호 산출 알고리즘 T OB를 수행하여 버킷 번호를 산출할 수 있다.Thereafter, the encryption processing unit 100 calculates the bucket number corresponding to the plain text (S130). At this time, the bucket processing unit 140 included in the encryption processing unit 100 can calculate the bucket number by performing the bucket number calculation algorithm T OB included in the equation (1).

즉, 암호처리부(100)는 수학식 2에 포함된 암호화 알고리즘 E EOB를 수행하고 E EOB는 암호화 알고리즘 E 및 버킷 번호 산출 알고리즘 T OB를 호출하여 평문을 암호화하고 버킷 번호를 산출할 수 있다. 또한 버킷처리부(140)는 수학식 4의 구현 예에 의하여 버킷 번호를 산출할 수 있다.That is, the encryption processing unit 100 may perform the encryption algorithm E EOB included in Equation (2) and E EOB may encrypt the plaintext and calculate the bucket number by calling the encryption algorithm E and the bucket number calculation algorithm T OB . Also, the bucket processing unit 140 may calculate the bucket number according to the embodiment of Equation (4).

이어서, 암호처리부(100)가 암호문 및 평문에 대응하는 버킷 번호를 데이터베이스부(300)에 저장한다(S140). 즉, 데이터베이스부(300)에는 암호화된 레코드와 레코드의 버킷 번호가 쌍으로서 저장될 수 있다.Subsequently, the encryption processing unit 100 stores the bucket numbers corresponding to the ciphertext and the plaintext in the database unit 300 (S140). That is, the database unit 300 may store the encrypted record and the bucket number of the record as a pair.

이후, 쿼리부(200)가 사용자로부터 쿼리를 입력받는다(S140).Thereafter, the query unit 200 receives a query from the user (S140).

이어서, 쿼리부(200)가 쿼리의 검색 대상인 암호문으로 구성된 레코드를 데이터베이스부(300)에서 검색한다(S150).Subsequently, the query unit 200 searches the database unit 300 for a record composed of ciphertexts to be searched for in a query (S150).

이 때, 쿼리부(200)는 쿼리의 검색 대상인 레코드와 버킷 번호가 일치하는 레코드를 데이터베이스부(300)에서 검색할 수 있다. 즉, 버킷 번호 생성 알고리즘이 결정적이므로, 평문이 일치하면 버킷 번호가 일치하며, 따라서 쿼리 대상인 레코드와 버킷 번호가 일치하는 레코드들 중에만 쿼리 대상이 레코드가 존재할 수 있다. 따라서 쿼리 대상과 버킷 번호가 일치하는 레코드만을 데이터베이스부(300)에서 검색하여 복호화함으로써 모든 데이터베이스를 복호화하지 않고 쿼리를 수행할 수 있다.At this time, the query unit 200 can search the database unit 300 for a record whose bucket number matches the record of the query target. That is, since the bucket number generation algorithm is deterministic, if the plaintext matches, the bucket number is matched. Therefore, the record to be queried can exist only in the record whose bucket number matches the query target record. Therefore, only the records matching the query target and the bucket number are searched and decoded by the database unit 300, so that queries can be performed without decoding all the databases.

또한, 쿼리부(200)는 쿼리가 지정하는 평문의 범위의 양 끝의 평문의 버킷 번호에 의하여 결정되는 범위 내에 레코드의 버킷 번호가 존재하는 레코드를 데이터베이스부(300)에서 검색할 수도 있다. 즉, 쿼리가 평문의 범위를 지정하는 범위 쿼리인 경우, 수학식 1에 관하여 상술한 바와 같이 산출되는 버킷 번호가 순서 버킷의 버킷 번호이므로, 쿼리가 지정한 범위에 포함되는 평문의 버킷 번호는, 평문의 범위의 양 끝에 해당하는 두 개의 평문에 대하여 산출한 버킷 번호에 의하여 주어지는 버킷 번호의 범위에 포함되게 된다. 따라서, 범위 쿼리는 범위의 양 끝의 평문의 버킷 번호에 의하여 결정되는 버킷 번호의 범위 내에 버킷 번호가 존재하는 레코드만을 검색함으로써 수행될 수 있으며, 따라서 모든 데이터베이스를 복호화하지 않고 쿼리를 수행할 수 있다.In addition, the query unit 200 may search the database unit 300 for a record in which the bucket number of the record exists within a range determined by the bucket number of the plain text at both ends of the range of the plain text specified by the query. That is, when the query is a range query specifying the range of the plain text, since the bucket number calculated as described above with respect to Equation 1 is the bucket number of the order bucket, the bucket number of the plain text included in the range specified by the query, Is included in the range of the bucket number given by the bucket number calculated for the two plain texts corresponding to both ends of the range of. Thus, the range query can be performed by retrieving only the records in which the bucket number exists within the range of the bucket number determined by the bucket number of the plaintext at both ends of the range, so that the query can be performed without decrypting all the databases .

이후, 암호처리부(100)가 입력받은 키에 근거하여 레코드를 평문으로 복호화한다(S170). 이 때, 암호처리부(100)에 포함된 복호화부(120)가 수학식 2에 포함된 복호화 알고리즘 D EOB를 수행하여 암호화된 레코드를 평문으로 복호화할 수 있다.Thereafter, the encryption processing unit 100 decrypts the record into a plain text based on the received key (S170). At this time, the decryption unit 120 included in the encryption processing unit 100 can perform the decryption algorithm D EOB included in Equation (2) to decrypt the encrypted record into a plain text.

이어서, 암호처리부(100)가 복호화된 평문을 출력하고 프로세스를 종료한다(S180).Subsequently, the encryption processing unit 100 outputs the decrypted plain text and terminates the process (S180).

여기에서, 평문을 입력받아 암호화하여 데이터베이스부(300)에 저장하는 절차와 데이터베이스부(300)에 저장된 암호화된 레코드를 검색하여 평문으로 복호화하여 출력하는 절차를 모두 수행하는 것으로 기술하였으나, 실시예에 따라서 암호화 절차와 복호화 절차 중 어느 하나만을 수행할 수 있고, 양자의 순서를 바꾸어 수행할 수도 있다.Here, it is described that a procedure for receiving and encrypting a plaintext and storing it in the database unit 300 and a procedure for searching and decrypting encrypted records stored in the database unit 300 are all performed. However, Therefore, either the encryption procedure or the decryption procedure can be performed, and the order of the encryption procedure and the decryption procedure can be changed.

이 때 상술한 바와 같이 수학식 2에 의하여 주어지고 수학식 3 및 수학식 4의 구현 예를 사용하는 대칭적 순서 버킷 암호화에 대하여 상기 수학식 8이 성립하며 따라서 이러한 대칭적 순서 버킷 암호화는 IND-OCPA-P 모델에서 안전하다.Equation (8) holds for the symmetric order bucket encryption given by Equation (2) and using the implementation of Equations (3) and (4) as described above, It is safe in the OCPA-P model.

이상 살펴본 바와 같이 본 발명에 따르면, 순서 버킷을 이용하여 암호화된 데이터베이스를 복호화하지 않고서도 쿼리할 수 있으며, 순서 버킷이 IND-OCPA-P 보안 모델에 대하여 안전한 암호화 체계를 구비하게 하여 복호화하지 않고 쿼리할 수 있는 암호화된 데이터베이스의 보안성을 향상시킬 수 있다.As described above, according to the present invention, it is possible to query without decrypting an encrypted database using an order bucket, and to provide a secure encryption scheme for the IND-OCPA-P security model in order buckets, The security of the encrypted database can be improved.

본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. I will understand. Accordingly, the technical scope of the present invention should be defined by the following claims.

100 : 암호처리부 110 : 암호화부
120 : 복호화부 130 : 키 생성부
140 : 버킷처리부 200 : 쿼리부
300 : 데이터베이스부
100: encryption processing unit 110:
120: Decryption unit 130:
140: Bucket processing unit 200: Query unit
300:

Claims (6)

평문을 입력받아 그에 대응하는 암호문으로 상기 평문을 암호화하고 상기 평문에 대응하는 버킷 번호를 산출하며, 상기 암호문을 입력받아 그에 대응하는 상기 평문으로 상기 암호문을 복호화하는 암호처리부;
상기 암호문으로 구성된 레코드와 상기 레코드의 상기 버킷 번호를 저장하는 데이터베이스부; 및
쿼리를 입력받아 상기 쿼리의 대상인 레코드를 상기 버킷 번호를 이용하여 상기 데이터베이스부에서 검색하고 평문으로 복호화하여 출력하는 쿼리부를 포함하되,
상기 쿼리부는 상기 쿼리의 검색 대상인 레코드와 버킷 번호가 일치하는 레코드를 상기 데이터베이스부에서 검색하여 평문으로 복호화하고,
상기 암호처리부는 키공간에서 암호화 및 복호화에 사용되는 키의 값을 선택하고, 기설정된 버킷의 수와 같은 크기의 키벡터의 각 원소의 값을 평문공간에서 선택하고 오름차순으로 정렬하여 상기 키 및 키벡터를 생성하며, 상기 키벡터 중 그 값이 상기 평문 이상인 최초의 원소의 인덱스 값을 상기 평문의 버킷 번호로 산출하는 것을 특징으로 하는 순서 버킷을 이용하는 데이터베이스 쿼리 장치.
A cryptographic processor for receiving the plaintext, encrypting the plaintext with the corresponding ciphertext, calculating a bucket number corresponding to the plaintext, receiving the ciphertext, and decrypting the ciphertext with the plaintext corresponding thereto;
A database unit storing a record composed of the cipher text and the bucket number of the record; And
And a query unit which receives a query and searches the database unit for a record, which is the subject of the query, using the bucket number, decodes the query into a plain text,
Wherein the query unit searches the database unit for a record whose bucket number matches a record to be searched for in the query, decodes it into a plain text,
The encryption processing unit selects a value of a key used for encryption and decryption in a key space, selects a value of each element of the key vector having a size equal to the number of predetermined buckets in a clear space, arranges the key in ascending order, And generates an index value of the first element whose value is equal to or greater than the plain text as the bucket number of the plain text.
쿼리부가 사용자로부터 쿼리를 입력받는 단계;
암호처리부가 평문을 입력받아 상기 평문을 암호화한 암호문 및 상기 평문에 대응하는 버킷 번호를 데이터베이스부에 저장하는 단계;
상기 쿼리부가 상기 쿼리의 검색 대상인 암호문으로 구성된 레코드를 상기 데이터베이스부에서 검색하는 단계; 및
상기 암호처리부가 입력받은 키에 근거하여 상기 레코드를 평문으로 복호화하여 출력하는 단계를 포함하는 순서 버킷을 이용하는 데이터베이스 쿼리 방법.
Receiving a query from a query part user;
Storing a cipher text in which the encryption processing unit receives the plaintext and encrypts the plaintext and a bucket number corresponding to the plaintext in the database unit;
Searching the database unit for a record including the ciphertexts to be searched by the query unit; And
And decrypting the record into a plain text based on the key received by the encryption processing unit and outputting the encrypted record.
제 2항에 있어서,
상기 검색하는 단계에서,
상기 쿼리부는 상기 쿼리의 검색 대상인 레코드와 버킷 번호가 일치하는 레코드를 상기 데이터베이스부에서 검색하는 것을 특징으로 하는 순서 버킷을 이용하는 데이터베이스 쿼리 방법.
3. The method of claim 2,
In the retrieving step,
Wherein the query unit searches the database unit for a record whose bucket number matches a record to be searched for in the query, in the database unit.
제 2항에 있어서,
상기 검색하는 단계에서,
상기 쿼리부는 상기 쿼리가 지정하는 상기 평문의 범위의 양 끝의 평문의 버킷 번호에 의하여 결정되는 범위 내에 레코드의 버킷 번호가 존재하는 상기 레코드를 상기 데이터베이스부에서 검색하는 것을 특징으로 하는 순서 버킷을 이용하는 데이터베이스 쿼리 방법.
3. The method of claim 2,
In the retrieving step,
Wherein the query unit searches the database unit for the record in which the bucket number of the record exists within a range determined by the bucket number of the plain text at both ends of the range of the plain text designated by the query How to query the database.
제 2항에 있어서,
상기 암호처리부가 키공간에서 상기 키의 값을 선택하고, 상기 버킷의 수와 같은 크기의 키벡터의 각 원소의 값을 평문공간에서 선택하고 오름차순으로 정렬하여 상기 키 및 키벡터를 생성하는 것을 특징으로 하는 순서 버킷을 이용하는 데이터베이스 쿼리 방법.
3. The method of claim 2,
The encryption processing unit selects the value of the key in the key space, and selects the value of each element of the key vector having the same size as the number of buckets in the clear space and arranges it in ascending order to generate the key and the key vector A database query method using an order bucket.
제 5항에 있어서,
상기 암호처리부가 상기 키벡터 중 그 값이 상기 평문 이상인 최초의 원소의 인덱스 값을 상기 평문의 버킷 번호로 산출하는 것을 특징으로 하는 순서 버킷을 이용하는 데이터베이스 쿼리 방법.
6. The method of claim 5,
And the encryption processing unit calculates the index value of the first element whose value is equal to or greater than the plain text as the bucket number of the plain text.
KR1020140117050A 2014-09-03 2014-09-03 Apparatus and method for database query using ordered bucket with secure encryption KR101548654B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140117050A KR101548654B1 (en) 2014-09-03 2014-09-03 Apparatus and method for database query using ordered bucket with secure encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140117050A KR101548654B1 (en) 2014-09-03 2014-09-03 Apparatus and method for database query using ordered bucket with secure encryption

Publications (1)

Publication Number Publication Date
KR101548654B1 true KR101548654B1 (en) 2015-09-02

Family

ID=54246765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140117050A KR101548654B1 (en) 2014-09-03 2014-09-03 Apparatus and method for database query using ordered bucket with secure encryption

Country Status (1)

Country Link
KR (1) KR101548654B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560065A (en) * 2020-12-24 2021-03-26 航天科工网络信息发展有限公司 Method for directly indexing database ciphertext
CN116842561A (en) * 2023-06-29 2023-10-03 上海零数众合信息科技有限公司 Privacy intersection system and method capable of dynamically adding and deleting data sets

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100936937B1 (en) 2007-12-18 2010-01-14 한국전자통신연구원 Database encryption and query methods keeping order within bucket partially
KR101174058B1 (en) 2008-12-18 2012-08-16 한국전자통신연구원 Method for saving and serching of encrypted data on database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100936937B1 (en) 2007-12-18 2010-01-14 한국전자통신연구원 Database encryption and query methods keeping order within bucket partially
KR101174058B1 (en) 2008-12-18 2012-08-16 한국전자통신연구원 Method for saving and serching of encrypted data on database

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560065A (en) * 2020-12-24 2021-03-26 航天科工网络信息发展有限公司 Method for directly indexing database ciphertext
CN116842561A (en) * 2023-06-29 2023-10-03 上海零数众合信息科技有限公司 Privacy intersection system and method capable of dynamically adding and deleting data sets
CN116842561B (en) * 2023-06-29 2024-05-24 上海零数众合信息科技有限公司 Privacy intersection system and method capable of dynamically adding and deleting data sets

Similar Documents

Publication Publication Date Title
US8942371B2 (en) Method and system for a symmetric block cipher using a plurality of symmetric algorithms
CN106953722B (en) Ciphertext query method and system for full homomorphic encryption
US9379891B2 (en) Method and system for ID-based encryption and decryption
US8155311B2 (en) Method and apparatus for encrypting message for maintaining message integrity, and method and apparatus for decrypting message for maintaining message integrity
US7860241B2 (en) Simple universal hash for plaintext aware encryption
CN107086915B (en) Data transmission method, data sending end and data receiving end
CN106571905B (en) A kind of numeric type data homomorphism Order Preserving Encryption Method
KR102019159B1 (en) Apparatus and methdo for giving the compressed encryption functionality to integer-based homomorphic encryption schemes
RU2005104945A (en) EFFECTIVE ENCRYPTION AND AUTHENTICATION FOR DATA PROCESSING SYSTEMS
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
CN103927357A (en) Data encryption and retrieval method for database
KR20160131798A (en) Method and system for additive homomorphic encryption scheme with error detection functionality
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
WO2016088453A1 (en) Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program
TW201435641A (en) Data encryption system and method
Mewada et al. Exploration of efficient symmetric AES algorithm
CN113098675B (en) Binary data encryption system and method based on polynomial complete homomorphism
CN109088721B (en) Entrustable uncovering and encrypting method
KR101217491B1 (en) A method for searching keyword based on public key
KR101548654B1 (en) Apparatus and method for database query using ordered bucket with secure encryption
CN108234108A (en) Weak leakage efficiently takes off sequence encryption method
KR101232385B1 (en) Searchable Symmetric Encryption Method and System
CN108920968B (en) File searchable encryption method based on connection keywords
CN112115506B (en) Attribute-based data searching method and system supporting Boolean query
KR20170103321A (en) Order preserving encryption method and apparatus with enhanced security

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180806

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 5