KR101095862B1 - Data encryption apparatus and method, data decoding apparatus, data searching method - Google Patents
Data encryption apparatus and method, data decoding apparatus, data searching method Download PDFInfo
- Publication number
- KR101095862B1 KR101095862B1 KR1020090023607A KR20090023607A KR101095862B1 KR 101095862 B1 KR101095862 B1 KR 101095862B1 KR 1020090023607 A KR1020090023607 A KR 1020090023607A KR 20090023607 A KR20090023607 A KR 20090023607A KR 101095862 B1 KR101095862 B1 KR 101095862B1
- Authority
- KR
- South Korea
- Prior art keywords
- section
- encryption
- range
- data
- character
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Abstract
본 발명은 데이터에 이용되는 단위 문자별로 치역 구간을 갖도록 [n, m] 도메인 구간을 구간 분할 방식으로 분할하는 매핑 함수를 이용하여 데이터를 암호화하고 검색 방법으로서, 이를 위하여 입력 데이터에 대한 암호화 값을 도메인 구간 내의 값을 이용하여 생성한 후 생성된 암호화 값과 입력 데이터의 문자 길이를 데이터베이스에 저장하고, 검색어가 입력됨에 따라 도메인 구간에서 검색어의 첫 번째 단위 문자에 대응되는 치역 구간을 검색한후 검색된 치역 구간을 단위 문자별로 구간을 갖도록 구간 분할 방식으로 분할한 후 검색어의 다음 문자에 대한 치역 구간을 검색된 치역 구간에서 검색하는 방식으로 검색어의 최종 문자에 대한 치역 구간을 검색하며, 데이터베이스에 저장된 암호화 값들 중 검색된 검색어의 최종 문자에 대한 치역 구간에 대응되는 값을 검색한다.The present invention encrypts data by using a mapping function that divides [n, m] domain sections by a segmentation scheme to have a range section for each unit character used in the data. After generating using the value in the domain section, the generated encryption value and the character length of the input data are stored in the database, and as the search word is input, the range section corresponding to the first unit character of the search term is searched in the domain section. By dividing the range section by the section division method to have the section for each unit letter, search for the range section for the last character of the search term by searching the range section for the next character of the search term in the searched range section, and encrypt values stored in the database. In the range section for the last character of the search term Search for the value Yes.
이와 같이, 본 발명은 데이터베이스 시스템에 적용되어 고객 정보를 데이터베이스에 저장하고 검색할 때, 저장된 데이터에 대한 안전성은 물론, 데이터 검색 (일치검색, 범위검색, COUNT 등) 시에도 효율적으로 검색결과를 제공할 수 있는 효과가 있다.In this way, the present invention is applied to a database system when storing and retrieving customer information in the database, as well as the safety of the stored data, as well as provide efficient search results when searching data (matching search, range search, COUNT, etc.) It can work.
암호화, 일치 검색, 버킷, 변환 Encryption, exact match, bucket, conversion
Description
본 발명은 데이터베이스에 저장된 고객 정보나 개인정보 등의 중요 데이터를 안전하게 암호화하여 저장하고, 효율적으로 검색하기 위한 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for securely encrypting and storing important data such as customer information and personal information stored in a database, and searching efficiently.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발 사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2008-S-006-01, 과제명: 유무선 환경의 개방형 IPTV(IPTV 2.0) 기술개발].The present invention is derived from a study conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy and the Ministry of Information and Telecommunication Research and Development. [Task management number: 2008-S-006-01, Task name: Open IPTV in wired and wireless environment] 2.0) Technology Development].
일반적으로 주민번호, 계좌번호 등의 고객정보를 보호하기 위하여 데이터베이스에 저장할 때, DES, AES등의 대칭키 표준 암호알고리즘이나 공개키 암호알고리즘을 적용하였다. 여기서, 대칭키 암호알고리즘은 공개키 암호알고리즘과 비교하여 연산속도가 빠르기 때문에 검색 성능을 중요시 하는 데이터베이스에서는 일반적으 로 대칭키 암호알고리즘을 사용한다.In general, symmetric key standard encryption algorithms such as DES and AES or public key cryptography algorithms are applied when storing in the database to protect customer information such as social security number and account number. In this case, the symmetric key cryptographic algorithm is faster than the public key cryptographic algorithm. Therefore, the symmetric key cryptographic algorithm is generally used in the database where search performance is important.
그러나, 이와 같은 종래의 방법으로는 암호화하여 저장한 데이터에 대하여, 검색할 때에 성능저하의 문제점이 있다. 그 이유는 데이터베이스의 특정 테이블을 구성하는 하나의 컬럼에 저장되는 암호문들의 순서와 암호화하기 전의 평문들의 순서가 다르기 때문에, 데이터베이스시스템(DBMS)에서 제공하는 인덱싱에 의한 검색속도 최적화를 활용할 수 없기 때문이다. 즉, 컬럼을 구성하는 데이터의 평문과 암호문의 순서가 다르기 때문에 인덱스를 구성하는 데이터가 다르며, 특히 범위검색의 경우에는 사용자가 요청하는 검색문에 대하여 암호화한 데이터를 모두 복호화한 후에 차례대로 검색을 수행해야 한다. However, such a conventional method has a problem of deterioration in performance when searching for encrypted data. The reason is that because the order of cipher texts stored in one column of a specific table of the database is different from the order of plain text before encryption, the search speed optimization by indexing provided by the DBMS cannot be utilized. . In other words, because the order of the plain text and cipher text of the data constituting the column is different, the data constituting the index is different. Especially in the range search, the search is sequentially performed after decrypting all the encrypted data for the search statement requested by the user. Should be done.
따라서, 이와 같이 표준 암호알고리즘을 이용하여 저장한 데이터를 검색할 때의 속도는, 평문을 그대로 저장하고 검색하는 속도와 비교하여 상당한 속도저하를 초래하게 된다.Therefore, the speed of retrieving the stored data using the standard encryption algorithm in this way causes a significant speed reduction compared to the speed of storing and retrieving the plain text as it is.
상기와 같은 문제점 해결하고자 제안된 하나의 종래의 기술로서 버킷기반 인덱스 방법이 있다.One conventional technique proposed to solve the above problem is a bucket-based index method.
종래의 버킷 기반 인덱스 방법은 도 7에 도시된 바와 같이 원래의 평문 테이블에 대해 버킷 기반 인덱스 방법을 적용함으로써, 암호화 테이블을 얻을 수 있다.In the conventional bucket-based index method, as shown in FIG. 7, the encryption table may be obtained by applying the bucket-based index method to the original plain text table.
도 7의 암호화 테이블에서 Etuple 컬럼은 원래의 5개의 컬럼을 합하여(concatenate) 공개된 암호알고리즘(AES, DES 등)으로 암호화하고, 컬럼별로 버킷 기반 인덱스 방법으로 암호화하여 저장하는 구조이다. Salary 컬럼의 경우에는 10과 20사이는 λ를 할당하고, 20과 30사이의 값은 ρ를 할당하였다. In the encryption table of FIG. 7, the Etuple column is a structure in which original five columns are concatenated and encrypted using a public encryption algorithm (AES, DES, etc.), and each column is encrypted and stored in a bucket-based index method. In the case of Salary columns, λ is assigned between 10 and 20, and ρ is assigned between 20 and 30.
만일, Salary가 15보다 크고, 25보다 작은 값을 검색하고자 할 때, 우선, 15와 25가 각각 λ, ρ에 해당하기 때문에, λ와 ρ에 해당하는 모든 값을 가져온 다음, Etuple의 값을 복호화하여 Salary가 λ와 ρ에 해당하는 평문을 모두 볼 수 있다.If Salary is greater than 15 and less than 25, first of all, since 15 and 25 correspond to λ and ρ, we get all the values of λ and ρ, and then decode the value of Etuple. So you can see all the plain text Salary corresponds to λ and ρ.
이 방법은 원래의 테이블을 구성하는 전체 행을 기존 암호알고리즘으로 암호화를 수행하고, 인덱스로 사용할 컬럼의 데이터에 대하여 버킷팅을 수행한다. 이때 버킷 범위 내의 데이터는 모두 동일한 버킷번호를 할당받게 되며, 이 값을 인덱스정보로 이용하게 된다. 따라서, 이 경우 일치검색에 있어서 정확하게 일치하는 평문값을 알기 위해서는 검색값이 포함된 버킷을 가져와서 모두 복호화한 후 비교하는 추가 필터링이 필요하며, 범위검색을 적용할 때에도 해당결과를 포함하는 버킷을 모두 가져와서, 버킷내의 암호화된 값을 모두 복호화하는 필터링 과정이 필요하다.This method encrypts the entire row constituting the original table with the existing encryption algorithm and buckets the data of the column to be used as an index. At this time, all data in the bucket range are assigned the same bucket number, and this value is used as index information. Therefore, in this case, in order to know the exact match value in exact match, additional filtering is required to take the bucket containing the search value, decrypt it, and compare it. You need a filtering process that takes all of them and decrypts all the encrypted values in the bucket.
다시 말해서, 종래의 기술인 버킷팅의 경우에는 평문이 주어졌을 때, 특정버킷으로 할당하여 버킷정보(버킷 ID)만 이용하였다. 즉, 동일한 버킷을 할당 받은 서로 다른 평문의 버킷정보는 동일하다.In other words, in the case of conventional bucketing, when plain text is given, only bucket information (bucket ID) is used by assigning to a specific bucket. That is, bucket information of different plain texts assigned the same bucket is the same.
종래의 버킷 기반 인덱스 방법은 정확한 값을 얻기 위해서 버킷 ID가 동일한 암호화값을 모두 복호화 한 다음에 알 수 있기 때문에 실제로 일치검색과 범위검색 을 지원한다고 볼 수 없을 뿐만 아니라, 검색식과 일치하는 값 이외의 정보도 복호화해야 하기 때문에 추가적인 정보가 노출될 수 있는 안전성의 문제도 유발 시킬 수 있다. Conventional bucket-based indexing method does not support exact match and range search because it knows after decrypting all encrypted values with same bucket ID in order to get accurate value. Since the information must also be decoded, it can also cause safety issues that can expose additional information.
종래의 버킷 기반 인덱스 방법은 단순히 버킷 ID만을 이용하기 때문에 추가 필터링 작업으로 인한 검색 속도 저하는 물론, 불필요한 평문 정보를 노출시킴으로써 보안성의 취약성 문제를 유발하게 되는 문제점이 있다.In the conventional bucket-based indexing method, since only the bucket ID is used, there is a problem that the security speed problem is caused by exposing unnecessary plain text information as well as the search speed due to additional filtering.
본 발명은 숫자는 물론 문자에 대해서도 매핑 과정과 변환 과정을 적용하여 암호화시킴으로서, 데이터베이스 내 테이블의 컬럼을 구성하여 데이터를 안전하게 암호화하여 저장하고, 일치 및 범위 검색을 효율적으로 수행할 수 있다.The present invention encrypts by applying a mapping process and a conversion process for not only numbers but also characters, so that data columns can be safely encrypted and stored, and match and range search can be efficiently performed.
본 발명에 따른 데이터 암호화 장치는, 데이터에 이용되는 단위 문자별로 치역 구간을 갖도록 기 설정된 도메인 구간을 구간 분할 방식으로 분할하는 매핑 함수를 이용하여 데이터 암호화 방법으로서, 암호화 요청 데이터가 입력됨에 따라 상기 도메인 구간에서 상기 암호화 요청 데이터의 첫 번째 문자에 대응되는 치역 구간을 검색하는 단계와, 상기 검색된 치역 구간을 상기 구간 분할 방식으로 분할한 후 상기 분할된 치역 구간에서 상기 암호화 요청 데이터의 두 번째 문자에 대한 치역 구간을 검색하는 방식으로 상기 암호화 요청 데이터의 최종 문자에 대한 치역 구간을 검색하여 상기 암호 요청 데이터의 암호화 값을 생성하는 단계와, 상기 생성된 암호화 값과 상기 암호화 요청 데이터의 문자 길이를 암호화하여 데이터베이스에 저장하는 단계를 포함한다.The data encryption apparatus according to the present invention is a data encryption method using a mapping function for dividing a domain section set to have a gamut section for each unit character used in the data in a section division method. Retrieving a gamut section corresponding to the first character of the encryption request data in a section; dividing the searched gamut section by the section division method; and then searching for a second character of the encryption request data in the divided range section. Generating an encryption value of the encryption request data by searching for a region of the last character of the encryption request data in a manner of searching for a region of the encryption section, and encrypting the generated encryption value and the character length of the encryption request data. To store in the database Include.
본 발명에 따른 데이터 복호화 장치는, 데이터에 이용되는 단위 문자별로 치역 구간을 갖도록 기 설정된 도메인 구간을 구간 분할 방식으로 분할하여 상기 단위 문자 각각에 치역 구간을 매핑하는 매핑부와, 암호화 값과 문자 길이를 입력받으며, 상기 도메인 구간에서 상기 암호화 값이 속하는 치역 구간을 검색한 후 상기 검색된 치역 구간에 매핑된 문자를 추출하고, 상기 검색된 치역 구간을 상기 구간 분할 방식으로 재분할하며, 상기 재분할된 치역 구간에서 상기 암호화 값이 포함된 치역 구간에 매핑된 문자를 추출하는 방법으로 상기 문자 길이와 상기 암호화 값에 대응되는 최종 데이터를 추출하는 복호화부를 포함한다.In accordance with another aspect of the present invention, a data decoding apparatus includes: a mapping unit configured to divide a domain section set to have a range section for each unit character used for data by a section partitioning method, and to map the range section to each of the unit characters, and an encryption value and a character length. In response to receiving a search, the domain section to which the encryption value belongs in the domain section, and extracts the character mapped to the searched section, re-dividing the searched section in the segmentation scheme, in the redivided section And a decryption unit which extracts the final data corresponding to the character length and the encryption value by extracting a character mapped to the region including the encryption value.
본 발명에 따른 데이터 암호화 방법은, 데이터에 이용되는 단위 문자별로 치역 구간을 갖도록 기 설정된 도메인 구간을 구간 분할 방식으로 분할하는 매핑 함수를 이용하여 데이터 암호화 방법으로서, 암호화 요청 데이터가 입력됨에 따라 상기 도메인 구간에서 상기 암호화 요청 데이터의 첫 번째 문자에 대응되는 치역 구간을 검색하는 단계와, 상기 검색된 치역 구간을 상기 구간 분할 방식으로 분할한 후 상기 분할된 치역 구간에서 상기 암호화 요청 데이터의 두 번째 문자에 대한 치역 구간을 검색하는 방식으로 상기 암호화 요청 데이터의 최종 문자에 대한 치역 구간을 검색하여 상기 암호 요청 데이터의 암호화 값을 생성하는 단계와, 상기 생성된 암호화 값과 상기 암호화 요청 데이터의 문자 길이를 암호화하여 데이터베이스에 저장하는 단계를 포함한다.The data encryption method according to the present invention is a data encryption method using a mapping function for dividing a domain section set to have a gamut section for each unit character used for the data in a section division method. Retrieving a gamut section corresponding to the first character of the encryption request data in a section; dividing the searched gamut section by the section division method; and then searching for a second character of the encryption request data in the divided range section. Generating an encryption value of the encryption request data by searching for a region of the last character of the encryption request data in a manner of searching for a region of the encryption section, and encrypting the generated encryption value and the character length of the encryption request data. To store in the database Include.
본 발명에 따른 데이터 검색 방법은,데이터에 이용되는 단위 문자별로 치역 구간을 갖도록 기 설정된 도메인 구간을 구간 분할 방식으로 분할하는 매핑 함수를 이용하여 데이터 검색 방법으로서, 입력 데이터에 대한 암호화 값을 상기 도메인 구간 내의 값을 이용하여 생성한 후 상기 생성된 암호화 값과 상기 입력 데이터의 문자 길이를 데이터베이스에 저장하는 단계와, 상기 데이터베이스의 검색을 위한 검색어를 입력받는 단계와, 상기 도메인 구간에서 상기 검색어의 첫 번째 문자에 대응되는 치역 구간을 검색하는 단계와, 상기 검색된 치역 구간을 상기 구간 분할 방식으로 분할한 후 상기 검색어의 두 번째 문자에 대한 치역 구간을 상기 검색된 치역 구간에서 검색하는 방식으로 상기 검색어의 최종 문자에 대한 치역 구간을 검색하는 단계와, 상기 데이터베이스에서 상기 검색어의 최종 문자에 대한 치역 구간에 포함되는 암호화 값을 검색하는 단계 상기 검색어의 최종 문자에 대한 치역 구간에 대응되는 값을 검색하는 단계를 포함한다.The data retrieval method according to the present invention is a data retrieval method using a mapping function for dividing a domain section set to have a gamut section for each unit letter used in the data by an interval division method, wherein an encryption value for input data is converted into the domain. Generating the encrypted value and the character length of the input data in a database after receiving the generated value using a value within a section; receiving a search term for searching the database; Searching for a range of sections corresponding to a first letter, dividing the searched range of sections by the section division method, and then searching the range of sections for the second letter of the search word in the found range of sections; Searching for a range of characters for a character, From the database comprises the steps of searching for values corresponding to the station interval for the last character of the search step for searching the encryption values contained in the section station for the last character of the search term.
본 발명은 데이터베이스 시스템에 적용되어 고객 정보를 데이터베이스에 저장하고 검색할 때, 저장된 데이터에 대한 안전성은 물론, 데이터 검색 (일치검색, 범위검색, COUNT 등) 시에도 효율적으로 검색결과를 제공할 수 있는 효과가 있다.The present invention is applied to a database system when storing and retrieving customer information in the database, as well as the safety of the stored data, as well as can efficiently provide search results when searching data (matching search, range search, COUNT, etc.) It works.
또한. 본 발명은 기존의 데이터베이스 암호화 및 검색 방법과 비교하여 안전성과 검색의 효율성을 동시에 만족시킴으로써, 콘텐츠 서비스 공급자는 물론이고 데이터베이스 시스템을 사용하는 국가기관, ISP, 포털, 금융권 등에서 중요한 개인 정보를 보호하는 데 활용 될 수 있다.Also. The present invention satisfies the safety and the efficiency of the search compared to the existing database encryption and retrieval methods, thereby protecting important personal information not only in the content service provider but also in national institutions, ISPs, portals, financial institutions, etc. that use the database system. Can be utilized.
이하, 본 발명의 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 아울러 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In addition, in describing the present invention, when it is determined that the detailed description of the related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.
도 1은 본 발명의 실시 예에 따른 암호화 장치를 도시한 블록도로서, 매핑부(100), 변환부(120) 및 암호화부(140)를 포함한다.1 is a block diagram illustrating an encryption apparatus according to an exemplary embodiment of the present invention, which includes a
매핑부(100)는 소정의 구간 분할 방식으로 입력 데이터에 이용되는 단위 문자별로 치역 구간을 갖도록 [n, m] 도메인 구간을 분할한다. 즉, 매핑부(100)는 입력 데이터, 예를 들어 평문을 구성하는 문자, 숫자, 알파벳, 한글, 특수 문자 등이 도메인 구간 내의 치역 구간을 갖도록 매핑한다. 다시 말해서, 도 2a에 도시된 바와 같이, [0, 1]의 도메인 구간을 다수의 치역 구간으로 나눈 후 각 치역 구간에 단위 문자를 할당하여 매핑한다. 예를 들어, 단위 문자 'S'는 [0, 0.05]의 치역 구간을 갖고, 'Y'는 [0.5, 0.52]의 치역 구간을 갖으며, 'K'는 [0.9, 1]의 치역 구간을 갖는다. The
본 발명에서 입력 데이터로 이용되는 단위 문자는 숫자, 알파벳, 한글, 특수문자 등을 포함한다.In the present invention, the unit character used as input data includes numbers, alphabets, Korean characters, special characters, and the like.
변환부(120)는 단위 문자별로 각기 다른 치역 구간을 갖는 도메인 구간 [0, 1]에서 입력 데이터의 첫 번째 문자에 대응되는 치역 구간을 검색하고, 검색된 치역 구간을 단위 문자별로 치역 구간을 갖도록 하는 구간 분할 방식으로 재분할하고, 재분할된 치역 구간에서 입력 데이터의 두 번째 문자에 대한 치역 구간을 검색 하는 방식으로 입력 데이터의 최종 문자에 대한 치역 구간을 검색한 후 검색된 치역 구간을 암호화부(140)에 제공한다.The
암호화부(140)는 최종 문자에 대한 치역 구간과 입력 데이터의 문자 길이를 이용하여 입력 데이터를 암호화시키는데, 즉 최종 문자에 대한 치역 구간에서 랜덤하게 숫자를 선택하여 입력 데이터에 대한 암호화 값을 생성함과 더불어 문자 길이를 기 설정된 방식, 예컨대 AES, DES 방식으로 암호화한다.The
상기와 같은 암호화 과정에 대해 예를 들어 설명하면 아래와 같다.For example, the encryption process described above will be described below.
즉, 입력 데이터, 예컨대 평문 x를 구성하는 단위 숫자나 문자가 x1, x2, .....,xn이라고 할 때, 매핑 과정과 변환 과정을 거쳐 최종 암호화된 값 y가 생성된다는 것을 예를 들어 설명하면 아래와 같다. 여기서, x는 알파벳, 숫자 등을 이용하여 만들 수 있다.That is, when the unit number or character constituting the input data, for example, the plain text x is x1, x2, ....., xn, the final encrypted value y is generated through the mapping process and the conversion process. The explanation is as follows. Here, x may be created using alphabets and numbers.
입력 데이터를 SKY라고 할 때, 암호화된 값 y는 Ek(x), where x=(x1, x2, x3)=(SKY)이 된다.When the input data is called SKY, the encrypted value y becomes Ek (x), where x = (x1, x2, x3) = (SKY).
매핑부(100)는 도메인 구간이 [0, 1]이라고 하고 입력 데이터에 이용될 수 있는 단위 문자가의 수가 26가지라고 할 때, 도 2a에 도시된 바와 같이, 도메인 구간 [0, 1]을 26개 이상의 치역 구간을 갖도록 나누고, 각 단위 문자를 치역 구간에 각각 대응시킨다.When the
변환부(120)는 입력 데이터의 첫 번째 문자 'S'에 대한 치역 구간을 다수의 치역 구간을 갖는 도메인 구간에서 검색하는데, 즉 첫 번째 'S'에 대한 치역 구간 [0, 0.05]를 검색한다. 그런 다음, 변환부(120)는 검색된 치역 구간인 [0, 0.05] 를 도 2b에 도시된 바와 같이 단위 문자별로 서로 다른 치역 구간을 갖도록 하는 구간 분할 방식으로 재분할한 후 재분할된 치역 구간에서 입력 데이터의 두 번째 문자 'K'의 치역 구간인 [0.045, 0.05]를 검색하고, 검색된 두 번째 문자 'K'의 치역 구간을 구간 분할 방식으로 분할한 후 세 번째 문자 'Y'의 치역 구간인 [0.0475, 0.0476]을 검색한다. 이렇게 검색된 치역 구간, 즉 입력 데이터의 최종 문자에 대한 치역 구간은 입력 데이터와 더불어 암호화부(140)에 제공된다.The
암호화부(140)는 최종 문자에 대한 치역 구간인 [0.0475, 0.0476]에서 임의의 숫자를 랜덤하게 선택하고, 입력 데이터의 문자 길이를 소정의 암호화 방식, 예컨대 AES, DES 등의 방식으로 이용하여 암호화함으로써, 입력 데이터에 대한 암호화 값과 암호화된 문자 길이 값을 출력한다. 즉, 암호화부(140)는 최종 문자에 대한 치역 구간인 [0.0475, 0.0476]에 포함되는 숫자 "0.04759"와 입력 데이터의 문자 길이인 "3"을 암호화하여 출력한다. The
본 발명에서는 암호화부(140)가 문자 길이를 암호화하는 것으로 예를 들어 설명하였지만, 최종 문자에 대한 치역 구간인 [0.0475, 0.0476]내에 포함된 암호화 값과 문자 길이만을 출력할 수 있다.Although the
상기와 같은 암호화 과정을 알고리즘으로 표현하면, 도 3에 도시된 바와 같다. When the above encryption process is represented by an algorithm, it is as shown in FIG.
도 4는 본 발명에 따른 복호화 장치를 도시한 블록도로서, 매핑부(400), 복호화부(410)를 포함한다.4 is a block diagram illustrating a decoding apparatus according to the present invention, and includes a
매핑부(400)는 도 1의 암호화 장치 내 매핑부(100)와 동일한 기능을 수행하 는데, 즉 소정의 구간 분할 방식으로 입력 데이터에 이용되는 단위 문자별로 치역 구간을 갖도록 [n, m] 도메인 구간을 분할한다. The
복호화부(410)는 암호화된 값과 문자 길이를 입력받아 도메인 구간에서 암호화 값이 속하는 첫 번째 치역 구간을 검색한 후 검색된 치역 구간에 대응되는 단위 문자를 추출하며, 구간 분할 방식으로 검색된 첫 번째 치역 구간을 분할한 후 분할된 첫 번째 치역 구간에서 암호화 값이 포함되는 두 번째 치역 구간과 그에 대응되는 단위 문자를 추출하는 방식으로 암호화 값에 해당되는 데이터를 복원한다.The
복호화 과정에 대해 예를 들어 설명하면 아래와 같다. 즉, 상기의 암호화 과정에서 암호화 값인 0.04759와 문자 길이 3이 복호화 장치에 입력된 경우를 예로 들어 설명하면 아래와 같다.An example of the decoding process is as follows. That is, the case where the encryption value 0.04759 and the
복호화부(410)는 단위 문자별 치역 구간을 갖는 도메인 구간에서 암호화 값인 0.04759가 속하는 첫 번째 치역 구간을 검색한 후 검색된 첫 번째 치역 구간에 설정된 단위 문자인 "S"를 검색함으로써, 첫 번째 문자를 찾을 수 있다.The
그런 다음, 복호화부(410)는 첫 번째 치역 구간을 도메인 구간을 분할하는 방식, 즉 매핑부(400)에서 이용하는 구간 분할 방식을 통해 다수의 치역 구간으로 분할한 후 분할된 첫 번째 치역 구간에서 암호화 값이 포함된 두 번째 치역 구간을 검색하고, 검색된 두 번째 치역 구간에 설정된 단위 문자인 "K"를 검색함으로써, 두 번째 문자를 찾을 수 있으며, 이와 같은 방식으로 세 번째 문자인 "Y"를 찾을 수 있다.Then, the
따라서, 복호화부(410)는 암호화 값인 0.04759에 대응되는 문자열인 "SKY"를 찾음으로써, 암호화 값에 대응되는 데이터를 복원할 수 있으며, 이러한 복호화 알고리즘을 표현하면 도 5에 도시된 바와 같다.Accordingly, the
본 발명과 같은 암호화 장치와 복호화 장치를 이용하여 콘텐츠 서비스 공급자의 데이터베이스에 저장된 데이터, 예컨대 가입자 정보를 암호화하는 과정과 검색하는 과정에 대해 도 6a 내지 도 6c를 참조하여 설명한다. 이때, 가입자 정보는 고객명, 주민번호 및 이용 콘텐츠 정보 등으로 이루어진다고 가정한다.A process of encrypting and retrieving data, such as subscriber information, stored in a database of a content service provider using an encryption apparatus and a decryption apparatus as described above will be described with reference to FIGS. 6A to 6C. In this case, it is assumed that the subscriber information includes customer name, social security number, and content information used.
도 6a는 암호화되기 전 가입자 정보 테이블을 도시한 도면이며, 도 6b는 암호화 과정을 통해 가입자 정보 테이블을 암호화한 결과를 도시한 암호화 테이블이며, 도 6c는 가입자 정보 테이블에서 암호화된 값에 해당되는 데이터의 문자 길이를 표준 암호화 알고리즘을 이용하여 암호화한 결과를 도시한 문자 길이 암호화 테이블이다.FIG. 6A is a diagram illustrating a subscriber information table before encryption. FIG. 6B is an encryption table showing a result of encrypting a subscriber information table through an encryption process. FIG. 6C is data corresponding to an encrypted value in a subscriber information table. A character length encryption table showing a result of encrypting a character length of a character using a standard encryption algorithm.
본 발명의 암호화 장치는 도 6a에 도시된 바와 같은 가입자 정보 테이블을 입력받을 경우 상기에 설명된 암호화 과정을 통해 도 6b에 도시된 바와 같이 테이블 내 각 필드의 데이터를 암호화함으로써, 도 6b에 도시된 바와 같은 암호화 테이블을 생성한다.When the encryption apparatus of the present invention receives the subscriber information table as shown in FIG. 6A, the data of each field in the table is encrypted as shown in FIG. 6B through the encryption process described above. Create an encryption table as shown.
또한, 본 발명의 암호화 장치는, 각 필드에 속하는 데이터의 문자 개수를 표준 알고리즘으로 암호화하여 도 6c에 도시된 바와 같은 문자 길이 암호화 테이블을 생성한다. 이렇게 생성된 암호화 테이블과 문자 길이 암호화 테이블은 콘텐츠 서비스 공급자가 운영하는 데이터베이스에 저장된다.In addition, the encryption apparatus of the present invention encrypts the number of characters of data belonging to each field by a standard algorithm to generate a character length encryption table as shown in Fig. 6C. The generated encryption table and character length encryption table are stored in a database operated by a content service provider.
한편, 가입자가 이용하는 이용 콘텐츠를 검색하기 위한 검색어, 예컨대 "SKY"가 입력된 경우 본 발명의 암호화 장치는 입력된 검색어를 암호화 과정을 통해 최종 문자가 포함되는 치역 구간, 즉 [0.0475, 0.0476]을 검색한다.On the other hand, when a search word for searching for the use content used by the subscriber, for example, "SKY" is input, the encryption apparatus of the present invention performs the encryption period of the input search word including the final character, that is, [0.0475, 0.0476]. Search.
그런 다음, 이용 콘텐츠의 암호화 값들이 저장된 암호화 테이블에서 최종 문자의 치역 구간인 [0.0475, 0.0476]에 포함되는 암호화 값을 검색하고, 문자 길이 암호화 테이블에서 검색된 암호화 값에 대응되는 문자 길이 암호화 값을 각각 검색한 후 검색된 암호화 값과 문자 길이 암호화 값을 복호화 장치에 출력한다.Then, an encryption value included in [0.0475, 0.0476], which is the range of the last character, is retrieved from the encryption table in which the encryption values of the used content are stored, and each character length encryption value corresponding to the encryption value retrieved from the character length encryption table is retrieved. After searching, the found encryption value and the character length encryption value are output to the decryption apparatus.
이에 따라, 복호화 장치는 문자 길이 암호화 값을 표준 암호화 알고리즘으로 복호화하여 문자 길이를 계산하고, 계산된 문자 길이와 암호화 값을 상기의 설명에서와 같은 복호화 과정을 통해 복호화시켜 검색어에 대응되는 데이터를 생성한다.Accordingly, the decryption apparatus decrypts the character length encryption value using a standard encryption algorithm to calculate the character length, and decrypts the calculated character length and the encryption value through a decryption process as described above to generate data corresponding to the search word. do.
지금까지 본 발명의 실시예에 국한하여 설명하였으나 본 발명의 기술이 당업자에 의하여 용이하게 변형 실시될 가능성이 자명하다. 이러한 변형된 실시 예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.The present invention has been limited to the embodiments of the present invention, but it is obvious that the technology of the present invention can be easily modified by those skilled in the art. Such modified embodiments should be included in the technical spirit described in the claims of the present invention.
도 1은 본 발명에 따른 데이터 암호화 장치를 도시한 블록도이며,1 is a block diagram showing a data encryption apparatus according to the present invention,
도 2a 내지 도 2c는 본 발명에 따른 매핑 과정과 변환 과정을 설명하기 위한 도면이다.2A to 2C are diagrams for describing a mapping process and a transformation process according to the present invention.
도 3은 본 발명에 따른 암호화 장치에 적용되는 암호화 알고리즘을 도시한 도면이며,3 is a diagram illustrating an encryption algorithm applied to an encryption apparatus according to the present invention.
도 4는 본 발명에 따른 데이터 복호화 장치를 도시한 블록도이며,4 is a block diagram showing a data decoding apparatus according to the present invention;
도 5는 본 발명에 따른 데이터 복호화 장치에 적용되는 복호화 알고리즘을 도시한 도면이며,5 is a diagram illustrating a decoding algorithm applied to a data decoding apparatus according to the present invention.
도 6a는 암호화되기 전 가입자 정보 테이블을 도시한 도면이며, 6A is a diagram illustrating a subscriber information table before being encrypted.
도 6b는 암호화 과정을 통해 가입자 정보 테이블을 암호화한 결과를 도시한 암호화 테이블이며, 6B is an encryption table showing a result of encrypting a subscriber information table through an encryption process.
도 6c는 가입자 정보 테이블에서 암호화된 값에 해당되는 데이터의 문자 길이를 표준 암호화 알고리즘을 이용하여 암호화한 결과를 도시한 문자 길이 암호화 테이블이며,6C is a character length encryption table showing a result of encrypting a character length of data corresponding to an encrypted value in a subscriber information table using a standard encryption algorithm.
도 7은 종래의 버킷 기반 인덱스 방법을 설명하기 위한 도면이다.7 is a diagram illustrating a conventional bucket-based index method.
Claims (11)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080120807 | 2008-12-01 | ||
KR20080120807 | 2008-12-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100062803A KR20100062803A (en) | 2010-06-10 |
KR101095862B1 true KR101095862B1 (en) | 2011-12-21 |
Family
ID=42363010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090023607A KR101095862B1 (en) | 2008-12-01 | 2009-03-19 | Data encryption apparatus and method, data decoding apparatus, data searching method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101095862B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101989813B1 (en) * | 2012-06-29 | 2019-06-18 | 펜타시큐리티시스템 주식회사 | Generating and verifying the alternative data in a specified format |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006528382A (en) | 2003-07-21 | 2006-12-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Search method in documents |
-
2009
- 2009-03-19 KR KR1020090023607A patent/KR101095862B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006528382A (en) | 2003-07-21 | 2006-12-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Search method in documents |
Also Published As
Publication number | Publication date |
---|---|
KR20100062803A (en) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11709948B1 (en) | Systems and methods for generation of secure indexes for cryptographically-secure queries | |
US10467420B2 (en) | Systems for embedding information in data strings | |
US9021259B2 (en) | Encrypted database system, client terminal, encrypted database server, natural joining method, and program | |
CN111199053B (en) | System and method for multi-character wildcard search of encrypted data | |
US9147079B2 (en) | Encrypted database system, client terminal, encrypted database server, natural joining method, and program | |
US9634838B2 (en) | Complex format-preserving encryption scheme | |
US10461924B2 (en) | Format-preserving cipher | |
US10009169B2 (en) | Format-preserving cipher | |
CN107609418A (en) | Desensitization method, device, storage device and the computer equipment of text data | |
CN105959098A (en) | Format-reserved encryption algorithm based on multi-segmented Feistel network | |
US9313023B1 (en) | Format-preserving cipher | |
US10922273B1 (en) | Forward-private dynamic searchable symmetric encryption (DSSE) with efficient search | |
CN110505054B (en) | Data processing method, device and equipment based on dynamic white box | |
KR100936937B1 (en) | Database encryption and query methods keeping order within bucket partially | |
CN102456108B (en) | Encryption method for ibus pinyin code table | |
WO2014118230A1 (en) | Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data | |
CN102447558B (en) | Encryption method using random sequence on-demand and having misleading function | |
US20130268750A1 (en) | Encoded database management system, client and server, natural joining method and program | |
Geetha et al. | Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm | |
Song et al. | Design and implementation of HDFS data encryption scheme using ARIA algorithm on Hadoop | |
KR101703828B1 (en) | Method of generating index tag for encrypted data. method of searching encrypted data using index tag and database apparatus for the same | |
CN104794243B (en) | Third party's cipher text retrieval method based on filename | |
KR101095862B1 (en) | Data encryption apparatus and method, data decoding apparatus, data searching method | |
CN102360414B (en) | Misguiding encryption method capable of correcting pseudorandom sequence | |
KR20110057369A (en) | Data encryption apparatus and its method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151208 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161213 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20171212 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20181213 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20200113 Year of fee payment: 9 |