KR20110057369A - Data encryption apparatus and its method - Google Patents

Data encryption apparatus and its method Download PDF

Info

Publication number
KR20110057369A
KR20110057369A KR1020090113740A KR20090113740A KR20110057369A KR 20110057369 A KR20110057369 A KR 20110057369A KR 1020090113740 A KR1020090113740 A KR 1020090113740A KR 20090113740 A KR20090113740 A KR 20090113740A KR 20110057369 A KR20110057369 A KR 20110057369A
Authority
KR
South Korea
Prior art keywords
data
index
information
index information
storage device
Prior art date
Application number
KR1020090113740A
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 KR1020090113740A priority Critical patent/KR20110057369A/en
Publication of KR20110057369A publication Critical patent/KR20110057369A/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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Abstract

PURPOSE: A device of encoding data and method thereof are provided to enable an effective search about encoded database and reinforce privacy about a database by generating index information and enabling data based on the index information. CONSTITUTION: An encoding unit(102) encodes stored data. An index generator(104) partitions a total interval of the encoded data into subdivisions and rearranges the partitioned subdivisions. The index generating unit generates index information corresponding to a reordering order and transmits the index information and the rearranged encoded data to a storing device. The encoding unit transmits a search query including index information to a storage unit an receives searched and extracted data according to the index information from the storing device.

Description

데이터 암호화 장치 및 그 방법{DATA ENCRYPTION APPARATUS AND ITS METHOD}DATA ENCRYPTION APPARATUS AND ITS METHOD}

본 발명은 데이터를 암호화하여 저장하는 기법에 관한 것으로, 더욱 상세하게는 저장하고자 하는 데이터를 암호화하여 저장하고, 그에 대응하는 정보에 따라 쉽게 검색하는데 적합한 데이터 암호화 장치 및 그 방법에 관한 것이다.The present invention relates to a technique for encrypting and storing data, and more particularly, to a data encryption apparatus and method suitable for encrypting and storing data to be stored, and easily searching according to corresponding information.

잘 알려진 바와 같이, 최근 기업 데이터베이스에서의 고객 개인 정보 유출이나 해킹의 사례에서 알 수 있듯이 데이터베이스에 저장된 중요 정보에 대한 보안 문제가 중요한 핫 이슈가 되고 있다. 특히, 중요 데이터베이스를 저장 공간이나 서비스 등의 이유로 외부 서버에 저장하는 경우, 이러한 보안 문제에 더욱 취약할 수 있다.As is well known, the security of sensitive information stored in the database has become an important hot issue, as can be seen in the recent case of customer personal information leakage or hacking in the corporate database. In particular, when the important database is stored on an external server for storage space or service, such a vulnerability may be more vulnerable.

만약, 데이터베이스가 평문으로 외부 서버에 저장된다면, 외부 서버 관리자에 의한 데이터베이스 열람, 유출 및 악의적인 사용을 막는 것은 불가능하기 때문에, 이를 예방하기 위해 사용자가 자신의 데이터베이스를 외부 서버에 암호화하여 저장할 수 있다.If the database is stored on the external server in plain text, it is impossible to prevent the database from being accessed, leaked, and malicious by the external server administrator, so that the user can encrypt and store his database on the external server to prevent this. .

그러나, 사용자가 자신의 데이터베이스를 외부 서버에 암호화하여 저장할 경우 서버는 암호화된 데이터베이스를 검색할 수 없기 때문에, 서버에서는 사용자가 원할 때마다 사용자의 모든 암호화된 데이터베이스를 사용자에게 전송하게 되고, 이 후 사용자는 암호화된 데이터베이스를 모두 복호화한 후 원하는 데이터를 획득할 수 있다.However, if the user encrypts and stores their database on an external server, the server cannot retrieve the encrypted database, so the server sends all the encrypted databases of the user to the user whenever the user wants, after which the user After decrypting all encrypted databases, desired data may be obtained.

여기에서, 외부 서버에 저장되는 데이터는 보통 대용량 데이터이기 때문에, 암호화된 모든 데이터를 수신한 후 복호화하는 것은 너무 많은 시간을 소모하게 되는 단점이 있다. 이에 암호화된 데이터에 부가 정보를 추가하여 암호화된 데이터를 효율적으로 검색하는 방법이 연구되고 있다. Here, since the data stored in the external server is usually a large amount of data, decryption after receiving all encrypted data has a disadvantage in that it takes too much time. Therefore, a method of efficiently searching for encrypted data by adding additional information to the encrypted data has been studied.

상술한 바와 같이, 종래에는 평문 데이터베이스에서 수행되고 있는 키워드 검색, 범위 검색, 정렬(sorting) 등의 다양한 검색 기능이 암호화된 데이터베이스에서도 요구되고 있으나, 현재 개발된 대부분의 암호 데이터 검색 방법은 주로 키워드 검색에 머무르고 있는 실정이며, 최근에 암호 기술을 바탕으로 부분 집합, 범위 검색이 가능한 기법이 제안되고 있으나, 연산량이 매우 많아 현실적으로 적용하기에는 어려움이 있다.As described above, various search functions such as keyword search, range search, and sorting, which are conventionally performed in a plain text database, are required in an encrypted database. However, most of the currently developed encryption data retrieval methods are mainly keyword search. Recently, a technique for searching subsets and ranges based on cryptographic techniques has been proposed, but it is difficult to apply in practice due to the large amount of computation.

이에 따라, 본 발명은 저장하고자 하는 데이터를 암호화한 후, 그에 대응하는 인덱스를 생성하여 함께 저장할 수 있는 데이터 암호화 장치 및 그 방법을 제공하고자 한다.Accordingly, an aspect of the present invention is to provide an apparatus and method for encrypting data that can encrypt data to be stored and then generate and store an index corresponding thereto.

또한, 본 발명은 저장된 데이터를 생성된 인덱스에 따라 쉽게 검색 및 추출하여 출력할 수 있는 데이터 암호화 장치 및 그 방법을 제공하고자 한다.The present invention also provides a data encryption apparatus and method for easily searching, extracting and outputting stored data according to a generated index.

본 발명의 일 실시 예에 따르면, 저장하고자 하는 데이터를 암호화하는 암호화부와, 상기 암호화된 데이터의 전체 구간을 다수의 세부 구간으로 분할하고, 상기 분할된 다수의 세부 구간을 재배열한 후에, 재배열된 순서에 대응하는 인덱스 정보를 생성하며, 상기 생성된 인덱스 정보와 재배열된 상기 암호화된 데이터를 저장하도록 저장 장치에 전송하는 인덱스 생성부를 포함하는 데이터 암호화 장치가 제공된다.According to an embodiment of the present invention, the encryption unit encrypts the data to be stored, and divides the entire section of the encrypted data into a plurality of detailed sections, and rearranges the divided plurality of detailed sections. There is provided a data encryption apparatus including an index generator for generating index information corresponding to the order of the data and transmitting the generated index information and the rearranged encrypted data to a storage device.

바람직하게는, 상기 암호화부는, 검색하고자 하는 데이터에 대응하는 상기 인덱스 정보를 포함하는 검색 질의를 상기 저장 장치에 전송하고, 상기 저장 장치를 통해 상기 인덱스 정보에 따라 검색 및 추출된 검출 데이터를 수신 및 복호화하여 출력하는 데이터 암호화 장치가 제공된다.Preferably, the encryption unit transmits a search query including the index information corresponding to the data to be searched to the storage device, and receives detection data searched and extracted according to the index information through the storage device. A data encryption device for decrypting and outputting is provided.

바람직하게는, 상기 인덱스 생성부는, 상기 분할된 다수의 세부 구간을 재배열한 결과에 따라 시작점 정보, 끝점 정보 및 재배열 정보를 포함하는 세부 구간 정보와, 암호화 데이터 종류, 인덱스 영역 및 인덱스값을 포함하는 상기 인덱스 정보를 사용자 정보에 대응하여 저장하는 데이터 암호화 장치가 제공된다.Preferably, the index generator includes detailed section information including start point information, endpoint information, and rearrangement information, an encrypted data type, an index area, and an index value according to a result of rearranging the divided plurality of detailed sections. A data encryption device for storing the index information corresponding to user information is provided.

바람직하게는, 상기 인덱스 생성부는, 상기 인덱스 정보를 생성할 경우 상기 다수의 세부 구간의 인덱스를 사용자 선택에 따른 인덱스 영역에 할당하는 데이터 암호화 장치가 제공된다.Preferably, the index generator, when generating the index information is provided with a data encryption device for allocating the index of the plurality of subsections to the index area according to the user selection.

바람직하게는, 상기 인덱스 생성부는, 상기 시작점 정보, 끝점 정보 및 인덱스 영역을 이용하여 순서가 보존되는 상기 인덱스 정보를 생성하는 데이터 암호화 장치가 제공된다.Preferably, the index generator is provided with a data encryption device for generating the index information, the order is preserved using the start point information, end point information and the index area.

본 발명의 다른 실시 예에 따르면, 저장하고자 하는 데이터를 암호화하는 단계와, 상기 암호화된 데이터의 전체 구간을 다수의 세부 구간으로 분할하는 단계와, 상기 분할된 다수의 세부 구간을 재배열한 후에, 재배열된 순서에 대응하는 인덱스 정보를 생성하는 단계와, 상기 생성된 인덱스 정보와 재배열된 상기 암호화된 데이터를 저장하도록 저장 장치에 전송하는 단계를 포함하는 데이터 암호화 방법이 제공된다.According to another embodiment of the present invention, after encrypting the data to be stored, dividing the entire section of the encrypted data into a plurality of detail sections, and rearranging the divided plurality of detail sections, A method of encrypting data is provided, the method including generating index information corresponding to the arranged order, and transmitting the generated index information and the rearranged encrypted data to a storage device.

바람직하게는, 상기 데이터 암호화 방법은, 상기 저장 장치에 전송하는 단계 이후에, 검색하고자 하는 데이터에 대응하는 상기 인덱스 정보를 포함하는 검색 질의를 상기 저장 장치에 전송하는 단계와, 상기 저장 장치를 통해 상기 인덱스 정보에 따라 검색 및 추출된 상기 검출 데이터를 수신하는 단계와, 상기 수신된 검출 데이터를 복호화하여 출력하는 단계를 더 포함하는 데이터 암호화 방법이 제공된다.Preferably, the data encryption method, after the step of transmitting to the storage device, transmitting a search query including the index information corresponding to the data to be searched to the storage device, and through the storage device; A data encryption method is provided, further comprising: receiving the detection data searched and extracted according to the index information, and decoding and outputting the received detection data.

바람직하게는, 상기 인덱스 정보를 생성하는 단계는, 상기 분할된 다수의 세부 구간을 재배열한 결과에 따라 시작점 정보, 끝점 정보 및 재배열 정보를 포함하는 세부 구간 정보와, 암호화 데이터 종류, 인덱스 영역 및 인덱스값을 포함하는 상기 인덱스 정보가 사용자 정보에 대응하여 저장되는 데이터 암호화 방법이 제공된다.Preferably, the generating of the index information may include detailed section information including start point information, end point information, and rearrangement information, an encrypted data type, an index area, and the like according to a result of rearranging the plurality of divided subsections. A data encryption method is provided in which the index information including an index value is stored corresponding to user information.

바람직하게는, 상기 인덱스 정보를 생성하는 단계는, 상기 인덱스 정보를 생성할 경우 상기 다수의 세부 구간의 인덱스를 사용자 선택에 따른 인덱스 영역에 할당되는 데이터 암호화 방법이 제공된다.Preferably, the generating of the index information provides a data encryption method in which the indexes of the plurality of sub-sections are allocated to an index area according to a user selection when generating the index information.

바람직하게는, 상기 인덱스 정보를 생성하는 단계는, 상기 시작점 정보, 끝점 정보 및 인덱스 영역을 이용하여 순서가 보존되는 상기 인덱스 정보가 생성되는 데이터 암호화 방법이 제공된다.Preferably, the generating of the index information is provided with a data encryption method in which the index information is stored using the starting point information, the end point information, and the index area.

본 발명은, 개인, 기업, 공공 기관 등의 사용자가 외부 서버에 자신의 대용량 데이터베이스를 저장하는 경우에 발생할 수 있는 프라이버시 침해를 방지하기 위한 데이터베이스 암호화 및 암호화된 데이터베이스를 효율적으로 검색할 수 있도록 하는 인덱스 생성 방법에 관한 것으로, 데이터가 속해있는 전체 구간을 세부 구간으로 나누고, 세부 구간을 순서와 상관없이 임의로 재배치한 후, 각각의 세부 구간에 포함되어 있는 데이터에 대해 순서가 보존되는 인덱스 정보를 생성하여 데이터를 저장함으로써, 암호화된 데이터베이스에 대한 효율적인 검색이 가능할 뿐만 아니라 데이터베이스에 대한 프라이버시를 강화할 수 있다.The present invention provides an index for efficiently searching an encrypted database and a database encryption for preventing a privacy breach that may occur when a user, such as an individual, a company, or a public institution stores their large database on an external server. The method relates to the generation, by dividing the entire section to which the data belongs to the subdivision, arbitrarily rearranged the subdivisions irrespective of the order, and generates index information that preserves the order for the data contained in each subdivision By storing the data, not only can the efficient search for the encrypted database, but also the privacy of the database can be enhanced.

또한, 본 발명은 인덱스 정보에 따라 검출하고자 하는 일부 데이터만을 검출 및 수신하여 복호화 하면 되기 때문에 이용 효율성을 향상시킬 수 있고, 키워드 검색, 범위 검색, 정렬 등의 다양한 검색 기능을 추가로 제공할 수 있으며, 데이터베이스 암호화 및 암호 데이터 검색 수행을 위해 새로운 데이터베이스 시스템이 필요하지 않으며, 기존의 데이터베이스 시스템을 이용하여 구현이 가능한 시스템을 제공함으로써, 중요한 데이터베이스에 대한 프라이버시 침해를 막기 위한 실질적인 보안 기술을 제공할 수 있다.In addition, since the present invention only needs to detect, receive, and decode some data to be detected according to the index information, the use efficiency can be improved, and various search functions such as keyword search, range search, and sorting can be additionally provided. In addition, a new database system is not needed to perform database encryption and encryption data retrieval. By providing a system that can be implemented by using an existing database system, it is possible to provide a practical security technology to prevent a privacy breach of an important database. .

본 발명은, 데이터 저장 시스템에서 저장하고자 하는 데이터를 암호화하고, 암호화 데이터의 전체 구간을 다수의 세부 구간으로 분할하며, 이를 랜덤하게 재배열한 후, 재배열된 암호화 데이터에 대응하는 인덱스를 생성하고, 재배열된 암호화 데이터와 인덱스 정보를 함께 저장한 후에, 검색하고자 하는 데이터의 질의에 따라 해당 인덱스 정보에 대응하는 해당 데이터를 검색 및 추출하여 데이터 암호화 장치에 전송하며, 그 검출 데이터를 복화화하여 출력한다는 것이며, 이러한 기술적 수단을 통해 종래 기술에서의 문제점을 해결할 수 있다.The present invention encrypts the data to be stored in the data storage system, divides the entire section of the encrypted data into a plurality of detailed sections, randomly rearranges them, and generates an index corresponding to the rearranged encrypted data, After storing the rearranged encrypted data and the index information together, according to the query of the data to be searched, the corresponding data corresponding to the index information is searched and extracted and transmitted to the data encryption device, and the detected data is then duplicated and output. Through such technical means, problems in the prior art can be solved.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and methods for achieving them will be apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various forms, and only the embodiments of the present invention make the disclosure of the present invention complete and the general knowledge in the technical field to which the present invention belongs. It is provided to fully convey the scope of the invention to those skilled in the art, and the present invention is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.

본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be made based on the contents throughout the specification.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Combinations of each block of the accompanying block diagram and each step of the flowchart may be performed by computer program instructions. These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flow chart step of the block diagram. Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부 를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or step may represent a portion of a module, segment or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, the two blocks or steps shown in succession may in fact be executed substantially concurrently or the blocks or steps may sometimes be performed in the reverse order, depending on the functionality involved.

이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention;

도 1은 본 발명의 일 실시 예에 따라 암호화된 데이터에 대한 인덱스를 생성하여 암호화된 데이터를 저장하는데 적합한 데이터 저장 시스템의 블록 구성도로서, 데이터 암호화 장치(100), 통신망(200), 저장 장치(300) 등을 포함할 수 있다.1 is a block diagram of a data storage system suitable for generating an index for encrypted data and storing encrypted data according to an embodiment of the present invention. The data encryption apparatus 100, the communication network 200, and a storage device are shown in FIG. 300 and the like.

도 1을 참조하면, 데이터 암호화 장치(100)는 예를 들면, 대칭키 암호 방식 등으로 데이터를 암호화하는 것으로, 사용자로부터 데이터 저장 요청이 입력되면, 이에 따라 저장하고자 하는 데이터에 대응하는 비밀키를 생성하고, 예를 들면, 대칭키 암호 방식으로 해당 데이터를 암호화한다.Referring to FIG. 1, the data encryption apparatus 100 encrypts data using, for example, a symmetric key encryption method. When a data storage request is input from a user, the data encryption apparatus 100 accordingly stores a secret key corresponding to the data to be stored. Create and encrypt the data, for example, by symmetric key cryptography.

그리고, 데이터 암호화 장치(100)는 해당 데이터의 전체 구간을 다수의 세부 구간으로 분할한 후에, 예를 들면, 키드 해쉬(keyed hash) 함수 등을 이용하여 랜덤(random)하게 재배열하고, 재배열된 다수의 세부 구간의 순서에 대응하는 인덱스를 생성한다. 여기에서, 재배열된 다수의 세부 구간에 대응하는 세부 구간 정보(예를 들면, 시작점 정보, 끝점 정보, 재배열 정보 등)를 저장할 수 있으며, 생성된 인덱스에 대응하는 인덱스 정보(예를 들면, 암호화 데이터 종류, 인덱스 영역, 인 덱스값 등)를 함께 저장할 수 있다.The data encryption apparatus 100 divides the entire section of the data into a plurality of detailed sections, and then rearranges them randomly using a keyed hash function or the like, and rearranges them. The index corresponding to the order of the plurality of detailed intervals is generated. Here, detailed section information (for example, starting point information, endpoint information, rearrangement information, etc.) corresponding to the plurality of rearranged subsections may be stored, and index information (for example, corresponding to the generated index) may be stored. Encrypted data type, index area, index value, etc.) can be stored together.

또한, 데이터 암호화 장치(100)는 재배열된 암호화 데이터와 해당 인덱스 정보를 통신망(200)을 통해 저장 장치(300)에 전송한다.In addition, the data encryption apparatus 100 transmits the rearranged encrypted data and corresponding index information to the storage device 300 through the communication network 200.

이 후, 데이터 암호화 장치(100)는 사용자로부터 데이터 검색이 요청되면, 그에 대응하는 인덱스 정보를 포함하는 질의(query)를 통신망(200)을 통해 저장 장치(300)로 전송하고, 이에 따라 저장 장치(300)로부터 전송되는 검출 데이터를 암호화 방식에 대응하여 복호화한 후 출력한다.Thereafter, when a data search is requested from a user, the data encryption apparatus 100 transmits a query including index information corresponding thereto to the storage device 300 through the communication network 200, and accordingly, the storage device. Detected data transmitted from 300 is decrypted in correspondence with an encryption method and then output.

다음에, 통신망(200)은 예를 들면, 유선 통신망, 무선 통신망 등을 포함하는 것으로, 데이터 암호화 장치(100)와 저장 장치(300)간의 각종 데이터 통신 환경을 제공한다.Next, the communication network 200 includes, for example, a wired communication network, a wireless communication network, and the like, and provides various data communication environments between the data encryption apparatus 100 and the storage device 300.

한편, 저장 장치(300)는 데이터 암호화 장치(100)로부터 전송되는 재배열된 암호화 데이터와 인덱스 정보를 저장 관리하고, 데이터 암호화 장치(100)로부터 데이터 검색이 요청되면, 이와 함께 전송되는 인덱스 정보를 포함하는 질의에 따라 인덱스 정보에 대응하는 데이터를 검색 및 추출하여 그 검출 데이터를 데이터 암호화 장치(100)로 전송한다.Meanwhile, the storage device 300 stores and manages rearranged encrypted data and index information transmitted from the data encryption device 100, and, when a data search is requested from the data encryption device 100, the index information transmitted together with the index information. The data corresponding to the index information is searched and extracted according to the included query, and the detected data is transmitted to the data encryption apparatus 100.

따라서, 저장하고자 하는 데이터를 암호화한 후, 암호화 데이터의 전체 구간을 다수의 세부 구간으로 분할하고, 이를 랜덤하게 재배열하며, 재배열된 암호화 데이터에 대응하는 인덱스를 생성하고, 재배열된 암호화 데이터와 인덱스 정보를 함께 저장함으로써, 검색하고자 하는 데이터의 인덱스 정보에 따라 해당 데이터를 쉽게 검출하여 제공할 수 있다.Therefore, after encrypting the data to be stored, the entire section of the encrypted data is divided into a plurality of detailed sections, randomly rearranged, an index corresponding to the rearranged encrypted data is generated, and the rearranged encrypted data By storing the and index information together, the corresponding data can be easily detected and provided according to the index information of the data to be searched.

다음에, 상술한 바와 같은 구성을 갖는 데이터 저장 시스템에서 저장하고자 하는 데이터를 암호화하고, 암호화 데이터의 전체 구간을 다수의 세부 구간으로 분할하며, 이를 랜덤하게 재배열한 후, 재배열된 암호화 데이터에 대응하는 인덱스를 생성하여 저장 장치에 저장하도록 전송하고, 검색 질의를 전송하여 그에 대응하는 검출 데이터를 제공받아 복호화 및 출력하는 데이터 암호화 장치에 대해 설명한다.Next, in the data storage system having the above-described configuration, the data to be stored is encrypted, the entire section of the encrypted data is divided into a plurality of detailed sections, and randomly rearranged to correspond to the rearranged encrypted data. A data encryption apparatus for generating and transmitting an index to be stored in a storage device, transmitting a search query, receiving detection data corresponding thereto, and decrypting and outputting the index is described.

도 2는 본 발명의 일 실시 예에 따라 암호화된 데이터에 대한 인덱스를 생성하는데 적합한 데이터 암호화 장치의 블록 구성도로서, 데이터 암호화 장치(100)는 암호화부(102), 인덱스 생성부(104), 제 1 저장부(106) 등을 포함할 수 있다.2 is a block diagram of a data encryption apparatus suitable for generating an index for encrypted data according to an embodiment of the present invention. The data encryption apparatus 100 includes an encryption unit 102, an index generator 104, The first storage unit 106 and the like can be included.

도 2를 참조하면, 암호화부(102)는 예를 들면, 대칭키 암호 방식 등으로 데이터를 암호화하는 것으로, 사용자로부터 데이터 저장 요청이 입력되면, 이에 따라 저장하고자 하는 데이터에 대응하는 비밀키를 생성하고, 예를 들면, 대칭키 암호 방식으로 해당 데이터를 암호화한다.Referring to FIG. 2, the encryption unit 102 encrypts data using, for example, a symmetric key encryption method. When a data storage request is input from a user, the encryption unit 102 generates a secret key corresponding to the data to be stored. For example, the data is encrypted using a symmetric key encryption method.

또한, 암호화부(102)는 사용자로부터 데이터 검색이 요청되면, 그에 대응하는 인덱스 정보를 포함하는 질의를 통신망(200)을 통해 저장 장치(300)로 전송하고, 이에 따라 저장 장치(300)로부터 전송되는 검출 데이터를 암호화 방식(예를 들면, 대칭키 암호화 방식 등)에 대응되는 비밀키를 이용하여 복호화한 후 출력한다.In addition, when a data search is requested from a user, the encryption unit 102 transmits a query including index information corresponding to the storage device 300 to the storage device 300 through the communication network 200, and accordingly, the storage device 300. The detected data is decrypted using a secret key corresponding to an encryption method (for example, a symmetric key encryption method, etc.) and then output.

그리고, 인덱스 생성부(104)는 암호화 데이터의 전체 구간을 다수의 세부 구간으로 분할한 후에, 예를 들면, 키드 해쉬 함수 등을 이용하여 랜덤하게 재배열하고, 재배열된 다수의 세부 구간의 순서에 대응하는 인덱스를 생성한다. 여기에서, 재배열된 다수의 세부 구간에 대응하는 세부 구간 정보(예를 들면, 시작점 정보, 끝점 정보, 재배열 정보 등)를 제 1 저장부(106)에 저장할 수 있으며, 생성된 인덱스에 대응하는 인덱스 정보(예를 들면, 암호화 데이터 종류, 인덱스 영역, 인덱스값 등)를 함께 제 1 저장부(106)에 저장할 수 있다.The index generator 104 divides the entire section of the encrypted data into a plurality of subsections, and then randomly rearranges the data using a kid hash function, for example, and then reorders the plurality of subsections. Create an index corresponding to. Here, detailed section information (eg, start point information, end point information, rearrangement information, etc.) corresponding to the rearranged plurality of detailed sections may be stored in the first storage unit 106 and correspond to the generated indexes. Index information (eg, encrypted data type, index area, index value, etc.) may be stored together in the first storage unit 106.

이 때, 인덱스 생성부(104)는 암호화 데이터의 전체 구간을 분할할 경우 유사한 개수의 데이터를 포함하는 다수의 세부 구간으로 분할할 수 있고, 세부 구간 정보는 사용자 정보(예를 들면, ID, 패스워드 등)에 대응하는 비밀 정보로서 저장될 수 있으며, 인덱스를 생성하는 인덱스 영역을 사용자의 조작에 따라 다양하게 분할될 수 있다.At this time, the index generator 104 may divide the entire section of the encrypted data into a plurality of detailed sections including a similar number of data, the detailed section information is user information (eg, ID, password) Etc.), and may be variously divided according to a user's operation.

예를 들면, 인덱스 생성부(104)는 암호화된 데이터들의 전체 구간

Figure 112009072033064-PAT00001
를 다수의 세부 구간
Figure 112009072033064-PAT00002
로 분할할 수 있고, 전체 구간을 다수의 세부 구간으로 분할할 때 유사한 개수의 데이터를 포함하는 다수의 세부 구간으로 분할할 수 있다.For example, the index generator 104 may cover the entire section of the encrypted data.
Figure 112009072033064-PAT00001
Multiple subsections
Figure 112009072033064-PAT00002
When dividing the entire interval into a plurality of subdivisions, the subdivision may be divided into a plurality of subdivisions including a similar number of data.

또한, 인덱스 생성부(104)는 재배열된 암호화 데이터와 해당 인덱스 정보를 통신망(200)을 통해 저장 장치(300)에 전송한다.In addition, the index generator 104 transmits the rearranged encrypted data and the corresponding index information to the storage device 300 through the communication network 200.

한편, 제 1 저장부(106)는 데이터가 저장된 데이터베이스 등을 포함하는 것으로, 각종 데이터가 저장되어 있으며, 암호화된 데이터에 대응하는 비밀키, 암호화 알고리즘, 세부 구간 정보, 인덱스 정보 등이 저장되어 있고, 이들은 필요에 따라 추출 및 제공될 수 있다.Meanwhile, the first storage unit 106 includes a database in which data is stored, and various data are stored, and a secret key, an encryption algorithm, detailed interval information, index information, and the like corresponding to the encrypted data are stored. These can be extracted and provided as necessary.

따라서, 데이터 저장 시스템에서 저장하고자 하는 데이터를 암호화한 후, 암 호화 데이터의 전체 구간이 분할된 다수의 세부 구간을 재배열하며, 재배열된 암호화 데이터에 대응하는 인덱스를 생성하여 저장 장치에 저장하도록 전송하고, 검색 질의를 전송하여 그에 대응하는 검출 데이터를 제공받아 복호화 및 출력함으로써, 대용량 데이터를 효과적으로 저장할 수 있고, 이를 쉽게 검출 및 출력할 수 있다.Therefore, after encrypting the data to be stored in the data storage system, rearrange a plurality of detailed sections in which the entire sections of the encrypted data are divided, and generate an index corresponding to the rearranged encrypted data and store them in the storage device. By transmitting the search query, receiving the corresponding detection data, and decoding and outputting the search query, large data can be efficiently stored and easily detected and output.

다음에, 상술한 바와 같은 구성을 갖는 데이터 저장 시스템에서 데이터 암호화 장치로부터 전송되는 재배열된 암호화 데이터와 그 인덱스 정보를 함께 저장한 후, 데이터 검색 요청에 따라 해당 데이터를 검색 및 추출하고, 그 검출 데이터를 전송하는 저장 장치에 대해 설명한다.Next, in the data storage system having the above-described configuration, the rearranged encrypted data transmitted from the data encryption device and the index information are stored together, and then the corresponding data is retrieved and extracted according to the data retrieval request, and the detection is performed. A storage device for transmitting data will be described.

도 3은 본 발명의 일 실시 예에 따라 생성된 인덱스와 암호화된 데이터를 저장하는데 적합한 저장 장치의 블록 구성도로서, 저장 장치(300)는 관리 서버(302), 제 2 저장부(304) 등을 포함할 수 있다.3 is a block diagram of a storage device suitable for storing the generated index and encrypted data according to an embodiment of the present invention, the storage device 300 is a management server 302, the second storage unit 304, etc. It may include.

도 3을 참조하면, 관리 서버(302)는 데이터 암호화 장치(100)로부터 전송되는 재배열된 암호화 데이터와 인덱스 정보를 제 2 저장부(304)에 저장 관리하고, 데이터 암호화 장치(100)로부터 데이터 검색 요청에 따른 질의가 전송되면, 이와 함께 전송되는 인덱스 정보에 대응하는 데이터를 검색 및 추출한 후에, 그 검출 데이터를 데이터 암호화 장치(100)로 전송한다.Referring to FIG. 3, the management server 302 stores and manages rearranged encrypted data and index information transmitted from the data encryption device 100 in the second storage unit 304, and stores data from the data encryption device 100. When the query according to the search request is transmitted, after searching and extracting data corresponding to the index information transmitted with the search request, the detection data is transmitted to the data encryption apparatus 100.

한편, 제 2 저장부(304)는 데이터를 저장하는 데이터베이스 등을 포함하는 것으로, 관리 서버(302)로부터의 재배열된 암호화 데이터와 그 인덱스 정보를 함께 저장하고 있으며, 이들은 필요에 따라 추출되어 관리 서버(302)로 제공될 수 있다.On the other hand, the second storage unit 304 includes a database for storing data, and stores the rearranged encrypted data from the management server 302 and its index information together, which are extracted and managed as necessary. May be provided to the server 302.

따라서, 데이터 암호화 장치로부터 전송되는 재배열된 암호화 데이터와 그 인덱스 정보를 함께 저장한 후, 데이터 검색 요청에 따라 인덱스 정보에 대응하는 해당 데이터를 검색 및 추출하고, 그 검출 데이터를 전송함으로써, 저장하고자 하는 데이터를 효과적으로 저장 관리할 수 있고, 전송된 인덱스 정보에 따라 쉽게 해당 데이터를 추출 및 제공할 수 있다.Therefore, after storing the rearranged encrypted data transmitted from the data encryption device and the index information together, the corresponding data corresponding to the index information is retrieved and extracted according to the data retrieval request, and the detection data is transmitted. The data can be stored and managed effectively, and the data can be easily extracted and provided according to the transmitted index information.

다음에, 상술한 바와 같은 구성을 갖는 데이터 저장 시스템에서 저장하고자 하는 데이터를 암호화하고, 암호화 데이터의 전체 구간을 다수의 세부 구간으로 분할하며, 이를 랜덤하게 재배열한 후, 재배열된 암호화 데이터에 대응하는 인덱스를 생성하고, 재배열된 암호화 데이터와 인덱스 정보를 함께 저장하는 과정에 대해 설명한다.Next, in the data storage system having the above-described configuration, the data to be stored is encrypted, the entire section of the encrypted data is divided into a plurality of detailed sections, and randomly rearranged to correspond to the rearranged encrypted data. A process of creating an index and storing rearranged encrypted data and index information together will be described.

도 4는 본 발명의 다른 실시 예에 따라 암호화된 데이터에 대한 인덱스를 생성하여 암호화된 데이터를 저장하는 과정을 나타낸 플로우차트이다.4 is a flowchart illustrating a process of generating an index for encrypted data and storing encrypted data according to another embodiment of the present invention.

도 4를 참조하면, 데이터 저장 시스템의 대기 모드에서(단계402), 데이터 암호화 장치(100)의 암호화부(102)에서는 사용자로부터 데이터 저장이 요청되는지를 체크한다(단계404),Referring to FIG. 4, in the standby mode of the data storage system (step 402), the encryption unit 102 of the data encryption apparatus 100 checks whether data storage is requested from the user (step 404).

상기 단계(404)에서의 체크 결과, 데이터 저장이 요청되면, 데이터 암호화 장치(100)의 암호화부(102)에서는 저장하고자 하는 데이터에 대응하는 비밀키를 생성하고, 예를 들면, 대칭키 암호 방식으로 해당 데이터를 암호화한다(단계406).As a result of the check in step 404, when data storage is requested, the encryption unit 102 of the data encryption apparatus 100 generates a secret key corresponding to the data to be stored, for example, a symmetric key encryption method. The data is encrypted (step 406).

일 예로서, 도 5 및 도 6은 본 발명의 실시 예에 따라 암호화된 데이터를 저장하는 것을 설명하기 위한 도면으로, 도 5에 도시한 바와 같은 사용자 id와 월급을 나타내는 데이터베이스를 대칭키 암호화 방식으로 암호화할 경우, 도 6에 도시 한 바와 같은 암호화한 데이터베이스를 얻을 수 있다. 여기에서, 도 6에 도시한 바와 같은 Enc 열의 첫 번째 행 ' 1110110011100 …’는 비밀키 K를 갖는 대칭키 알고리즘인

Figure 112009072033064-PAT00003
의 값으로, 예를 들면,
Figure 112009072033064-PAT00004
로 나타낼 수 있다.As an example, Figures 5 and 6 are diagrams for explaining the storage of encrypted data according to an embodiment of the present invention, the database showing the user ID and salary as shown in Figure 5 in a symmetric key encryption method In the case of encryption, an encrypted database as shown in Fig. 6 can be obtained. Here, the first row of the column Enc as shown in Fig. 6'1110110011100... Is a symmetric key algorithm with secret key K
Figure 112009072033064-PAT00003
As a value of,
Figure 112009072033064-PAT00004
It can be represented as.

그리고, 데이터 암호화 장치(100)의 인덱스 생성부(104)에서는 암호화부(102)를 통해 암호화된 암호화 데이터의 전체 구간을 다수의 세부 구간으로 분할한다(단계408).The index generator 104 of the data encryption apparatus 100 divides the entire section of the encrypted data encrypted by the encryption unit 102 into a plurality of detailed sections (step 408).

일 예로서, 데이터들의 전체 구간

Figure 112009072033064-PAT00005
를 다수의 세부 구간
Figure 112009072033064-PAT00006
로 분할할 수 있는데, 도 5의 salary의 경우, salary 전체의 범위가
Figure 112009072033064-PAT00007
인 경우,
Figure 112009072033064-PAT00008
의 세 부분으로 나눌 수 있으며, 세부 구간 [30, 50)에는 34, 41, 44의 세 원소, 세부 구간 [50, 70)에는 51, 59, 65의 세 원소, 세부 구간 [70, 80]에는 73, 79의 두 원소가 포함된다.As an example, the entire interval of data
Figure 112009072033064-PAT00005
Multiple subsections
Figure 112009072033064-PAT00006
In the salary of FIG. 5, the entire salary range is
Figure 112009072033064-PAT00007
Quot;
Figure 112009072033064-PAT00008
It can be divided into three parts, with three elements of 34, 41, 44 in the detail section [30, 50), three elements of 51, 59, 65 in the detail section [50, 70), and three elements of the detail section [70, 80]. Includes two elements, 73 and 79.

또한, 인덱스 생성부(104)에서는 암호화 데이터의 전체 구간이 분할된 다수의 세부 구간별로 예를 들면, 키드 해쉬 함수 등을 이용하여 랜덤하게 재배열한다(단계410). 여기에서, 재배열된 다수의 세부 구간에 대응하는 세부 구간 정보(예를 들면, 시작점 정보, 끝점 정보, 재배열 정보 등)는 제 1 저장부(106)에 저장될 수 있다.In addition, the index generator 104 randomly rearranges the entire sections of the encrypted data for each of a plurality of detailed sections by using, for example, a kid hash function or the like (step 410). Here, detailed section information (eg, start point information, end point information, rearrangement information, etc.) corresponding to the rearranged plurality of detailed sections may be stored in the first storage unit 106.

일 예로서, 세부 구간 I1, I2, , Ik을 순서와 상관없이 랜덤하게 재배치할 수 있는데, 세부 구간의 시작 값에 키드 해쉬(keyed hash) 함수를 취한 값으로 예 를 들면, hk(30)=11100011 , hk(50)=011011 , hk(70)=1011011일 경우 세부 구간을 I2, I3, I1 의 순서로 재배치할 수 있다. 여기에서 hk( )는 비밀키 K를 가지는 키드 해쉬 함수를 의미한다. 이에 따라 비밀키 K를 모르면, 세부 구간의 재배치 정보에 대해 알 수 없기 때문에, 데이터 안전성을 향상시킬 수 있다.As an example, the subsections I 1 , I 2 ,, and I k may be rearranged randomly in any order. For example, h k may be a keyed hash function at a start value of the subsection. If (30) = 11100011, h k (50) = 011011, h k (70) = 1011011, the subsections can be rearranged in the order of I 2 , I 3 , and I 1 . Where h k () is the key hash function with the secret key K. Accordingly, if the secret key K is not known, the relocation information of the detailed section cannot be known, thereby improving data safety.

이러한 안전성을 위해 세부 구간 정보(예를 들면, 시작점 정보, 끝점 정보, 재배열 정보 등)는 비밀 값으로 유지될 수 있으며, 예를 들어 시작점 정보 및 끝점 정보인 30, 50, 70, 80과 재배열 정보 I2, I3, I1 는 비밀 값으로 유지될 수 있다.For this safety, the detailed section information (for example, start point information, end point information, rearrangement information, etc.) may be kept as a secret value, for example, the start point information and the end point information 30, 50, 70, 80, and the like. The array information I 2 , I 3 , and I 1 may be kept secret.

다음에, 인덱스 생성부(104)에서는 재배열된 다수의 세부 구간의 순서에 대응하는 인덱스를 생성한다(단계412). 여기에서, 생성된 인덱스에 대응하는 인덱스 정보(예를 들면, 암호화 데이터 종류, 인덱스 영역, 인덱스값 등)는 제 1 저장부(106)에 저장될 수 있으며, 암호화 데이터의 전체 구간을 분할할 경우 유사한 개수의 데이터를 포함하는 다수의 세부 구간으로 분할될 수 있고, 세부 구간 정보는 사용자 정보(예를 들면, ID, 패스워드 등)에 대응하는 비밀 정보(즉, 사용자 정보를 입력할 경우에만 열람 또는 획득할 수 있는 정보)로서 저장될 수 있으며, 인덱스를 생성하는 인덱스 영역을 사용자의 조작에 따라 다양하게 분할될 수 있다.Next, the index generator 104 generates an index corresponding to the order of the plurality of rearranged subdivisions (step 412). Here, index information (for example, encrypted data type, index area, index value, etc.) corresponding to the generated index may be stored in the first storage unit 106, and when dividing the entire section of the encrypted data. It may be divided into a plurality of detailed sections including a similar number of data, and the detailed section information may be viewed only when inputting secret information (i.e., user information) corresponding to user information (for example, ID, password, etc.). Information), and may be variously divided according to a user's operation.

일 예로서, 재배치된 세부 구간에 속해있는 데이터에 대해 순서를 보존하는 인덱스를 생성할 수 있는데, 이러한 인덱스 값은 사전에 정해 둔 인덱스 영역

Figure 112009072033064-PAT00009
내의 값으로 할당될 수 있다.As an example, an index that preserves the order of data belonging to the relocated detail interval may be created, and the index value may be a predetermined index area.
Figure 112009072033064-PAT00009
Can be assigned a value within.

만약, k 개의 세부 구간

Figure 112009072033064-PAT00010
에 대해 재배치된 세부 구간의 순서가 Ij1, Ij2, , Ijk, (j1, j2, , jk는 1, 2, , k 의 순열(permutation)로 간주할 수 있음)라고 하면, t 번째 세부 구간
Figure 112009072033064-PAT00011
에 속해 있는 x 에 대해 세부 구간
Figure 112009072033064-PAT00012
에 포함되도록 아래의 수학식 1과 같은 순서 보존 인덱스를 설정할 수 있다.If k detail intervals
Figure 112009072033064-PAT00010
If the order of the subarrays relocated for is I j1 , I j2 ,, I jk , (j 1 , j 2 ,, j k can be considered as permutations of 1, 2,, k), t detail interval
Figure 112009072033064-PAT00011
Interval for x belonging to
Figure 112009072033064-PAT00012
An order preservation index, such as Equation 1 below, may be set to be included in.

Figure 112009072033064-PAT00013
Figure 112009072033064-PAT00013

이러한 함수는 순서가 보존되는 함수이며,

Figure 112009072033064-PAT00014
에 대해,
Figure 112009072033064-PAT00015
를 만족할 수 있다.These functions are functions whose order is preserved.
Figure 112009072033064-PAT00014
About,
Figure 112009072033064-PAT00015
Can be satisfied.

예를 들어 도 5에 도시한 바와 같은 salary가 34, 79인 경우 이 값에 대한 인덱스를 영역 [0,1] = [0, 1/3)

Figure 112009072033064-PAT00016
[1/3, 2/3)
Figure 112009072033064-PAT00017
[2/3, 1]에 할당하면, 세부 구간
Figure 112009072033064-PAT00018
는 이전에 설명한 바와 같이
Figure 112009072033064-PAT00019
,
Figure 112009072033064-PAT00020
,
Figure 112009072033064-PAT00021
의 순서로 재배치될 수 있고, 34
Figure 112009072033064-PAT00022
= [30, 50), 79
Figure 112009072033064-PAT00023
= [70, 80]이기 때문에, 아래의 수학식 2와 같은 인덱스를 생성할 수 있다.For example, if the salary is 34, 79, as shown in FIG. 5, the index for this value is set to the range [0,1] = [0, 1/3).
Figure 112009072033064-PAT00016
(1/3, 2/3)
Figure 112009072033064-PAT00017
If you assign to [2/3, 1], the subsection
Figure 112009072033064-PAT00018
As previously explained
Figure 112009072033064-PAT00019
,
Figure 112009072033064-PAT00020
,
Figure 112009072033064-PAT00021
Can be rearranged in the order of 34
Figure 112009072033064-PAT00022
= (30, 50), 79
Figure 112009072033064-PAT00023
Since [70, 80], an index such as Equation 2 below can be generated.

Figure 112009072033064-PAT00024
Figure 112009072033064-PAT00024

여기에서, salary의 값은 34<79이지만,

Figure 112009072033064-PAT00025
>
Figure 112009072033064-PAT00026
임을 알 수 있는데, 각각의 세부 구간에 원소들은 순서가 보존되고 있으나, 다른 세부 구간에 있는 원소들 사이에는 순서가 보존되지 않음을 알 수 있다. 이것은 세부 구간을 어떻게 재배열하는지에 의존하며, 이를 통해 사용자 데이터의 프라이버시를 강화할 수 있다. 한편, 인덱스 영역을 [0,1] = [0, 1/3)
Figure 112009072033064-PAT00027
[1/3, 2/3)
Figure 112009072033064-PAT00028
[2/3, 1]로 할당하였으나, 사용자 선택에 따른 인덱스 영역에 할당할 수 있고, 필요에 따라 인덱스 영역을 임의로 분할할 수 있음은 물론이다.Here, the value of salary is 34 <79,
Figure 112009072033064-PAT00025
>
Figure 112009072033064-PAT00026
It can be seen that the order of the elements in each subsection is preserved, but the order is not preserved among the elements in the other subsections. This depends on how the rearrangement of the subdivisions can be done, thereby enhancing the privacy of the user data. Meanwhile, index area [0,1] = (0, 1/3)
Figure 112009072033064-PAT00027
(1/3, 2/3)
Figure 112009072033064-PAT00028
[2/3, 1], but it can be allocated to the index area according to the user's selection, and the index area can be arbitrarily divided as necessary.

다음에, 인덱스 생성부(104)에서는 재배열된 암호화 데이터와 해당 인덱스 정보를 통신망(200)을 통해 저장 장치(300)에 전송한다(단계414).Next, the index generator 104 transmits the rearranged encrypted data and the corresponding index information to the storage device 300 through the communication network 200 (step 414).

이어서, 저장 장치(300)에서는 데이터 암호화 장치(100)의 인덱스 생성부(104)로부터 전송되는 재배열된 암호화 데이터와 인덱스 정보를 저장 관리한다(단계416).Subsequently, the storage device 300 stores and manages rearranged encrypted data and index information transmitted from the index generator 104 of the data encryption device 100 (step 416).

따라서, 저장하고자 하는 데이터를 암호화한 후, 암호화 데이터의 전체 구간을 다수의 세부 구간으로 분할하고, 이를 랜덤하게 재배열하며, 재배열된 암호화 데이터에 대응하는 인덱스를 생성하고, 재배열된 암호화 데이터와 인덱스 정보를 함께 저장할 수 있다.Therefore, after encrypting the data to be stored, the entire section of the encrypted data is divided into a plurality of detailed sections, randomly rearranged, an index corresponding to the rearranged encrypted data is generated, and the rearranged encrypted data And index information can be stored together.

다음에, 상술한 바와 같이 재배열된 암호화 데이터와 그 인덱스 정보가 저장된 상태에서 검색하고자 하는 데이터의 질의에 따라 해당 인덱스 정보에 대응하는 해당 데이터를 검색 및 추출하여 데이터 암호화 장치에 전송하며, 그 검출 데이터를 복화화하여 출력하는 과정에 대해 설명한다.Next, according to the query of the data to be retrieved with the rearranged encrypted data and its index information stored as described above, the corresponding data corresponding to the index information is searched and extracted and transmitted to the data encryption apparatus, and the detection thereof. The process of demodulating and outputting data will be described.

도 7은 본 발명의 또 다른 실시 예에 따라 암호화된 데이터를 검색하여 출력하는 과정을 나타낸 플로우차트이다.7 is a flowchart illustrating a process of searching for and outputting encrypted data according to another embodiment of the present invention.

도 7을 참조하면, 데이터 저장 시스템의 대기 모드에서(단계702), 데이터 암호화 장치(100)의 암호화부(102)에서는 사용자로부터 데이터 검색이 요청되는지를 체크한다(단계704).Referring to FIG. 7, in the standby mode of the data storage system (step 702), the encryption unit 102 of the data encryption apparatus 100 checks whether a data search is requested from the user (step 704).

상기 단계(704)에서의 체크 결과, 데이터 검색이 요청되면, 데이터 암호화 장치(100)의 암호화부(102)에서는 검색 요청된 데이터에 대한 인덱스 정보를 포함하는 질의를 통신망(200)을 통해 저장 장치(300)로 전송하여 데이터 검색을 요청한다(단계706).As a result of the check in step 704, if a data search is requested, the encryption unit 102 of the data encryption apparatus 100 stores a query including the index information on the data requested to be searched through the communication network 200. In step 706, the server 300 requests a data retrieval by transmitting to 300.

일 예로서, 도 5에서 salary가 [40, 60]에 속해 있는 데이터를 검색하고자 할 경우 구간 [40, 60] = [40, 50)

Figure 112009072033064-PAT00029
[50, 60)이 되며, 세부 구간 정보로부터 [40, 50)
Figure 112009072033064-PAT00030
I _{1} = [30, 50), [50, 60)
Figure 112009072033064-PAT00031
I _{2} = [50, 70)임을 알 수 있고, 세부 구간 정보의 재배치 정보에 따라 세부 구간의 순서가
Figure 112009072033064-PAT00032
,
Figure 112009072033064-PAT00033
,
Figure 112009072033064-PAT00034
임을 알고 있기 때문에, 50, 59
Figure 112009072033064-PAT00035
Figure 112009072033064-PAT00036
, 40, 49
Figure 112009072033064-PAT00037
Figure 112009072033064-PAT00038
에 대한 아래의 수학식 3과 같은 인덱스 값을 계산할 수 있다.For example, in FIG. 5, when the salary is to search for data belonging to [40, 60], the interval [40, 60] = [40, 50)
Figure 112009072033064-PAT00029
(50, 60), and from the detailed section information (40, 50)
Figure 112009072033064-PAT00030
I _ {1} = (30, 50), (50, 60)
Figure 112009072033064-PAT00031
I _ {2} = (50, 70), and the order of the detailed sections is determined according to the relocation information of the detailed section information.
Figure 112009072033064-PAT00032
,
Figure 112009072033064-PAT00033
,
Figure 112009072033064-PAT00034
Because I know that, 50, 59
Figure 112009072033064-PAT00035
Figure 112009072033064-PAT00036
, 40, 49
Figure 112009072033064-PAT00037
Figure 112009072033064-PAT00038
An index value may be calculated as in Equation 3 below.

Figure 112009072033064-PAT00039
Figure 112009072033064-PAT00039

상술한 바와 같은 방식으로 산출된 인덱스값에 따른 인덱스 정보, 예를 들면, (salary:0

Figure 112009072033064-PAT00040
Indsalary
Figure 112009072033064-PAT00041
3/20 or 5/6
Figure 112009072033064-PAT00042
Indsalary
Figure 112009072033064-PAT00043
59/60)를 포함하는 질의를 서버에 전송할 수 있다. 여기에서, Indsalary는 도 6에 도시한 바와 같은 salary의 인덱스를 의미한다.Index information according to the index value calculated in the manner as described above, for example, (salary: 0
Figure 112009072033064-PAT00040
Indsalary
Figure 112009072033064-PAT00041
3/20 or 5/6
Figure 112009072033064-PAT00042
Indsalary
Figure 112009072033064-PAT00043
59/60) can be sent to the server. Here, Indsalary means the index of salary as shown in FIG.

그리고, 저장 장치(300)에서는 데이터 암호화 장치(100)로부터 데이터 검색 요청에 따른 질의가 전송되면, 이와 함께 전송되는 인덱스 정보에 대응하는 데이터를 검색 및 추출한다(단계708).When the query according to the data search request is transmitted from the data encryption apparatus 100, the storage device 300 searches for and extracts data corresponding to the index information transmitted together (step 708).

일 예로서, 데이터 암화화 장치(100)로부터 인덱스 정보인 ( salary : 0

Figure 112009072033064-PAT00044
Indsalary
Figure 112009072033064-PAT00045
3/20 or 5/6
Figure 112009072033064-PAT00046
Indsalary
Figure 112009072033064-PAT00047
59/60 )를 포함하는 질의가 수신되면, 저장 장치(300)에서는 도 6에 도시한 바와 같은 Indsalary가 전송된 인덱스 정보를 만족하는 1, 5, 7, 8번째 행의 데이터를 검색 및 추출할 수 있다.As an example, index information (salary: 0) from the data encryption apparatus 100 may be used.
Figure 112009072033064-PAT00044
Indsalary
Figure 112009072033064-PAT00045
3/20 or 5/6
Figure 112009072033064-PAT00046
Indsalary
Figure 112009072033064-PAT00047
59/60), the storage device 300 searches and extracts data of the first, fifth, seventh and eighth rows that satisfy the index information transmitted by the indsalary as shown in FIG. Can be.

또한, 저장 장치(300)에서는 검색 및 추출된 검출 데이터를 통신망(200)을 통해 데이터 암호화 장치(100)로 전송한다(단계710). 즉, 검색 및 추출된 1, 5, 7, 8번째 행의 검출 데이터를 데이터 암호화 장치(100)에 전송할 수 있다.In addition, the storage device 300 transmits the detected and extracted detection data to the data encryption device 100 through the communication network 200 (step 710). That is, the detected data of the first, fifth, seventh and eighth rows retrieved and extracted may be transmitted to the data encryption apparatus 100.

다음에, 데이터 암호화 장치(100)에서는 저장 장치(300)로부터 전송되는 검출 데이터를 암호화 방식(예를 들면, 대칭키 암호화 방식 등)에 대응되는 비밀키를 이용하여 복호화한 후 출력한다(단계(712).Next, the data encryption apparatus 100 decrypts and outputs the detected data transmitted from the storage device 300 using a secret key corresponding to an encryption scheme (for example, a symmetric key encryption scheme, etc.) (step ( 712).

따라서, 검색하고자 하는 데이터의 질의에 따라 해당 인덱스 정보에 대응하는 해당 데이터를 검색 및 추출하여 데이터 암호화 장치에 전송함으로써, 검색하고자 하는 데이터를 쉽게 검출하여 출력할 수 있다.Accordingly, by searching for, extracting, and transmitting the corresponding data corresponding to the index information according to the query of the data to be searched, the data to be searched can be easily detected and outputted.

이상의 설명에서는 본 발명의 다양한 실시 예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.In the foregoing description, various embodiments of the present invention have been described and described. However, the present invention is not necessarily limited thereto, and a person having ordinary skill in the art to which the present invention pertains can make various changes without departing from the technical spirit of the present invention. It will be readily appreciated that branch substitutions, modifications and variations are possible.

도 1은 본 발명의 일 실시 예에 따라 암호화된 데이터에 대한 인덱스를 생성하여 암호화된 데이터를 저장하는데 적합한 데이터 저장 시스템의 블록 구성도,1 is a block diagram of a data storage system suitable for storing an encrypted data by generating an index for the encrypted data according to an embodiment of the present invention;

도 2는 본 발명의 일 실시 예에 따라 암호화된 데이터에 대한 인덱스를 생성하는데 적합한 데이터 암호화 장치의 블록 구성도,2 is a block diagram of a data encryption apparatus suitable for generating an index for encrypted data according to an embodiment of the present invention;

도 3은 본 발명의 일 실시 예에 따라 생성된 인덱스와 암호화된 데이터를 저장하는데 적합한 저장 장치의 블록 구성도,3 is a block diagram of a storage device suitable for storing an index and encrypted data generated according to an embodiment of the present invention;

도 4는 본 발명의 다른 실시 예에 따라 암호화된 데이터에 대한 인덱스를 생성하여 암호화된 데이터를 저장하는 과정을 나타낸 플로우차트.4 is a flowchart illustrating a process of generating an index for encrypted data and storing encrypted data according to another embodiment of the present invention.

도 5 및 도 6은 본 발명의 실시 예에 따라 암호화된 데이터를 저장하는 것을 설명하기 위한 도면,5 and 6 are diagrams for describing storing encrypted data according to an embodiment of the present invention;

도 7은 본 발명의 또 다른 실시 예에 따라 암호화된 데이터를 검색하여 출력하는 과정을 나타낸 플로우차트.7 is a flowchart illustrating a process of searching for and outputting encrypted data according to another embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100 : 데이터 암호화 장치 102 : 암호화부100: data encryption device 102: encryption unit

104 : 인덱스 생성부 106 : 제 1 저장부104: index generator 106: first storage unit

200 : 통신망 300 : 저장 장치200: communication network 300: storage device

302 : 관리 서버 304 : 제 2 저장부302: management server 304: second storage unit

Claims (10)

저장하고자 하는 데이터를 암호화하는 암호화부와,An encryption unit for encrypting data to be stored; 상기 암호화된 데이터의 전체 구간을 다수의 세부 구간으로 분할하고, 상기 분할된 다수의 세부 구간을 재배열한 후에, 재배열된 순서에 대응하는 인덱스 정보를 생성하며, 상기 생성된 인덱스 정보와 재배열된 상기 암호화된 데이터를 저장하도록 저장 장치에 전송하는 인덱스 생성부를 포함하는After dividing the entire section of the encrypted data into a plurality of subdivisions, rearranging the divided plurality of subdivisions, index information corresponding to the rearranged order is generated, and rearranged with the generated index information. An index generator for transmitting the encrypted data to a storage device; 데이터 암호화 장치.Data encryption device. 제 1 항에 있어서,The method of claim 1, 상기 암호화부는, 검색하고자 하는 데이터에 대응하는 상기 인덱스 정보를 포함하는 검색 질의를 상기 저장 장치에 전송하고, 상기 저장 장치를 통해 상기 인덱스 정보에 따라 검색 및 추출된 검출 데이터를 수신 및 복호화하여 출력하는The encryption unit transmits a search query including the index information corresponding to the data to be searched to the storage device, and receives, decrypts, and outputs detection data searched and extracted according to the index information through the storage device. 데이터 암호화 장치.Data encryption device. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 인덱스 생성부는, 상기 분할된 다수의 세부 구간을 재배열한 결과에 따라 시작점 정보, 끝점 정보 및 재배열 정보를 포함하는 세부 구간 정보와, 암호화 데이터 종류, 인덱스 영역 및 인덱스값을 포함하는 상기 인덱스 정보를 사용자 정보에 대응하여 저장하는The index generation unit may include detailed section information including start point information, end point information, and rearrangement information, and the index information including an encrypted data type, an index region, and an index value according to a result of rearranging the divided plurality of detailed sections. To store in response to user information 데이터 암호화 장치.Data encryption device. 제 3 항에 있어서,The method of claim 3, wherein 상기 인덱스 생성부는, 상기 인덱스 정보를 생성할 경우 상기 다수의 세부 구간의 인덱스를 사용자 선택에 따른 인덱스 영역에 할당하는The index generator, when generating the index information, allocates the index of the plurality of detailed sections to an index area according to a user selection. 데이터 암호화 장치.Data encryption device. 제 3 항에 있어서,The method of claim 3, wherein 상기 인덱스 생성부는, 상기 시작점 정보, 끝점 정보 및 인덱스 영역을 이용하여 순서가 보존되는 상기 인덱스 정보를 생성하는The index generator generates the index information whose order is preserved using the start point information, the end point information, and the index area. 데이터 암호화 장치.Data encryption device. 저장하고자 하는 데이터를 암호화하는 단계와,Encrypting the data to be stored; 상기 암호화된 데이터의 전체 구간을 다수의 세부 구간으로 분할하는 단계와,Dividing the entire section of the encrypted data into a plurality of detailed sections; 상기 분할된 다수의 세부 구간을 재배열한 후에, 재배열된 순서에 대응하는 인덱스 정보를 생성하는 단계와,Generating rearranged index information corresponding to the rearranged order; 상기 생성된 인덱스 정보와 재배열된 상기 암호화된 데이터를 저장하도록 저장 장치에 전송하는 단계를 포함하는Transmitting the generated index information and the rearranged encrypted data to a storage device; 데이터 암호화 방법.Data encryption method. 제 6 항에 있어서,The method of claim 6, 상기 데이터 암호화 방법은,The data encryption method, 상기 저장 장치에 전송하는 단계 이후에, 검색하고자 하는 데이터에 대응하는 상기 인덱스 정보를 포함하는 검색 질의를 상기 저장 장치에 전송하는 단계와,After the step of transmitting to the storage device, transmitting a search query including the index information corresponding to the data to be searched to the storage device; 상기 저장 장치를 통해 상기 인덱스 정보에 따라 검색 및 추출된 상기 검출 데이터를 수신하는 단계와,Receiving the detection data searched and extracted according to the index information through the storage device; 상기 수신된 검출 데이터를 복호화하여 출력하는 단계를 더 포함하는And decoding and outputting the received detection data. 데이터 암호화 방법.Data encryption method. 제 6 항 또는 제 7 항에 있어서,8. The method according to claim 6 or 7, 상기 인덱스 정보를 생성하는 단계는, 상기 분할된 다수의 세부 구간을 재배열한 결과에 따라 시작점 정보, 끝점 정보 및 재배열 정보를 포함하는 세부 구간 정보와, 암호화 데이터 종류, 인덱스 영역 및 인덱스값을 포함하는 상기 인덱스 정보가 사용자 정보에 대응하여 저장되는The generating of the index information may include detailed section information including start point information, end point information, and rearrangement information, an encrypted data type, an index region, and an index value according to a result of rearranging the plurality of divided detail sections. The index information is stored corresponding to the user information 데이터 암호화 방법.Data encryption method. 제 8 항에 있어서,The method of claim 8, 상기 인덱스 정보를 생성하는 단계는, 상기 인덱스 정보를 생성할 경우 상기 다수의 세부 구간의 인덱스를 사용자 선택에 따른 인덱스 영역에 할당되는The generating of the index information may include assigning indexes of the plurality of sub-sections to an index area according to user selection when generating the index information. 데이터 암호화 방법.Data encryption method. 제 8 항에 있어서,The method of claim 8, 상기 인덱스 정보를 생성하는 단계는, 상기 시작점 정보, 끝점 정보 및 인덱스 영역을 이용하여 순서가 보존되는 상기 인덱스 정보가 생성되는The generating of the index information may include generating the index information whose order is preserved using the start point information, the end point information, and the index area. 데이터 암호화 방법.Data encryption method.
KR1020090113740A 2009-11-24 2009-11-24 Data encryption apparatus and its method KR20110057369A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090113740A KR20110057369A (en) 2009-11-24 2009-11-24 Data encryption apparatus and its method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090113740A KR20110057369A (en) 2009-11-24 2009-11-24 Data encryption apparatus and its method

Publications (1)

Publication Number Publication Date
KR20110057369A true KR20110057369A (en) 2011-06-01

Family

ID=44393014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090113740A KR20110057369A (en) 2009-11-24 2009-11-24 Data encryption apparatus and its method

Country Status (1)

Country Link
KR (1) KR20110057369A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140011534A (en) * 2012-06-29 2014-01-29 펜타시큐리티시스템 주식회사 Generating and verifying the alternative data in a specified format
KR20180082671A (en) * 2017-01-09 2018-07-19 순천향대학교 산학협력단 Apparatus and method for data encryption and decryption of web storage
CN114338208A (en) * 2021-12-31 2022-04-12 章鱼博士智能技术(上海)有限公司 Message data encryption method and device and electronic equipment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140011534A (en) * 2012-06-29 2014-01-29 펜타시큐리티시스템 주식회사 Generating and verifying the alternative data in a specified format
KR20180082671A (en) * 2017-01-09 2018-07-19 순천향대학교 산학협력단 Apparatus and method for data encryption and decryption of web storage
CN114338208A (en) * 2021-12-31 2022-04-12 章鱼博士智能技术(上海)有限公司 Message data encryption method and device and electronic equipment
CN114338208B (en) * 2021-12-31 2023-11-28 章鱼博士智能技术(上海)有限公司 Message data encryption method and device and electronic equipment

Similar Documents

Publication Publication Date Title
US9275250B2 (en) Searchable encryption processing system
JP5420085B2 (en) Data processing device and data storage device
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
KR101174058B1 (en) Method for saving and serching of encrypted data on database
US9021259B2 (en) Encrypted database system, client terminal, encrypted database server, natural joining method, and program
CN103049466B (en) A kind of text searching method based on distributed cryptograph storage and system
US20190340381A1 (en) Method and System for Search Pattern Oblivious Dynamic Symmetric Searchable Encryption
US10361840B2 (en) Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program
CN104052740A (en) Verifiable and searchable encryption method based on dictionary in cloud storage
KR20120068524A (en) Method and apparatus for providing data management
Khan et al. Secure ranked fuzzy multi-keyword search over outsourced encrypted cloud data
JP6961324B2 (en) Searchable cryptographic processing system
JP6632780B2 (en) Data processing device, data processing method, and data processing program
KR100936937B1 (en) Database encryption and query methods keeping order within bucket partially
WO2014141802A1 (en) Information processing device, information processing system, information processing method, and program
CN104794243B (en) Third party&#39;s cipher text retrieval method based on filename
KR20110057369A (en) Data encryption apparatus and its method
KR100910303B1 (en) Data encryption and decryption apparatus using variable code table and method thereof
KR101422759B1 (en) Secure method for data store and share in data outsourcing
KR101232385B1 (en) Searchable Symmetric Encryption Method and System
Jiang et al. A novel privacy preserving keyword search scheme over encrypted cloud data
KR100924796B1 (en) System and method of order-preserving symmetric encryption for numeric data using beta expansion
Pouliot et al. The strength of weak randomization: Efficiently searchable encryption with minimal leakage
Bedi et al. Analysis of different privacy preserving cloud storage frameworks
KR101095862B1 (en) Data encryption apparatus and method, data decoding apparatus, data searching method

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination