KR101382628B1 - System and method for database encryption - Google Patents

System and method for database encryption Download PDF

Info

Publication number
KR101382628B1
KR101382628B1 KR1020120045084A KR20120045084A KR101382628B1 KR 101382628 B1 KR101382628 B1 KR 101382628B1 KR 1020120045084 A KR1020120045084 A KR 1020120045084A KR 20120045084 A KR20120045084 A KR 20120045084A KR 101382628 B1 KR101382628 B1 KR 101382628B1
Authority
KR
South Korea
Prior art keywords
data
ciphertext
candidate
encryption
divided
Prior art date
Application number
KR1020120045084A
Other languages
Korean (ko)
Other versions
KR20130126825A (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 KR1020120045084A priority Critical patent/KR101382628B1/en
Publication of KR20130126825A publication Critical patent/KR20130126825A/en
Application granted granted Critical
Publication of KR101382628B1 publication Critical patent/KR101382628B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Abstract

본 발명은 순서가 있는 데이터를 암호화하는 방법에 있어서, (a) 전체 평문 후보 구간을 임의의 크기로 확장하여 전체 암호문 후보 구간을 설정하고, 상기 전체 암호문 후보 구간을 임의 크기의, 서로 교집합을 갖지 않는 분할된 암호문 후보 구간들로 분할한 후, 각 평문 후보 데이터를 상기 각 분할된 암호문 후보 구간에 순서대로 대응(mapping)시켜 암호화 키를 생성하는 단계; 및 (b) 상기 암호화 키를 사용하여, 주어진 평문 데이터에 대응하는 분할된 암호문 후보 구간을 찾은 후, 상기 분할된 암호문 후보 구간에 속하는 임의의 암호문 후보 데이터를 암호문 데이터로 산출하여 상기 주어진 평문 데이터를 암호화하는 단계;를 포함하는 데이터 암호화 방법을 제공한다.The present invention provides a method for encrypting ordered data, comprising: (a) extending all plaintext candidate sections to an arbitrary size to set all ciphertext candidate sections, and having all intersections of arbitrary sizes having no intersection with each other; Partitioning each plaintext candidate data into each of the divided ciphertext candidate sections in order and generating an encryption key after dividing the unencrypted cipher text candidate sections into pieces; And (b) using the encryption key, find a divided ciphertext candidate section corresponding to the given plaintext data, and then calculate any ciphertext candidate data belonging to the divided ciphertext candidate section as ciphertext data to obtain the given plaintext data. It provides a data encryption method comprising a; encrypting.

Description

데이터베이스 암호화 시스템 및 방법{SYSTEM AND METHOD FOR DATABASE ENCRYPTION}Database encryption system and method {SYSTEM AND METHOD FOR DATABASE ENCRYPTION}

본 발명은 데이터베이스 암호화 시스템 및 방법에 관한 것이다.The present invention relates to a database encryption system and method.

데이터베이스 보안의 중요성이 점점 부각되고 있다. 예를 들어 유명 포털 사이트나 게임 서버에서의 사용자 정보 유출 사고와 같은 사건들이 데이터베이스 기밀성 보장이 얼마나 중요한지에 대한 인식을 높였다.The importance of database security is becoming increasingly important. For example, events such as leaking user information on popular portal sites or game servers have raised awareness of how important database confidentiality is.

데이터베이스에 저장된 데이터의 기밀성을 보장하려면 데이터를 암호화하여 저장해야 하는데, 그럴 경우 데이터베이스 본래의 목적인 데이터 검색의 효율성이 저하된다. 예를 들어, 1부터 10사이의 데이터를 검색하고자 한다면 데이터베이스에 저장된 암호화되어 있는 데이터를 모두 복호화하여 그 중에서 1부터 10사이의 데이터를 검색해야 사용자 질의에 대한 결과를 출력할 수 있다.To ensure the confidentiality of the data stored in the database, the data must be encrypted and stored, which reduces the efficiency of data retrieval, the purpose of the database. For example, if you want to search for data between 1 and 10, you must decrypt all encrypted data stored in the database and search for data between 1 and 10 among them to output the result of the user query.

따라서 데이터를 암호화해 저장하면서도 원래의 순서가 암호화된 데이터에도 반영되도록 하는 순서 유지 암호화 기술이 제안되었다. 순서 유지 암호화 기술을 사용하면 단순히 1에 해당하는 암호화된 데이터와 10에 해당하는 암호화된 데이터 사이의 데이터들만 복호화하여 사용자에게 돌려주면 되기 때문에 효율적이다.Therefore, an order-keeping encryption technique has been proposed that encrypts and stores data so that the original order is reflected in the encrypted data. The ordered encryption technique is efficient because only the data between the encrypted data corresponding to 1 and the encrypted data corresponding to 10 is decrypted and returned to the user.

그러나 종래에 제안된 순서 유지 암호화 방법들은 저장해야 하는 비밀 정보가 매우 많아 다량의 추가적인 저장 공간이 필요하거나, 데이터의 추가 및 삭제가 자유롭지 못하고, 암호화 및 복호화 과정이 매우 비효율적이라는 등의 문제를 가지고 있어 대용량 데이터베이스에 적용하기에는 부적합한 경우가 많았다.However, the conventionally proposed order-keeping encryption methods have a lot of secret information that needs to be stored, requiring a large amount of additional storage space, adding and deleting data is not free, and encryption and decryption processes are very inefficient. It was often inadequate for large databases.

따라서 암호화 및 복호화 연산이 매우 효율적으로 이루어질 뿐만 아니라 높은 안전성을 제공하며, 추가적인 제약 사항이 없어 실제 대용량 데이터베이스에서 사용 가능한 현실적인 순서 유지 암호화 기술이 필요하다.As a result, encryption and decryption operations are very efficient, provide high security, and there is no additional restriction, which requires realistic order-keeping encryption technology that can be used in real large databases.

이와 관련하여 한국등록특허 제10-0919824호("데이터 암호화 장치와 이를 이용한 암호화 방법")에는 평문 데이터에 대한 순서 교란 기법과 순서 유지 암호화 기법을 통해 암호화하여 저장하는 구성이 개시되어 있다.In this regard, Korean Patent No. 10-0919824 (“Data Encryption Device and Encryption Method Using the Same”) discloses a configuration for encrypting and storing a plain text data by using a sequence disturbance technique and a sequence maintenance encryption technique.

또한, 한국등록특허 제10-1045222호("개인 정보를 순서 정보와 내용 정보로 분리하여 암호화하고 합성하는 방법, 장치, 서버 및 기록 매체")는 개인 정보로부터 분리된 순서 정보와 내용 정보를 구분하여 암호화하고 암호화 전과 동일하게 순서 정보를 유지할 수 있도록 각각의 암호화된 정보를 합성하여 저장하는 구성이 개시되어 있다.In addition, Korean Patent No. 10-1045222 ("Method, apparatus, server, and recording medium for separating and encrypting and synthesizing personal information into order information and content information") distinguishes order information and content information separated from personal information. To encrypt and store the same sequence information as before the encryption is disclosed.

본 발명은 전술한 문제를 해결하기 위한 것으로서, 그 목적은 안전성이 높으면서도 효율적인 데이터베이스 암호화 시스템 및 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems, and an object thereof is to provide a secure and efficient database encryption system and method.

상기와 같은 목적을 달성하기 위한 본 발명의 제 1 측면에 따른 순서가 있는 데이터를 암호화하는 방법은, (a) 전체 평문 후보 구간을 임의의 크기로 확장하여 전체 암호문 후보 구간을 설정하고, 상기 전체 암호문 후보 구간을 임의 크기의, 서로 교집합을 갖지 않는 분할된 암호문 후보 구간들로 분할한 후, 각 평문 후보 데이터를 상기 각 분할된 암호문 후보 구간에 순서대로 대응(mapping)시켜 암호화 키를 생성하는 단계; 및 (b) 상기 암호화 키를 사용하여, 주어진 평문 데이터에 대응하는 분할된 암호문 후보 구간을 찾은 후, 상기 분할된 암호문 후보 구간에 속하는 임의의 암호문 후보 데이터를 암호문 데이터로 산출하여 상기 주어진 평문 데이터를 암호화하는 단계;를 포함하는 것을 특징으로 한다.Method for encrypting the ordered data according to the first aspect of the present invention for achieving the above object, (a) to extend the entire plaintext candidate interval to any size to set the entire ciphertext candidate interval, Dividing a ciphertext candidate section into divided ciphertext candidate sections having an arbitrary size and having no intersection with each other, and then mapping each plaintext candidate data to each of the divided ciphertext candidate sections in order to generate an encryption key ; And (b) using the encryption key, find a divided ciphertext candidate section corresponding to the given plaintext data, and then calculate any ciphertext candidate data belonging to the divided ciphertext candidate section as ciphertext data to obtain the given plaintext data. Encrypting; characterized in that it comprises a.

상기와 같은 목적을 달성하기 위한 본 발명의 제 2 측면에 따른 데이터베이스 암호화 시스템은, 전체 평문 후보 구간을 임의의 크기로 확장하여 전체 암호문 후보 구간을 설정하고, 상기 전체 암호문 후보 구간을 임의 크기의, 서로 교집합을 갖지 않는 분할된 암호문 후보 구간들로 분할한 후, 각 평문 후보 데이터를 상기 각 분할된 암호문 후보 구간에 순서대로 대응(mapping)시켜 암호화 키를 생성하는 키 생성부; 상기 암호화 키를 사용하여, 주어진 평문 데이터에 대응하는 분할된 암호문 후보 구간을 찾은 후, 상기 분할된 암호문 후보 구간에 속하는 임의의 암호문 후보 데이터를 암호문 데이터로 산출하여 상기 주어진 평문 데이터를 암호화하는 암호화부; 및 상기 암호화부에 의해 산출된 암호문 데이터를 저장하는 데이터베이스를 포함하는 것을 특징으로 한다.The database encryption system according to the second aspect of the present invention for achieving the above object, extends the entire plaintext candidate section to an arbitrary size to set the entire ciphertext candidate section, the total ciphertext candidate section of any size, A key generation unit for generating encryption keys by dividing the plaintext candidate data into each of the divided ciphertext candidate sections in order after partitioning the divided ciphertext candidate sections having no intersection with each other; An encryption unit for finding the divided ciphertext candidate section corresponding to the given plain text data using the encryption key, and then calculating any cipher text candidate data belonging to the divided cipher text candidate section as cipher text data to encrypt the given plain text data. ; And a database for storing the cipher text data calculated by the encryption unit.

본 발명은 데이터베이스 암호화 시스템 및 방법에 있어, 추가적인 제약 사항이 없이 암호화된 데이터를 효율적으로 검색할 수 있으며 데이터의 추가 및 삭제가 자유롭다.The present invention is a database encryption system and method, it is possible to efficiently retrieve encrypted data without additional restrictions, and the addition and deletion of data is free.

또한 데이터의 암호화와 복호화 과정이 매우 단순하므로 효율성이 높다.In addition, the process of encrypting and decrypting data is very simple, making it highly efficient.

또한 동일한 평문 데이터가 암호화시마다 다른 암호문으로 암호화되므로 안전성이 높다.In addition, the same plaintext data is encrypted with a different ciphertext every time it is encrypted, so the safety is high.

또한 사용자가 안전성 수준을 쉽게 제어할 수 있다.In addition, the user can easily control the safety level.

도 1은 본 발명에 따른 데이터베이스 암호화 시스템의 구조를 도시함.
도 2, 3, 4, 5는 본 발명에 따른 데이터 암호화 방법의 흐름을 도시함.
도 6, 7은 본 발명에 따른 데이터 암호화 방법의 실시예를 도시함.
1 illustrates the structure of a database encryption system according to the present invention.
2, 3, 4 and 5 illustrate the flow of a data encryption method according to the present invention.
6 and 7 show an embodiment of a data encryption method according to the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용미만이게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that the present invention may be implemented only by those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

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

도 1은 본 발명에 따른 데이터베이스 암호화 시스템(10)을 나타낸 블록도이며, 도 2, 3, 4, 5는 본 발명에 따른 데이터 암호화 방법의 흐름을 도시하고 있다. 이 도면들을 통해 본 발명에 따른 데이터베이스 암호화 시스템(10) 및 방법에 대해 간략하게 살펴보자. 자세한 내용은 이후 본 발명에 따른 데이터 암호화 방법의 실시예를 도시하고 있는 도 6, 7을 통해 살펴보겠다.1 is a block diagram illustrating a database encryption system 10 according to the present invention, and FIGS. 2, 3, 4, and 5 illustrate a flow of a data encryption method according to the present invention. Let us briefly look at the database encryption system 10 and method according to the present invention through these figures. A detailed description will now be made with reference to FIGS. 6 and 7 illustrating an embodiment of a data encryption method according to the present invention.

먼저 도 1을 간략히 살펴보면, 본 발명에 따른 데이터베이스 암호화 시스템(10)은 데이터베이스(100), 데이터베이스(100)에 저장하기 위해 주어진 평문 데이터를 암호화하여 암호문 데이터를 산출하는 암호화부(200), 데이터베이스(100)에서 출력된 암호문 데이터를 복호화하여 평문 데이터를 산출하는 복호화부(300), 및 암호화부(200)와 복호화부(300)에서 사용되는 암호화 키를 생성하는 키 생성부(400)를 포함한다.First, briefly referring to FIG. 1, a database encryption system 10 according to the present invention includes an encryption unit 200 for calculating encryption text data by encrypting given plain text data for storage in the database 100, the database 100, and a database ( A decryption unit 300 for decrypting the ciphertext data output from 100 to calculate plain text data, and a key generation unit 400 for generating an encryption key used in the encryption unit 200 and the decryption unit 300. .

본 발명에 따른 데이터베이스 암호화 시스템(10) 및 방법은 대칭키 기반의 순서 유지 암호화 기술을 사용한다. 즉, 데이터의 암호화와 복호화에 동일한 암호화 키를 사용하며, 평문 데이터의 순서가 암호문 데이터에서도 유지된다.The database encryption system 10 and method according to the present invention uses a symmetric key based order-based encryption technique. That is, the same encryption key is used for encrypting and decrypting data, and the order of the plain text data is also maintained in the cipher text data.

평문 데이터에 대응하는 분할된 암호문 후보 구간을 설정하고 이 구간 내에서 평문 데이터에 대응되는 암호문 데이터를 찾음으로써 암호화를 수행하고, 암호화의 역변환을 수행하여 즉, 암호문 데이터에 대응되는 평문 데이터를 찾음으로써 복호화를 수행한다.By setting the divided ciphertext candidate section corresponding to the plain text data and finding ciphertext data corresponding to the plain text data within this section, the encryption is performed, and the inverse transformation of the encryption is performed, i.e., the plain text data corresponding to the ciphertext data is found. Perform decryption.

본 발명에 따른 데이터베이스 암호화 시스템(10) 및 방법은 암호화된 데이터에서도 원래 데이터에서의 순서가 유지되도록 하여 데이터 검색이 효율적으로 이루어지도록 하는 것을 목표로 하므로, 순서가 의미를 갖는 데이터를 대상으로 한다. 순서가 있는 데이터는 간단한 연산으로 양의 정수로 바꿀 수 있을 것이므로, 이후 기술에서 대상 데이터들은 모두 양의 정수라고 가정한다.The database encryption system 10 and the method according to the present invention aim to maintain the order in the original data even in the encrypted data so that the data retrieval can be efficiently performed. Since ordered data can be converted to positive integers with simple operations, the following description assumes that all target data are positive integers.

키 생성부(400)는 전체 평문 후보 구간을 임의의 크기로 확장하여 전체 암호문 후보 구간을 설정하고, 상기 전체 암호문 후보 구간을 임의 크기의, 서로 교집합을 갖지 않는 분할된 암호문 후보 구간들로 분할한 각 분할된 암호문 후보 구간에 각 평문 후보 데이터를 순서대로 대응(mapping)시켜 암호화 키를 생성한다.The key generation unit 400 extends the entire plaintext candidate section to an arbitrary size to set the entire ciphertext candidate section, and divides the entire ciphertext candidate section into divided ciphertext candidate sections having no intersection with any size. An encryption key is generated by mapping each plaintext candidate data to each divided ciphertext candidate section in order.

먼저, 사용할 평문 후보 데이터의 개수, 즉 전체 평문 후보 구간의 크기에 따라 전체 암호문 후보 구간을 정의한다. 전체 암호문 후보 구간을 어느 정도 크게 할 것인지는 사용자에 의해서 결정된다. 전체 암호문 후보 구간의 크기가 커지면 안전성은 높아지고 효율성은 떨어지게 되며, 평문 후보 데이터의 개수에 따른 안전성과 효율성 관계는 이와는 반대로 나타내게 된다. First, all ciphertext candidate sections are defined according to the number of plaintext candidate data to be used, that is, the size of all plaintext candidate sections. How large the entire ciphertext candidate section is is determined by the user. As the size of the entire ciphertext candidate section increases, the safety increases and the efficiency decreases. The relationship between the safety and the efficiency according to the number of plaintext candidate data is reversed.

따라서 사용자는 자신에게 맞는 효율성과 안전성 레벨을 정하여 전체 평문 후보 구간의 크기 및/또는 전체 암호문 후보 구간의 크기를 설정할 수 있다. 즉, 키 생성부(400)는 사용자에 의해 기설정된 안전성 수준에 따라 전체 평문 구간의 크기 및/또는 전체 암호문 구간의 크기를 결정할 수 있다.Therefore, the user may set the size of the entire plaintext candidate section and / or the size of the entire ciphertext candidate section by determining the efficiency and safety level suitable for the user. That is, the key generation unit 400 may determine the size of the entire plaintext section and / or the size of the entire ciphertext section according to the security level preset by the user.

다음, 평문 후보 데이터의 개수만큼 전체 암호문 후보 구간을 임의로 분할한다. 이때 주의할 점은 각 암호문 분할 구간 사이에 교집합이 발생되지 않게 분할해야 복호화시 문제가 발생하지 않는다는 것이다. 또한 구간 분할시 규칙성이 발생하지 않도록 주의해야 한다.Next, all ciphertext candidate sections are arbitrarily divided by the number of plain text candidate data. In this case, it should be noted that the partitioning does not occur between the ciphertext division intervals so that the decryption does not occur. Also, care should be taken to avoid regularity in segmentation.

다음, 각 암호문 분할 구간을 순차적으로 각 평문 후보 데이터에 대응시킨다. 이러한 대응 관계가 본 발명에 따른 데이터베이스 암호화 시스템(10)에서 암호화 키 역할을 하게 된다. 따라서 안전하게 저장되어야 한다.Next, each cipher text division section is sequentially corresponded to each plain text candidate data. This correspondence serves as an encryption key in the database encryption system 10 according to the present invention. Therefore, it must be stored safely.

암호화부(200)는 주어진 평문 데이터에 대응하는 분할된 암호문 후보 구간에서 임의의 암호문 후보 데이터를 선택하여 암호문 데이터로 산출한다.The encryption unit 200 selects arbitrary cipher text candidate data in the divided cipher text candidate section corresponding to the given plain text data and calculates the cipher text data.

암호문 데이터를 적절한 후보 중에서 임의로 선택하기 때문에, 동일한 평문 데이터에 대해 암호화 수행시마다 다른 암호문 데이터가 산출될 수 있다. 따라서 본 발명에 따른 데이터베이스 암호화 시스템(10)은 공격자가 원래의 평문 데이터를 추측하는 것을 어렵게 한다. 자세한 내용은 실시예를 통해 후술한다.Since ciphertext data is arbitrarily selected from appropriate candidates, different ciphertext data may be calculated every time encryption is performed on the same plaintext data. Thus, the database encryption system 10 according to the present invention makes it difficult for an attacker to guess the original plain text data. Details will be described later through examples.

복호화부(300)는 주어진 암호문 데이터가 속한 분할된 암호문 후보 구간 정보에 대응하는 평문 후보 데이터를 찾아 평문 데이터로 산출한다.The decoder 300 finds plain text candidate data corresponding to the divided cipher text candidate section information to which the given cipher text data belongs and calculates the plain text data as plain text data.

주어진 암호문 데이터가 속한 분할된 암호문 후보 구간 정보만을 사용하여 평문 데이터를 찾아내기 때문에, 본 발명에 따른 데이터베이스 암호화 시스템(10)은 연산 부하가 매우 낮아 효율적이다. 자세한 내용은 실시예를 통해 후술한다.Since the plaintext data is found using only the divided ciphertext candidate section information to which a given ciphertext data belongs, the database encryption system 10 according to the present invention has a very low computational load and is efficient. Details will be described later through examples.

또한 도 2를 간략히 살펴보면, 본 발명에 따른 데이터 암호화 방법은 다음과 같은 흐름을 갖는다.2, the data encryption method according to the present invention has the following flow.

데이터베이스(100)에 데이터를 입력하거나 출력하기 전에, 키 생성부(400)에 의해 암호화 키가 생성된다(S210). 이후 데이터베이스(100)에 데이터를 저장할 때는 암호화부(200)에 의해 암호화가 수행되며(S220), 데이터베이스(100)에서 데이터를 읽어올 때는 복호화부(300)에 의해 복호화가 수행된다(S230).Before inputting or outputting data to the database 100, an encryption key is generated by the key generation unit 400 (S210). Thereafter, when storing data in the database 100, encryption is performed by the encryption unit 200 (S220), and when reading data from the database 100, decryption is performed by the decryption unit 300 (S230).

도 3, 4, 5는 도 2의 각 단계를 구체적으로 나타낸 흐름도이다.3, 4, and 5 are flowcharts illustrating each step of FIG. 2 in detail.

도 3은 본 발명에 따른 데이터 암호화 방법의 암호화 키 생성 단계(S210)를 도시하고 있다.3 shows an encryption key generation step S210 of the data encryption method according to the present invention.

먼저 사용자가 사전에 선택한 안전성 수준에 따라, 전체 평문 후보 구간을 임의의 크기로 확장하여 전체 암호문 후보 구간을 정한다(S310). 전체 암호문 후보 구간을 임의 크기의, 서로 교집합을 갖지 않는 분할된 암호문 후보 구간들로 분할한 후, 각 평문 후보 데이터를 각 분할된 암호문 후보 구간에 순서대로 대응(mapping)시켜 암호화 키를 생성한다(S320).First, the entire ciphertext candidate section is determined by extending the entire plaintext candidate section to a random size according to the safety level previously selected by the user (S310). After dividing the entire ciphertext candidate section into divided ciphertext candidate sections having an arbitrary size and no intersection with each other, each plaintext candidate data is mapped to each divided ciphertext candidate section in order to generate an encryption key. S320).

즉, 본 발명에 따른 암호화 방법에서의 암호화 키는 각 평문 후보 데이터와 분할된 암호문 후보 구간의 대응 관계이다.That is, the encryption key in the encryption method according to the present invention is a correspondence relationship between each plaintext candidate data and the divided ciphertext candidate section.

전체 암호문 후보 구간의 크기가 커지면 안전성은 높아지고 효율성은 떨어지게 되며, 전체 암호문 후보 구간의 크기가 작아지면 반대의 결과가 나오게 된다. 따라서 사용자는 자신에게 맞는 효율성과 안전성 수준을 설정하여 전체 암호문 후보 구간의 크기를 제어할 수 있다.The larger the size of the entire ciphertext candidate interval, the higher the safety and the lower the efficiency. The smaller the size of the total ciphertext candidate interval results in the opposite result. Therefore, the user can control the size of the entire ciphertext candidate section by setting the level of efficiency and security suited to the user.

도 4는 본 발명에 따른 데이터 암호화 방법의 암호화 단계(S220)를 도시하고 있다.Figure 4 shows the encryption step (S220) of the data encryption method according to the present invention.

본 발명에 따른 데이터베이스 암호화 시스템(10)의 암호화부(200)는 암호화 키를 사용하여, 주어진 평문 데이터에 대응하는 분할된 암호문 후보 구간을 찾은 후(S410), 이 분할된 암호문 후보 구간에 속하는 임의의 암호문 후보 데이터를 암호문으로 선택한다(S420).The encryption unit 200 of the database encryption system 10 according to the present invention finds the divided ciphertext candidate section corresponding to the given plain text data using the encryption key (S410), and then belongs to the divided ciphertext candidate section. The ciphertext candidate data is selected as the ciphertext (S420).

즉, 본 발명에 따른 암호화 방법은 동일한 평문 데이터에 대해 암호화 수행시마다 다른 암호문 데이터가 산출될 수 있는 확률론적(probabilistic) 암호화 방법이다. 따라서, 본 발명에 따른 데이터 암호화 방법은 결정론적(deterministic) 암호화 방법 즉, 동일한 평문은 항상 동일한 암호문으로 대응되는 방식보다 안전하다.That is, the encryption method according to the present invention is a probabilistic encryption method in which different ciphertext data can be calculated every time encryption is performed on the same plaintext data. Therefore, the data encryption method according to the present invention is more secure than the deterministic encryption method, i.e., the same plain text always corresponds to the same cipher text.

도 5는 본 발명에 따른 데이터 암호화 방법의 복호화 단계(S230)를 도시하고 있다.5 shows a decryption step S230 of the data encryption method according to the present invention.

본 발명에 따른 데이터베이스 암호화 시스템(10)의 복호화부(300)는 암호화 키를 사용하여, 주어진 암호문 데이터가 속한 분할된 암호문 후보 구간 정보를 찾은 후(S510), 이 분할된 암호문 후보 구간에 대응하는 평문 데이터를 찾아낸다(S520).The decryption unit 300 of the database encryption system 10 according to the present invention finds the divided ciphertext candidate section information to which the given ciphertext data belongs using the encryption key (S510), and corresponds to the divided ciphertext candidate section. Find the plain text data (S520).

즉, 주어진 암호문 데이터의 값에 상관없이 암호문 데이터가 속한 분할된 암호문 후보 구간 정보만을 사용하여 대응하는 평문 데이터를 찾아낸다. 따라서, 본 발명에 따른 암호화 방법은 동일한 평문 데이터에 대해 암호화 수행시마다 다른 암호문 데이터가 산출되어 안전성이 높음에도 불구하고 복호화시의 효율성이 높다.That is, the corresponding plaintext data is found using only the divided ciphertext candidate section information to which the ciphertext data belongs regardless of the value of the ciphertext data. Therefore, in the encryption method according to the present invention, different encryption text data is calculated every time encryption is performed on the same plain text data, and thus the encryption method has high efficiency at decryption.

도 6, 7은 본 발명에 따른 데이터베이스 암호화 시스템을 활용한 데이터 암호화 방법의 실시예를 도시하고 있다.6 and 7 illustrate an embodiment of a data encryption method using a database encryption system according to the present invention.

도 6의 첫번째 도면에는 암호화되기 전의, 두번째 및 세번째 도면에는 암호화된 후의 데이터베이스 테이블의 일실시예가 도시되어 있다.6 shows an embodiment of a database table before being encrypted, and after being encrypted in the second and third drawings.

도시된 실시예에서 테이블(110)은 하나 이상의 암호화 비적용 필드(112) 및/또는 하나 이상의 암호화 적용 필드(114)를 포함한다. In the illustrated embodiment, the table 110 includes one or more non-encrypted fields 112 and / or one or more encrypted applying fields 114.

예를 들어, 본 실시예의 설계자는 학생의 이름이나 소속은 노출되어도 문제되지 않을 데이터라고 판단하여 암호화 비적용 필드(112)로, 국어 점수나 영어 점수 등 시험 성적은 노출되었을 때 문제가 될 데이터라고 판단하여 암호화 적용 필드(114)로 설정하였을 수 있다.For example, the designer of the present embodiment determines that the student's name or affiliation is not a problem even if the student's name or organization is exposed, and thus the non-encryption field 112 determines that the test score, such as a Korean score or an English score, will be a problem when exposed. May be set to the encryption application field 114.

본 발명의 관심 대상은 순서가 있는 데이터가 암호화되어 저장되는 암호화 적용 필드(114)로, 예를 들어 본실시예에서 암호화 적용 필드(114) 중 하나로 도시되어 있는 국어 점수 필드에 저장될 데이터로 선택될 수 있는 값(이를 평문 후보 데이터라고 하자)은 0 이상 100이하의 정수 중에서 하나로 설정되어 있을 수 있다.An object of interest in the present invention is an encryption application field 114 in which ordered data is encrypted and stored, for example, selected as data to be stored in a national score field shown as one of the encryption application fields 114 in this embodiment. The possible value (assuming that the plain text candidate data) may be set to one of integers from 0 to 100.

도시된 바와 같이 이 필드에서 원래의 데이터인 평문 데이터 (55(m1) 및 88(m2)) 대신에 실제로 데이터베이스에 저장되는 것은 암호화 데이터(99(c1) 및 125(c2) 또는 103(c1) 및 124(c2))이다.As shown, instead of the plain text data 55 (m1) and 88 (m2), which are the original data in this field, the actual data stored in the database is encrypted data 99 (c1) and 125 (c2) or 103 (c1) and 124 (c2)).

이렇게, 본 발명에 따른 암호화 방법에 따르면 평문 데이터(m1, m2)가 동일해도 암호화시마다 다른 암호문 데이터(c1, c2)가 산출될 수 있다. 따라서 데이터베이스 공격자가 암호문 데이터(c1, c2)를 획득하더라도 이로부터 원래의 평문 데이터(m1, m2)를 추측하는 것이 어려워지므로 안전성이 향상된다는 장점이 있다.Thus, according to the encryption method according to the present invention, even if the plain text data m1 and m2 are the same, different ciphertext data c1 and c2 may be calculated for each encryption. Therefore, even if the database attacker acquires the ciphertext data (c1, c2), it is difficult to infer the original plaintext data (m1, m2) from it has the advantage that the security is improved.

도 7에는 도 6의실시예에서 평문 데이터(m1, m2)와 암호문 데이터(c1, 2)의 대응 관계가 도시되어 있다.FIG. 7 illustrates a correspondence relationship between the plaintext data m1 and m2 and the ciphertext data c1 and 2 in the embodiment of FIG. 6.

좌측의 전체 평문 후보 구간을 나타낸 수직선에 도시되어 있는 바와 같이, 본 실시예에서 평문 후보 데이터는 전술한 바와 같이 [0, 1, 2, ..., 100]이다. 즉, 전체 평문 후보 구간은 0 이상 100이하이다.As shown in the vertical line representing the entire plain text candidate section on the left side, the plain text candidate data in this embodiment is [0, 1, 2, ..., 100] as described above. That is, the total plaintext candidate interval is 0 or more and 100 or less.

우측 전체 암호문 후보 구간을 나타낸 수직선을 보면, 본 실시예에서 전체 암호문 후보 구간은 0 이상 200 미만으로 설정되어 있음을 알 수 있다. 즉, 본 실시예에서 암호화 적용 필드(114)에 평문 데이터 대신 선택되어 저장될 수 있는 암호문 후보 데이터는 0 이상 200 미만의 정수이다.Looking at the vertical line representing the entire right ciphertext candidate section, it can be seen that the entire ciphertext candidate section is set to 0 or more and less than 200 in this embodiment. That is, the ciphertext candidate data that can be selected and stored in place of the plain text data in the encryption application field 114 in this embodiment is an integer of 0 or more and less than 200.

이는 사용자가 기설정한 안전성 수준에 따라 암호화 키 생성(S210)의 첫 단계(S310)에서 설정된 전체 암호문 후보 구간의 크기가 200임을 의미한다.This means that the size of the entire ciphertext candidate section set in the first step S310 of encryption key generation S210 according to a preset security level is 200.

암호화 키 생성(S210)의 그 다음 단계(S320)에서 우측의 전체 암호문 후보 구간은 임의의 크기로 서로 겹치지 않게 분할되어 각 평문 후보 데이터에 대응되었다. 도면에서 실선은 이상, 점선은 미만을 의미한다. 예컨대, 평문 후보 데이터 55에 대응되는 분할된 암호문 후보 구간은 85 이상 107 미만이며, 따라서 이 구간에 속하는 암호문 후보 데이터는 [85, 86, ..., 106]이다.In the next step S320 of the encryption key generation S210, all the ciphertext candidate sections on the right side are divided into arbitrary sizes so as not to overlap each other and correspond to each plaintext candidate data. In the drawings, the solid line means above and the dotted line means below. For example, the divided ciphertext candidate section corresponding to the plain text candidate data 55 is 85 or more and less than 107, and thus the ciphertext candidate data belonging to this section are [85, 86, ..., 106].

이때, 평문 후보 데이터 즉, 선택될 수 있는 평문 데이터의 후보가 101개이므로 분할된 암호문 후보 구간의 개수도 101개이다. 평문 후보 데이터 각각에 대해 분할된 암호문 후보 구간을 순서대로 대응시키기 위함이다.In this case, since there are 101 candidate candidates for plaintext candidate data, that is, selectable plaintext data, the number of divided ciphertext candidate sections is also 101. This is to correspond to the ciphertext candidate sections divided for each plaintext candidate data in order.

이때 주의할 점은 분할된 암호문 후보 구간들이 서로 겹치지 않아야 한다는 것이다. 또한, 각 구간의 크기에 규칙성이 있으면 안전성이 저하될 수 있다.Note that the divided ciphertext candidate sections should not overlap each other. In addition, if regularity is present in the size of each section, the safety may be lowered.

예를 들어, 평문 후보 데이터 88에 대응하는 분할된 암호문 후보 구간은 120 이상 130 미만으로 이 구간에 속하는 암호문 후보 데이터는[120, 121, ..., 129]의 10개이나, 평문 후보 데이터 100에 대응하는 분할된 암호문 후보 구간은 195 이상 200 미만으로 이 구간에 속하는 암호문 후보 데이터는[195, 196, ..., 199]의 5개이다. For example, the divided ciphertext candidate sections corresponding to the plain text candidate data 88 are 120 or more and less than 130, and the cipher text candidate data belonging to the section is 10 of [120, 121, ..., 129], but the plain text candidate data 100 The ciphertext candidate sections corresponding to are 195 or more and less than 200, and the ciphertext candidate data belonging to this section is [195, 196, ..., 199].

정리하자면 도시되어 있는 바와 같이, 각 분할된 암호문 후보 구간은 서로 교집합을 가지고 있지 않으며, 구간의 크기는 임의로 결정되었고, 순서대로 평문 후보 데이터에 대응되고 있다.In summary, each divided ciphertext candidate section does not have an intersection with each other, and the size of the section is arbitrarily determined and corresponds to the plaintext candidate data in order.

이렇게 각 평문 후보 데이터와 분할된 암호문 후보 구간의 대응 관계를 정의하여 암호화 키를 생성하고 나면, 데이터베이스에 데이터를 입출력할 때 수행하는 암호화(S220) 또는 복호화(S230) 수행시 정의된 암호화 키를 사용하여 대응 관계를 찾으면 된다.After generating the encryption key by defining the correspondence relationship between each plaintext candidate data and the divided ciphertext candidate section, the encryption key defined when performing encryption (S220) or decryption (S230) performed when inputting / outputting data into the database is used. To find the corresponding relationship.

예를 들어, 암호화 적용 필드(114)에 평문 데이터 55(m1)를 저장하려고 한다면, 암호화 키인 대응 관계를 먼저 살펴야 한다. 도면을 보면 55에 대응하는 분할된 암호문 후보 구간은 85 이상 107 미만이다. 따라서 [85, 86, ..., 106] 중 하나가 암호문 데이터로 선택될 수 있다. 본 발명에 따른 암호화 방법은 암호화시마다 이들 중 임의의 하나를 암호문 데이터로 선택하므로, 도 6의 실시예에 도시되어 있는 바와 같이 암호화 적용 필드(114)에는 암호화시마다 한번은 99(c1)가, 또한번은 103(c1)이 암호화 데이터로 산출되어 저장되었다.For example, if we want to store the plain text data 55 (m1) in the encryption application field 114, we must first look at the correspondence relationship which is the encryption key. As shown in the figure, the divided ciphertext candidate sections corresponding to 55 are 85 or more and less than 107. Therefore, one of [85, 86, ..., 106] may be selected as the cipher text data. Since the encryption method according to the present invention selects any one of them as the ciphertext data for each encryption, as shown in the embodiment of FIG. 6, the encryption application field 114 has 99 (c1) once for each encryption and once again. 103 (c1) was calculated and stored as encrypted data.

암호화 적용 필드(114)에 저장되어 있는 [85, 86, ..., 106] 중 하나(c1)를 출력할 때는 원본인 평문 데이터로 복호화해야 한다. 이때 본 발명에 따른 암호화 방법을 사용하면 단순히 해당 분할된 암호문 후보 구간에 대응되는 평문 후보 데이터를 찾으면 되므로 부하가 매우 낮다. 도시되어 있는 바와 같이, 85 이상 107 미만이라는 분할된 암호문 후보 구간에 대응하는 평문 후보 데이터는 55이므로, 55(m1)가 출력된다.When outputting one (c1) of [85, 86, ..., 106] stored in the encryption application field 114, the original plain text data must be decrypted. In this case, if the encryption method according to the present invention is used, since the plain text candidate data corresponding to the divided ciphertext candidate section is simply found, the load is very low. As shown, since the plain text candidate data corresponding to the divided ciphertext candidate section of 85 or more and less than 107 is 55, 55 (m1) is output.

전술한 바와 같이, 본 발명에 따른 암호화 방법은 비결정적이다. 예를 들어, 본 실시예에서 암호화 적용 필드(114)에 저장하도록 선택된 평문 데이터 m1, m2 는 각각 55, 88로 동일하나, 이에 대한 암호문 데이터 c1, c2는 각각 99, 125 또는 각각 103, 124로 암호화 시점마다 다르다. 즉, 평문 데이터가 동일해도 실제 암호화 적용 필드(114)에는 암호화 수행시마다 다른 값이 선택되어 저장된다.As mentioned above, the encryption method according to the present invention is nondeterministic. For example, in the present embodiment, the plaintext data m1 and m2 selected to be stored in the encryption application field 114 are the same as 55 and 88, respectively, but the ciphertext data c1 and c2 are 99 and 125 or 103 and 124 respectively. It is different for each encryption point. That is, even if the plain text data is the same, a different value is selected and stored in the actual encryption application field 114 every time encryption is performed.

암호화 적용 필드(114)가 데이터 중복이 허용되는 필드여서, 55(m1)이 여러 번 저장되더라도, 실제로 저장되는 값은 [85, 86, ..., 106] 중 하나(c1)이므로, 공격자는 암호화 적용 필드(114)를 들여다보더라도 여러 다른 데이터가 사실은 같은 데이터를 나타낸다는 것을 알아내기가 쉽지 않을 것이다.Even if 55 (m1) is stored several times because the encryption application field 114 is a field that allows data duplication, the value stored is one (c1) of [85, 86, ..., 106], so the attacker Looking into the encryption application field 114, it will not be easy to see that different data actually represents the same data.

예를 들어, 도시되어 있는 실시예에서 김갑돌 학생의 국어 점수가 55인데, 도시되어 있지 않지만 박순동 학생의 국어 점수도 55이라고 가정해보자. 암호화하지 않고 저장했거나 결정적 암호화 방법을 사용하여 암호화하여 저장했다면 데이터베이스에서 추출한 두 학생의 점수는 같은 값을 가질 것이다. 따라서 적어도 두 학생이 같은 점수를 갖고 있다는 정보는 아무런 연산을 거치지 않고서도 공격자에게 즉시 노출된다. 그러나, 본 발명에 따른 비결정적 암호화 방법을 사용하였을 때는 암호화시마다 다른 값이 선택되어 저장되므로, 공격자는 두 학생이 같은 점수를 받았는지 알 수 없다.For example, in the illustrated embodiment, suppose Kim Gab-dol's Korean score is 55, but although not shown, Park Soon-dong's Korean score is 55. If stored without encryption or encrypted with a deterministic encryption method, the scores of the two students extracted from the database will have the same value. Therefore, information that at least two students have the same score is immediately exposed to the attacker without any computation. However, when the non-deterministic encryption method according to the present invention is used, different values are selected and stored for each encryption, so that an attacker cannot know whether two students have received the same score.

이렇게 동일한 평문 데이터에 대해 암호화 수행시마다 다른 암호문 데이터를 산출하기 때문에 본 발명에 따른 확률론적인 순서 유지 암호화 방법은 결정론적 암호화 방법보다 높은 안전성을 제공한다.Since different ciphertext data is calculated every time encryption is performed on the same plaintext data, the probabilistic order keeping encryption method according to the present invention provides higher security than the deterministic encryption method.

반면, 복호화시는 별다른 연산 없이 암호화 분할 구간과 평문 후보 데이터 사이의 대응 관계만으로 원래의 평문 데이터를 찾아내므로, 효율성이 높다. On the other hand, in decryption, since the original plain text data is found only by the correspondence between the encryption partition section and the plain text candidate data without any operation, the efficiency is high.

예를 들어, 암호화 적용 필드(114)에 저장되어 있는 값이 99(c1)이든 103(c1)이든 85이상 107 미만이라는 분할된 암호문 후보 구간에 속하므로, 이에 대응되는 평문 후보 데이터인 55를 평문 데이터(m1)로 출력하면 된다.For example, since the value stored in the encryption application field 114 belongs to the divided ciphertext candidate section that is greater than or equal to 85 and less than 107, whether the value stored in the encryption application field 114 is 99 (c1) or 103 (c1). You can output it as (m1).

한편, 예를 들어, 평문 데이터 55이 변환될 수 있는 암호문 데이터 후보가 [85, 86, ..., 106] 중 하나에서 [85, 86, ..., 200] 중 하나로 그 개수가 늘어난다면 안전성이 좀더 증가할 것이고, 줄어든다면 안전성이 좀더 감소할 것임이 쉽게 이해될 것이다. 이는 각각의 평문 후보 데이터에 대해 마찬가지일 것이므로, 전체 평문 후보 구간에 대해서도 마찬가지일 것임도 쉽게 이해될 것이다.On the other hand, for example, if the number of ciphertext data candidates to which plaintext data 55 can be converted increases from one of [85, 86, ..., 106] to one of [85, 86, ..., 200]. It will be readily understood that safety will increase further, and if reduced, safety will decrease further. Since this will be the same for each plain text candidate data, it will be readily understood that the same will be true for the entire plain text candidate interval.

따라서, 전술한 바와 같이, 전체 암호문 후보 구간의 크기를 늘리면 안전성이 높아지고, 전체 암호문 후보 구간의 크기를 줄이면 그 반대가 된다. 반면 전체 암호문 후보 구간의 크기가 늘어날수록 효율성은 낮아지므로, 사용자는 적절한 안전성 수준을 선택하여 전체 암호문 후보 구간의 크기를 제어할 수 있다.Therefore, as described above, increasing the size of the entire ciphertext candidate interval increases the security, and reducing the size of the entire ciphertext candidate interval is the reverse. On the other hand, the efficiency decreases as the size of the entire ciphertext candidate section increases, so the user can control the size of the entire ciphertext candidate section by selecting an appropriate level of security.

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

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

10: 데이터베이스 암호화 시스템
100: 데이터베이스
200: 암호화부
300: 복호화부
400: 키 생성부
10: database encryption system
100: Database
200: encryption unit
300: decryption unit
400: key generation unit

Claims (11)

데이터베이스 암호화 시스템을 사용하여 순서가 있는 데이터를 암호화하는 방법에 있어서,
(a) 주어진 평문 데이터를 암호화하는 데 사용할 암호화 키를 생성하는 단계; 및
(b) 상기 생성된 암호화 키를 사용하여, 주어진 평문 데이터에 대응하는 분할된 암호문 후보 구간을 찾은 후, 상기 분할된 암호문 후보 구간에 속하는 임의의 암호문 후보 데이터를 암호문 데이터로 산출하여 상기 주어진 평문 데이터를 암호화하는 단계; 및
(c) 상기 생성된 암호화 키를 사용하여, 주어진 암호문 데이터가 속한 분할된 암호문 후보 구간 정보에 대응하는 평문 데이터를 산출하여 상기 주어진 암호문 데이터를 복호화하는 단계;를 포함하되,
상기 (a) 단계는
전체 평문 후보 구간을 임의의 크기로 확장하여 전체 암호문 후보 구간을 설정하는 단계;
상기 전체 암호문 후보 구간을 임의 크기의, 서로 교집합을 갖지 않는 분할된 암호문 후보 구간들로 분할하는 단계; 및
각 평문 후보 데이터를 상기 각 분할된 암호문 후보 구간에 순서대로 대응(mapping)시켜 암호화 키를 생성하는 단계;를 포함하는 데이터 암호화 방법.
In a method for encrypting ordered data using a database encryption system,
(a) generating an encryption key for use in encrypting the given plain text data; And
(b) using the generated encryption key, find a divided ciphertext candidate section corresponding to the given plaintext data, and then calculate any ciphertext candidate data belonging to the divided ciphertext candidate section as ciphertext data to obtain the ciphertext data. Encrypting; And
(c) using the generated encryption key, calculating plaintext data corresponding to the divided ciphertext candidate section information to which the given ciphertext data belongs, and decrypting the given ciphertext data;
The step (a)
Setting an entire ciphertext candidate section by extending the entire plain text candidate section to an arbitrary size;
Dividing the entire ciphertext candidate section into divided ciphertext candidate sections having an arbitrary size and having no intersection with each other; And
Mapping each plaintext candidate data to each of the divided ciphertext candidate sections in order to generate an encryption key.
삭제delete 제 1 항에 있어서,
상기 (a) 단계는
기설정된 안전성 수준에 따라 상기 전체 평문 후보 구간의 크기 및 상기 전체 암호문 후보 구간의 크기를 결정하는 것인 데이터 암호화 방법.
The method according to claim 1,
The step (a)
And determining the size of the entire plaintext candidate section and the size of the entire ciphertext candidate section according to a preset security level.
제 1 항에 있어서,
상기 (a) 단계는
상기 분할된 암호문 후보 구간의 개수가 상기 각 평문 후보 데이터의 개수와 같은 것인 데이터 암호화 방법.
The method according to claim 1,
The step (a)
And the number of divided ciphertext candidate sections is equal to the number of each plain text candidate data.
제 1 항에 있어서,
상기 (b) 단계는
동일한 평문 데이터에 대해 암호화 수행시마다 다른 암호문 데이터가 산출될 수 있는 것인 데이터 암호화 방법.
The method according to claim 1,
The step (b)
And a different ciphertext data can be calculated each time encryption is performed on the same plaintext data.
제 1 항에 있어서,
상기 (c) 단계는
상기 주어진 암호문 데이터의 값에 상관없이 상기 주어진 암호문 데이터가 속한 분할된 암호문 후보 구간 정보만을 사용하여 상기 평문 데이터를 찾아내는 것인 데이터 암호화 방법.
The method according to claim 1,
The step (c)
And retrieving the plaintext data using only the divided ciphertext candidate section information to which the given ciphertext data belongs regardless of the value of the ciphertext data.
데이터베이스 암호화 시스템에 있어서,
전체 평문 후보 구간을 임의의 크기로 확장하여 전체 암호문 후보 구간을 설정하고, 상기 전체 암호문 후보 구간을 임의 크기의, 서로 교집합을 갖지 않는 분할된 암호문 후보 구간들로 분할한 후, 각 평문 후보 데이터를 상기 각 분할된 암호문 후보 구간에 순서대로 대응(mapping)시켜 암호화 키를 생성하는 키 생성부;
상기 생성된 암호화 키를 사용하여, 주어진 평문 데이터에 대응하는 분할된 암호문 후보 구간을 찾은 후, 상기 분할된 암호문 후보 구간에 속하는 임의의 암호문 후보 데이터를 암호문 데이터로 산출하여 상기 주어진 평문 데이터를 암호화하는 암호화부;
상기 생성된 암호화 키를 사용하여, 주어진 암호문 데이터가 속한 분할된 암호문 후보 구간 정보에 대응하는 평문 데이터를 산출하여 상기 주어진 암호문 데이터를 복호화하는 복호화부; 및
상기 암호화부에 의해 산출된 암호문 데이터를 저장하는 데이터베이스;를 포함하는 데이터베이스 암호화 시스템.
In a database encryption system,
The total ciphertext candidate section is set by extending the entire plaintext candidate section to an arbitrary size, dividing the total ciphertext candidate section into divided ciphertext candidate sections having an arbitrary size and not having an intersection with each other, and then storing each plaintext candidate data. A key generation unit for generating an encryption key by mapping the divided ciphertext candidate sections in order;
After finding the divided cipher text candidate section corresponding to the given plain text data using the generated encryption key, encrypting the given plain text data by calculating any cipher text candidate data belonging to the divided cipher text candidate section as cipher text data. An encryption unit;
A decryption unit using the generated encryption key to calculate plaintext data corresponding to the divided ciphertext candidate section information to which the given ciphertext data belongs and to decrypt the given ciphertext data; And
And a database for storing ciphertext data calculated by the encryption unit.
삭제delete 제 7 항에 있어서,
상기 키 생성부는
기설정된 안전성 수준에 따라 상기 전체 평문 후보 구간의 크기 및 상기 전체 암호문 후보 구간의 크기를 결정하며,
상기 분할된 암호문 후보 구간의 개수가 상기 각 평문 후보 데이터의 개수와 같은 것인 데이터베이스 암호화 시스템.
The method of claim 7, wherein
The key generation unit
Determine the size of the entire plaintext candidate section and the size of the entire ciphertext candidate section according to a preset security level,
And the number of divided ciphertext candidate sections is equal to the number of each plain text candidate data.
제 7 항에 있어서,
상기 암호화부는
동일한 평문 데이터에 대해 암호화 수행시마다 다른 암호문 데이터가 산출될 수 있는 것인 데이터베이스 암호화 시스템.
The method of claim 7, wherein
The encryption unit
A database encryption system in which different ciphertext data can be produced each time encryption is performed on the same plaintext data.
제 7 항에 있어서,
상기 복호화부는
상기 주어진 암호문 데이터의 값에 상관없이 상기 주어진 암호문 데이터가 속한 분할된 암호문 후보 구간 정보만을 사용하여 상기 평문 데이터를 찾아내는 것인 데이터베이스 암호화 시스템.
The method of claim 7, wherein
The decoding unit
And finding the plaintext data using only the divided ciphertext candidate interval information to which the given ciphertext data belongs regardless of the value of the ciphertext data.
KR1020120045084A 2012-04-30 2012-04-30 System and method for database encryption KR101382628B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120045084A KR101382628B1 (en) 2012-04-30 2012-04-30 System and method for database encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120045084A KR101382628B1 (en) 2012-04-30 2012-04-30 System and method for database encryption

Publications (2)

Publication Number Publication Date
KR20130126825A KR20130126825A (en) 2013-11-21
KR101382628B1 true KR101382628B1 (en) 2014-04-07

Family

ID=49854636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120045084A KR101382628B1 (en) 2012-04-30 2012-04-30 System and method for database encryption

Country Status (1)

Country Link
KR (1) KR101382628B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11174955A (en) * 1997-12-17 1999-07-02 Nippon Telegr & Teleph Corp <Ntt> Open key ciphering device, open key ciphering and deciphering device, and deciphering program recording medium
KR20110073227A (en) * 2009-12-22 2011-06-29 이순구 Method, apparatus, server and recordable medium for encrypting and combining order info and contents info separated from personal info

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11174955A (en) * 1997-12-17 1999-07-02 Nippon Telegr & Teleph Corp <Ntt> Open key ciphering device, open key ciphering and deciphering device, and deciphering program recording medium
KR20110073227A (en) * 2009-12-22 2011-06-29 이순구 Method, apparatus, server and recordable medium for encrypting and combining order info and contents info separated from personal info

Also Published As

Publication number Publication date
KR20130126825A (en) 2013-11-21

Similar Documents

Publication Publication Date Title
Demertzis et al. Fast searchable encryption with tunable locality
Ge et al. Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification
US11144663B2 (en) Method and system for search pattern oblivious dynamic symmetric searchable encryption
Goodrich et al. Privacy-preserving group data access via stateless oblivious RAM simulation
CN105635144B (en) Data processing method based on cloud platform server and system
CN103049466B (en) A kind of text searching method based on distributed cryptograph storage and system
CN109361644B (en) Fuzzy attribute based encryption method supporting rapid search and decryption
Rizomiliotis et al. ORAM based forward privacy preserving dynamic searchable symmetric encryption schemes
KR20130024144A (en) Weighted keyword searching method for perserving privacy, and apparatus thereof
US7016493B2 (en) Key matrix system
JP6632780B2 (en) Data processing device, data processing method, and data processing program
CN106936820A (en) The elongated amending method of data and its application in big data encryption
CN109213731A (en) Multi-key word cipher text retrieval method in cloud environment based on iterative cryptographic
CN108650268B (en) Searchable encryption method and system for realizing multi-level access
KR20150122494A (en) Encryption apparatus, method for encryption, method for decryption and computer-readable recording medium
CN106250453A (en) The cipher text retrieval method of numeric type data based on cloud storage and device
CN113904823B (en) Attribute-based searchable encryption method and system for constant-level authorization computation complexity
KR101382628B1 (en) System and method for database encryption
KR101264286B1 (en) System and method for database encryption
CN111639349B (en) Data encryption processing method and device and storage medium
CN112115506B (en) Attribute-based data searching method and system supporting Boolean query
KR20110057369A (en) Data encryption apparatus and its method
CN111797097A (en) Method for realizing safety range query based on software and hardware combination mode
Bang et al. Encryption algorithm using polyline simplification for GIS vector map
Li et al. Secure and Efficient k-Nearest Neighbor Query with Privacy-Preserving Authentication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 6