KR101539306B1 - 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법 - Google Patents

데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법 Download PDF

Info

Publication number
KR101539306B1
KR101539306B1 KR1020130122102A KR20130122102A KR101539306B1 KR 101539306 B1 KR101539306 B1 KR 101539306B1 KR 1020130122102 A KR1020130122102 A KR 1020130122102A KR 20130122102 A KR20130122102 A KR 20130122102A KR 101539306 B1 KR101539306 B1 KR 101539306B1
Authority
KR
South Korea
Prior art keywords
index
data
encrypted
distance value
database
Prior art date
Application number
KR1020130122102A
Other languages
English (en)
Other versions
KR20150043092A (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 KR1020130122102A priority Critical patent/KR101539306B1/ko
Priority to PCT/KR2014/009572 priority patent/WO2015056939A1/ko
Priority to JP2016546723A priority patent/JP6181882B2/ja
Priority to US15/026,395 priority patent/US10402386B2/en
Priority to CN201480056483.5A priority patent/CN105637520B/zh
Publication of KR20150043092A publication Critical patent/KR20150043092A/ko
Application granted granted Critical
Publication of KR101539306B1 publication Critical patent/KR101539306B1/ko

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 데이터베이스에서 개인정보보호를 위해 암호화된 필드에 대한 색인 생성 방법 및 이를 이용한 데이터 검색 방법에 관한 것이다. 본 발명의 일실시예에 따른 암호화된 필드에 대한 색인 생성 및 검색 방법은 암호화된 필드의 내용을 복호화하여 저장하지 않고 암호화된 데이터 그대로 색인을 구축하되, 색인 구축시 암호화된 데이터와 미리 설정된 기준값과의 거리 정보를 이용하여 색인을 구축하고, 검색시에도 기준값과의 거리값을 계산하고 이를 구축된 색인 정보 테이블과 비교하여 검색을 수행한다. 특히, 본 발명은 중복 데이터가 존재하는 경우 이를 리프 노드에 대한 하위 리프 노드로 세트로 구성함으로써 검색 시간을 최소화시킬 수 있다.

Description

데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법{INDEX GENERATING AND SEARCHING METHOD FOR ENCRYPTED FIELD OF DATABASE}
본 발명은 데이터베이스에서 암호화된 필드에 대한 색인 생성 방법 및 이를 이용하여 데이터를 검색하는 방법에 관한 것이다.
오라클과 같은 DBMS(Database Management System)는 저장된 데이터를 빠르게 찾기 위해 데이터 특성이나 검색 특성에 맞게 다양한 색인(index) 기법을 제공한다. 만약, 색인 기법을 사용하지 않는 경우에는 원하는 데이터를 검색하기 위해 저장된 데이터 값을 전부 스캔(full-scan) 해야 하므로 데이터량의 증가함에 따라 검색 시간이 기하급수적으로 늦어지는 현상이 발생하게 된다. 그러므로, DBMS에서 다량의 데이터로부터 원하는 데이터를 검색하기 위해서는 색인 기법이 반드시 지원되어야 한다.
하지만, DMBS가 지원하는 색인 기법은 암호화된 데이터에 대해서는 처리를 하지 못하는 문제점이 존재한다. 오라클이나 MS-SQL에서는 자체에서 제공하는 암호화된 기법을 사용할 경우 암호화된 데이터에 대해서 색인 기법을 제공하고 있으나, 개인정보보호법에서 제시한 다양한 암호화 기법(ARIA, SEED, ASE, DES 등)에 대해서 제공하지 못하므로 사용을 할 수가 없다. 그리고, 일부 DBMS 에서는 FBI(Function Based Index)라는 기능을 제공하는데, 이 방법은 암호화된 데이터를 복호화하여 색인 데이터를 만드는 것으로 색인 데이터의 내용이 암호화되지 않은 상태로 구축이 되므로, 개인 정보들이 노출되는 현상이 발생될 수 있어 개인정보보호를 위해서는 사용할 수 없다는 문제가 있다.
따라서, 개인정보보호를 위하여 암호화된 필드의 데이터를 빠르게 검색하기 위해서는 암호화된 데이터가 원 데이터의 순서를 그래도 물려받지 못하기 때문에 반드시 복호화된 데이터를 기반으로 암호화 필드 색인을 구축하는 방법과, 생성된 암호화 필드 색인을 이용하여 암호화된 데이터를 검색할 수 있는 방법이 필요하다.
KR 10-1080898 B1
본 발명은 전술한 바와 같은 문제점을 해결하기 위해 안출된 것으로, 암호화된 필드의 내용을 복호화하여 저장하지 않고 암호화된 데이터 그대로 색인을 구축하고, 구축된 색인을 이용하여 빠르게 데이터 검색을 가능하게 하는 암호화된 필드에 대한 색인 생성 및 검색 방법을 제공하고자 함에 그 목적이 있다.
이를 위해 본 발명의 일실시예에 따른 데이터베이스에서 암호화된 필드에 대한 색인 생성 방법은, 데이터베이스에서 암호화된 필드에 대한 색인 생성 방법에 있어서, (a) 데이터베이스에서 암호화된 필드에 대한 암호화 데이터를 읽어 들이는 단계; (b) 상기 암호화 데이터를 복호화하여 필드에서의 위치 정보를 포함하는 원본 데이터를 추출하는 단계; (c) 기준값을 생성하는 단계; (d) 상기 원본 데이터와 상기 기준값과의 거리값을 계산하는 단계; (e) 상기 거리값을 상기 거리값의 크기 및 부호를 기준으로 정렬시키는 단계; 및 (f) 상기 거리값에 대응되는 상기 원본 데이터의 위치정보를 매칭시켜 색인 정보 테이블을 생성하는 단계;를 갖는다.
상기 (c) 단계는, 난수를 이용하여 상기 기준값을 생성할 수 있다.
상기 (c) 단계 및 상기 (d) 단계 사이에, 상기 기준값을 암호화하여 저장하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 데이터베이스에서 암호화된 필드에 대한 검색 방법은, (a) 데이터베이스에서 암호화된 필드에 대한 암호화 데이터를 읽어 들이는 단계; (b) 상기 암호화 데이터를 복호화하여 필드에서의 위치 정보를 포함하는 원본 데이터를 추출하는 단계; (c) 기준값을 생성하는 단계; (d) 상기 원본 데이터와 상기 기준값과의 거리값을 계산하는 단계; (e) 상기 거리값을 상기 거리값의 크기 및 부호를 기준으로 정렬시키는 단계; 및 (f) 상기 거리값에 대응되는 상기 원본 데이터의 위치정보를 매칭시켜 색인 정보 테이블을 생성하는 단계;를 포함하는 색인 생성 방법에 의해 생성된 색인 정보 테이블을 이용한 검색 방법에 있어서, 특정 원본 데이터와 상기 색인 정보 테이블의 생성을 위해 생성된 기준값과의 거리인 입력 거리값을 계산하는 단계; 및 상기 입력 거리값을 상기 색인 정보 테이블에 저장된 상기 거리값과 비교함으로써 상기 특정 원본 데이터를 검색하는 단계;를 갖는다.
색인 검색 기법으로 B+ 트리 알고리즘, 해시(hash) 알고리즘 및 비트맵(bitmap) 알고리즘 중 하나를 이용할 수 있다.
상기 B+ 트리 알고리즘, 상기 해시 알고리즘 및 상기 비트맵 알고리즘은, 원하는 검색 데이터를 찾기 위한 기준값들을 포함하는 내부 노드(internal node)와, 상기 색인 정보를 포함하는 리프 노드(leaf node)를 포함하는 형태로 이루어질 수 있다.
이때, 상기 리프 노드에 위치 정보만 상이하고 동일한 데이터를 갖는 중복 데이터들을 포함하는 하위 리프 노드들이 존재하는 경우, 상기 중복 데이터들을 포함하는 상기 하위 리프 노드들을 묶어 세트로 구성함으로써 오버헤드를 최소화할 수 있다.
상기 중복 데이터들을 포함하는 상기 하위 리프 노드들을 묶어 세트로 구성하는 것은, 상기 중복 데이터를 포함하는 상기 하위 리프 노드 중 하나의 리프 노드의 하위에 위치 정보만을 포함하는 하위 리프 노드들을 생성하여 세트로 구성하는 것일 수 있다.
상기 (f) 단계는, 상기 데이터베이스가 사용자 정의 색인 기법을 제공하는 경우에는, 상기 사용자 정의 색인 기법을 이용하여 상기 색인 정보 테이블을 생성하고, 상기 데이터베이스가 사용자 정의 색인 기법을 제공하지 않는 경우에는 사용자 정의 함수와 트리거를 이용하여 상기 색인 정보 테이블을 생성할 수 있다.
본 발명에 따른 데이터베이스의 암호화된 필드에 대한 색인 생성 및 검색 방법에 의하면, 암호화된 데이터 상태로 색인을 구축할 수 있으므로 주민등록번호와 같은 개인정보를 효과적으로 보호할 수 있는 장점이 있다.
또한, 본 발명은 리프 노드에서 중복된 데이터를 포함하는 리프 노드를 세트로 구성하여 오버헤드를 감소시킴으로써 검색 시간을 최소화할 수 있는 장점이 있다.
도 1은 본 발명의 일실시예에 따른 암호화된 필드에 대한 색인 생성 방법을 설명하는 순서도이다.
도 2는 학생들의 이름과 학번 정보를 포함하는 테이블과, 학번 정보가 암호화된 테이블을 나타내는 도면이다.
도 3은 도 2의 암호화된 테이블에서 암호화된 학번 데이터의 순서값을 기초로 기준값과의 거리값을 포함한 테이블과, 거리값을 순서대로 정렬한 테이블을 나타내는 도면이다.
도 4는 도 3의 테이블 정보를 기초로 B+ 트리 알고리즘을 이용하여 생성한 색인 정보 테이블을 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공하는 것이다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용되는 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열을 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 본 발명의 실시예들은 본 발명의 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에 있어서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면, 제조상 초래되는 형상의 변화를 포함하여야 한다.
도 1은 본 발명의 일실시예에 따른 암호화된 필드에 대한 색인 생성 방법을 설명하는 순서도이다.
도 1을 참조하면 본 발명의 일실시예에 따른 암호화된 필드에 대한 색인 생성 방법은 먼저 색인을 생성하기 위한 색인 생성 함수를 호출한다(S100) 이때, 색인을 생성하는 방법은 DBMS의 종류에 따라서 각각 달라질 수 있는데 이에 관련해서는 후술한다.
이때, 색인 대상인 테이블과, 그 필드명, 암호화 방법 등의 속성 정보를 함께 전달한다(S110)
색인정보 테이블에 색인 정보가 존재하는지를 판단하고(S120), 색인 정보가 구축되어 있는 경우에는 이미 생성된 색인이라는 것을 사용자에게 알린 후 색인 생성 작업을 종료하고, 색인 정보가 구축되어 있지 않은 경우에는 색인할 데이터의 거리를 계산할 기준값을 생성한다(S130). 이때, 기준값은 원본 데이터의 최대 길이와 타입을 기준으로 난수를 발생하여 생성될 수 있다. 하지만, 기준값은 난수 이외에도 다양한 방법으로 결정될 수 있음은 물론이다. 이때, 기준값은 필요에 따라서 보안을 위하여 암호화되어 저장될 수 있다.
기준값 생성후 테이블에서 대상이 되는 필드의 암호화 데이터를 읽어 들인다(S140).
이때, 암호화 데이터는 주민등록번호, 생년월일 등 데이터베이스에서 개인정보보호를 위해 미리 암호화되어 있는 데이터를 의미한다.
다음, 암호화 데이터를 복호화하여 필드에서의 위치 정보를 포함하는 원본 데이터를 추출한다(S150).
이때, 필드에서의 위치 정보는 테이블의 해당 필드에서의 열번호를 의미할 수 있다. 즉, 복호화하여 원본 데이터를 구출할 때, 각각의 원본 데이터의 테이블에서의 위치 정보(해당 필드에서의 열번호 등)를 함께 저장하는 것이다.
상기와 같이 원본 데이터가 추출되면 원본 데이터와 거리값을 계산한다(S160).
예를 들어, 원본 데이터들이 문자열로 구성되어 있는 경우에 원본 데이터의 첫째 문자열의 순서 정보를 기초로 기준값과의 차이를 계산하여 거리값을 계산할 수 있다. 다른 실시예로, 기준값이 원본데이터와 같이 문자열로 구성될 수 있으며, 원본 데이터와 기준값을 포함하여 순서 정보를 기초로 거리값을 계산할 수도 있다.
다음, 거리값을 크기 및 부호 기준으로 정렬시킨다(S170). 예를 들어, 거리값은 원본 데이터의 순서 정보에서 기준값을 뺀 값으로 설정될 수 있는데, 이러한 경우 거리값은 음의 값을 같거나, 양의 값을 같거나 0의 값을 가질 수 있다.
이때, 거리값이 음의 값을 가지며 크기가 큰 값일수록 거리가 가장 가까운 것으로, 거리값이 양의 값을 가지며 크기가 큰 값일수록 거리가 가장 먼 것으로 판단할 수 있다. (물론, 정렬 순서에 따라서 이와 반대될 수도 있다.)
이렇게 거리값이 정렬되면, 거리값에 대응되는 원본 데이터의 위치 정보를 매칭시켜 저장함으로써 색인 정보 테이블을 생성한다(S180)
이렇게 색인 정보 테이블이 생성되면, 특정 원본 데이터에 대한 검색이 필요한 경우, 상기 특정 원본 데이터와 상기 기준값과의 거리인 입력 거리값을 계산하고, 상기 입력 거리값을 상기 색인 정보 테이블에 저장된 상기 거리값과 비교함으로써 상기 특정 원본 데이터를 검색할 수 있다.
이때, 색인 검색 기법으로는 널리 쓰이고 있는 다양한 기법들을 이용할 수 있는데, 예를 들어, B+ 트리 알고리즘, 해시(hash) 알고리즘, 비트맵(Bitmap) 알고리즘 중 하나를 이용할 수 있다.
이들 알고리즘들은 원하는 검색 데이터를 찾기 위한 기준값들을 포함하는 내부 노드(internal nodes)와, 색인 정보를 포함하는 리프 노드(leaf nodes)를 포함하는 트리 구조를 가질 수 있다. 이에 대하여는 도 4를 참조하여 후술한다.
앞에서 언급한 바와 같이 DBMS 중에는 오라클과 같이 사용자가 색인 기능을 만들 수 있는 DBMS가 있는 반면에 MS-SQL과 같이 이러한 기능을 제공하지 않는 DBMS가 있다. 이러한 기능은 사용자 정의 색인이라고 부르는데, 오라클에서는 도메인 인덱스(domain index)라고 부른다.
DBMS가 사용자 정의 기법을 제공하는 경우에 DBMS는 사용자가 만든 색인을 위해서 DDL문(예를 들어, create index, drop index, alter index 등)을 제공하고, 테이블에 데이터 삽입, 변경, 삭제가 발생할 경우 자동적으로 색인 구조를 변경할 수 있게 하며, 사용자 정의 색인을 이용해서 검색할 수 있는 기능을 제공한다.
여기에서는 오라클을 기반으로 설명한다. 오라클은 사용자 정의 색인 기법인 'domain index'를 제공하는데, 'domain index'에서는 'index type'을 정의해서 사용할 수 있게 한다. 예를 들어, 'security index (SI) index type'을 다음과 같이 만들 수 있다.
<Create indextype SI_index for SI_eq(varchar2, varchar2) using SI_im;>
'SI_eq()'는 도메인 인덱스를 이용해서 검색을 하기 위한 검색 함수(필요한 여러개의 함수를 정의할 수 있음)이고, 'SI_im'은 색인의 내부를 구성하는 함수 부분을 지정한다. 내부를 구성하는 함수 'skeleton'은, create(), drop(), alter(), insert(), delete(), update(), truncate() 등으로 구성되어 있어 사용자 정의 색인을 제작하는 개발자가 내부를 구성하게 되어 있다.
또한, 도메인 인덱스를 사용하기 위해 indexstart(), fetch(), close()의 3가지 함수 skeleton을 제공하여, 구성된 색인 검색을 통해 적합한 데이터 결과를 전달할 수 있게 한다.
또한, 예를 들어 인덱스를 아래와 같이 생성할 수 있다.
<Create index '색인명' on '테이블명(필드명)' indextype is SI_index;>
상기와 같이 사용자 정의 색인 기법을 제공하는 DBMS의 경우에는 기능에 맞추어 암호화 색인 기법을 구성하면 되고, 검색시에는 사용자 정의 색인을 사용할 수 있는 함수를 구성하여 검색을 할 수 있다. 예를 들어 주빈번호가 '710005-1028933' 이라는 사용자의 다른 정보를 찾을 때는 다음과 같다.
(암호화전) <select * from table where jumin = '701005-1028933'>
(암호화후) <select * from table where SI_eq(jumin, '701005-1028933')=1>
한편, 사용자 정의 색인 기법을 제공하지 않는 DBMS의 경우에는 위와 같은 방법을 사용할 수 없고, 사용자 정의 함수를 만들어서 색인을 생성, 삭제 및 재생성을 해야 한다. 그리고, 테이블에 데이터가 삽입, 삭제 및 수정될 때에도 DBMS가 자동으로 색인 구성 처리를 위해 호출을 하지 못하므로 해당 테이블에 트리거를 설정해서 색인 데이터를 구성해야 한다. 구축된 색인을 검색하는 방법도 기존의 방식을 이용하지 못하고 다음과 같이 'sub-query'와, 'in-query'를 이용해서 처리해야 한다.
(암호화전) <select * from table where jumin = '701005-1028933'>
(암호화후) <select * from table where rowid in (select * from SI_eq(jumin, '701005-1028933')>
rowid는 해당 테이블에서 record id이며, rowid를 지원하지 않는 DBMS인 경우에는 record indentifier를 위해서 unique한 필드를 만들어 넣는다. unique한 필드값은 숫자를 자동으로 증가하는 increment constraint를 사용하거나, micro-second의 time값을 이용하여 unique한 값을 만들 수 있다.
이하에서는 도 2 내지 도 4를 참조하여 실제 예시 테이블을 참조하여 본 발명에 따른 색인 생성 및 검색 방법을 설명하기로 한다.
도 2는 학생들의 이름과 학번 정보를 포함하는 테이블과, 학번 정보가 암호화된 테이블을 나타내는 도면이다.
도 2의 (a)에는 8명의 학생들에 대한 이름 및 학번 정보가 포함된 원본 테이블이 나타나 있다. 하지만, 학번의 경우 개인정보보호를 위하여 노출되지 않을 필요가 있으므로 학번 정보를 암호화하여 도 2의 (b)와 같은 테이블을 만들 수 있다.
이렇게 도 2의 (b)의 테이블이 완성되면, 사용자는 암호화된 학번 데이터만 볼 수 있으므로 개인정보의 노출이 제한된다.
하지만, 암호화된 학번 정보를 그대로 정렬시키게 되면 이는 원본 데이터의 순서와 전혀 무관하게 되므로, 색인 정보가 의미가 없게 된다.
따라서, 도 3과 같이 도 2의 암호화된 테이블에서 암호화된 학번을 미리 설정된 기준값과의 거리값을 구하고, 거리값을 순서대로 정렬할 필요가 있다.
도 3의 (a)에서는 설명의 편의상 암호화된 학번의 복호화된 데이터를 추출하고, 기준값인 1999000과의 거리값을 계산하였다. 예를 들어, 'AAXY'의 복호화한 내값은 19990002이므로 거리값은 '19990002 - 19990000 = 2'이다. 또한, 'ZOXT'의 경우 복호화한 값이 19990004 이고, 거리값은 '19990004-19990000 = 4'이다.
다음 상기 거리값들은 도 3의 (b)와 같이 거리값들의 크기 및 부호를 기준으로 거리가 가까운 값부터 거리가 먼 값 순으로 재정렬될 수 있다. 이때, 각 거리값에 대응되는 원본 데이터의 위치 정보가 함께 매칭되어 저장된다.
상기와 같은 정보를 구축하면, 특정 원본 데이터를 찾고자 하는 경우 기준값가의 거리 정보를 구하고, 이를 상기 정보와 비교함으로써 원본 데이터를 쉽게 검색할 수 있게 된다.
도 4는 도 3의 테이블 정보를 기초로 B+ 트리 알고리즘을 이용하여 생성한 색인 정보 테이블을 나타내는 도면이다.
도 4와 같이 B+ 트리 알고리즘을 이용한 색인 테이블 정보는 루트 노드(root node)를 포함하는 내부 노드(internal node: 42)와 리프 노드(leaf node: 44)들로 구성된다. 내부 노드들은 원하는 값을 찾기 위한 기준값들과 하위 노드를 가리키는 포인터(pointer)들을 포함하여 구성되고, 리프 노드들은 찾고자 하는 실제 데이터 값들(예를 들어, 색인 정보 테이블의 값들)이 저장되어 있는 것으로 리프 노드들은 양방향 포인터를 가지고 있다. 양방향 포인터는 다음 데이터를 쉽게 찾아갈 수 있게 한다.
색인정보 테이블, 내부 모드 및 리프 노드에 대한 속성은 대부분 기존의 방식과 유사하므로 설명을 생략하고, 리프 노드의 일부 새로운 구성은 뒤에서 후술한다.
예를 들어, 도 4의 색인 정보 테이블을 통하여 학번이 '19990006'인 학생에 대한 성명과 같은 다른 필드 정보를 찾고 싶은 경우에 미리 구축된 기준값(19990000)과의 거리값을 구한다. 거리값은 입력값 19990006에서 기준값인 19990000을 뺀 6이 된다.
입력 거리값이 6은 루트 노드의 값들과 먼저 비교하게 된다. 먼저 5와 비교하면 6은 5보다 더 크기 때문에 5의 우측 하위 노드로 넘어간다.
다음 하위 노드의 7과 비교하게 되는데, 7보다는 작은 값이므로 7의 좌측 노드로 내려간다. 7의 좌측 노드는 리프 노드 이므로 여기서 6값이 있는지를 찾는다. 6값은 리프 노드의 2번째에 있고 대응되는 위치정보로 'L8'이 추출된다.
따라서, 사용자는 'L8' 정보로부터 도 2의 테이블로부터 해당 학번을 가지는 학생 이름이 '깁갑동' 이라는 사실을 확인할 수 있게 된다.
본 발명이 기존의 알고리즘과 일부 다른 점은 중복 데이터를 처리하는 방식이다.
기존의 알고리즘에서는 종복된 데이터가 존재하는 경우 도 4의 리프 노드의 구성에서라면 중복된 데이터를 횡으로 계속하여 노드를 생성하는 구조를 취하였으므로, 실제 중복된 데이터가 존재하는지 풀스캔(full-scan)을 해봐야 하는 문제가 있었다.
본 발명은 이러한 검색 비효율을 해소하고자, 중복된 데이터 값들은 해당 리드 노드의 하위 리프 노드로 세트로 구성함으로써 오버헤드를 최소를 최소화하였으며, 검색시 빠른 성능을 가지게 하였다.
즉, 도 4에서 '3'를 찾은 경우에 중복된 데이터(즉, 거리값이 동일한 데이터)가 4개가 더 있는 경우에는 도면부호 45와 같이 '3(L5)' 하위에 총 4개의 리프 노드를 세트로 구성한다.
하위 리프 노드에는 'L12, L15, L17, L25' 의 위치 정보만이 포함되고, 이'이 검색되는 경우 'L5'의 위치정보와 함께 사용자에게 제공된다. 즉, 사용자가 학번 19990003을 찾을 경우 거리값은 3을 가지고 색인정보에서 찾으면 모두 'L5, L12, L15, L17, L25'의 위치 정보를 일괄적으로 확인할 수 있게 되는 것이다.
본 발명은 이와 같이 암호화된 필드의 암호화 데이터를 그대로 이용하여 색인을 생성하고, 검색을 수행할 수 있으며, 중복 데이터에 대하여 하위 리프 노드의 세트를 구성함으로써 검색 효율을 향상시킬 수 있는 장점이 있다.
이상 도면을 참조하여 본 발명의 실시 형태에 대하셔 설명하였다. 하지만, 이는 단지 본 발명을 설명하기 위한 목적에서 기술된 것이고 본 발명의 내용을 이에 한정하거나 제한하기 위하여 기술된 것은 아니다, 그러므로, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예를 실시하는 것이 가능할 것이다, 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사항에 의해 정해져야 할 것이다.

Claims (9)

  1. 데이터베이스에서 암호화된 필드에 대한 색인 생성 방법에 있어서,
    (a) 데이터베이스에서 암호화된 필드에 대한 암호화 데이터를 읽어 들이는 단계;
    (b) 상기 암호화 데이터를 복호화하여 필드에서의 위치 정보를 포함하는 원본 데이터를 추출하는 단계;
    (c) 기준값을 생성하는 단계;
    (d) 상기 원본 데이터와 상기 기준값과의 거리값을 계산하는 단계;
    (e) 상기 거리값을 상기 거리값의 크기 및 부호를 기준으로 정렬시키는 단계; 및
    (f) 상기 거리값에 대응되는 상기 원본 데이터의 위치정보를 매칭시켜 색인 정보 테이블을 생성하는 단계;를 포함하며,
    상기 (c) 단계 및 상기 (d) 단계 사이에,
    상기 기준값을 암호화하여 저장하는 단계를 더 포함하는 것을 특징으로 하는 암호화된 필드에 대한 색인 생성 방법.
  2. 제1항에 있어서,
    상기 (c) 단계는,
    난수를 이용하여 상기 기준값을 생성하는 것을 특징으로 하는 암호화된 필드에 대한 색인 생성 방법.
  3. 삭제
  4. 제1항에 기재된 색인 생성 방법에 의해 생성된 색인 정보 테이블을 이용한 검색 방법에 있어서,
    특정 원본 데이터와 상기 색인 정보 테이블의 생성을 위해 생성된 기준값과의 거리인 입력 거리값을 계산하는 단계; 및
    상기 입력 거리값을 상기 색인 정보 테이블에 저장된 상기 거리값과 비교함으로써 상기 특정 원본 데이터를 검색하는 단계;를 포함하는 것을 특징으로 하는 암호화된 필드에 대한 검색 방법.
  5. 제4항에 있어서,
    색인 검색 기법으로 B+ 트리 알고리즘, 해시(hash) 알고리즘 및 비트맵(Bitmap) 알고리즘 중 하나를 이용하는 것을 특징으로 하는 암호화된 필드에 대한 검색 방법.
  6. 제5항에 있어서,
    상기 B+ 트리 알고리즘, 상기 해시 알고리즘 및 상기 비트맵 알고리즘은,
    원하는 검색 데이터를 찾기 위한 기준값들을 포함하는 내부 노드(internal node)와, 상기 색인 정보를 포함하는 리프 노드(leaf node)를 포함하는 형태로 이루어지는 것을 특징으로 하는 암호화된 필드에 대한 검색 방법.
  7. 제6항에 있어서,
    상기 리프 노드에 위치 정보만 상이하고 동일한 데이터를 갖는 중복 데이터들을 포함하는 하위 리프 노드들이 존재하는 경우, 상기 중복 데이터들을 포함하는 상기 하위 리프 노드들을 묶어 세트로 구성함으로써 오버헤드를 최소화하는 것을 특징으로 하는 암호화된 필드에 대한 색인 검색 방법.
  8. 제7항에 있어서,
    상기 중복 데이터들을 포함하는 상기 하위 리프 노드들을 묶어 세트로 구성하는 것은,
    상기 중복 데이터를 포함하는 상기 하위 리프 노드 중 하나의 리프 노드의 하위에 위치 정보만을 포함하는 하위 리프 노드들을 생성하여 세트로 구성하는 것인 암호화된 필드에 대한 색인 검색 방법.
  9. 제1항에 있어서,
    상기 (f) 단계는,
    상기 데이터베이스가 사용자 정의 색인 기법을 제공하는 경우에는, 상기 사용자 정의 색인 기법을 이용하여 상기 색인 정보 테이블을 생성하고,
    상기 데이터베이스가 사용자 정의 색인 기법을 제공하지 않는 경우에는, 사용자 정의 함수와 트리거를 이용하여 상기 색인 정보 테이블을 생성하는 것을 특징으로 하는 암호화된 필드에 대한 색인 생성 방법.
KR1020130122102A 2013-10-14 2013-10-14 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법 KR101539306B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130122102A KR101539306B1 (ko) 2013-10-14 2013-10-14 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법
PCT/KR2014/009572 WO2015056939A1 (ko) 2013-10-14 2014-10-13 데이터베이스에서 암호화된 필드에 대한 색인 생성 방법 및 장치
JP2016546723A JP6181882B2 (ja) 2013-10-14 2014-10-13 データベースで暗号化されたフィールドに対する索引生成方法および装置
US15/026,395 US10402386B2 (en) 2013-10-14 2014-10-13 Method and apparatus for generating index for encrypted field in database
CN201480056483.5A CN105637520B (zh) 2013-10-14 2014-10-13 数据库中为加密字段生成索引的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130122102A KR101539306B1 (ko) 2013-10-14 2013-10-14 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법

Publications (2)

Publication Number Publication Date
KR20150043092A KR20150043092A (ko) 2015-04-22
KR101539306B1 true KR101539306B1 (ko) 2015-07-24

Family

ID=52828325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130122102A KR101539306B1 (ko) 2013-10-14 2013-10-14 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법

Country Status (5)

Country Link
US (1) US10402386B2 (ko)
JP (1) JP6181882B2 (ko)
KR (1) KR101539306B1 (ko)
CN (1) CN105637520B (ko)
WO (1) WO2015056939A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101539306B1 (ko) 2013-10-14 2015-07-24 주식회사 파수닷컴 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법
US9633219B2 (en) 2015-08-26 2017-04-25 International Business Machines Corporation Providing secure indexes for searching encrypted data
CN106934030B (zh) * 2016-12-08 2019-12-31 戴林 一种面向数据库加密的密文索引方法和库内加密系统
DE112017006020T5 (de) * 2016-12-30 2019-08-14 Robert Bosch Gmbh Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE102017111480A1 (de) * 2017-05-24 2018-11-29 Bundesdruckerei Gmbh Kommunikationsvorrichtung zum Indexieren einer verschlüsselten Kommunikationsnachricht
KR20190134115A (ko) * 2018-05-25 2019-12-04 주식회사 티맥스데이터 효율적인 인덱싱을 제공하기 위한 방법, 장치 및 컴퓨터-판독가능 매체에 포함된 컴퓨터 프로그램
US10958415B2 (en) * 2018-07-11 2021-03-23 Informatica Llc Method, apparatus, and computer-readable medium for searching polymorphically encrypted data
KR102157791B1 (ko) * 2018-07-18 2020-09-18 주식회사 에이치티원 증권 직접 주문 시스템에서의 주문 데이터 처리 방법 및 이를 위한 컴퓨터 프로그램
CN109300518A (zh) * 2018-10-22 2019-02-01 上海市疾病预防控制中心 实现健康档案数据采集和调阅管理的系统及方法
US11222131B2 (en) 2018-11-01 2022-01-11 International Business Machines Corporation Method for a secure storage of data records
CN110175472A (zh) * 2019-05-29 2019-08-27 华南师范大学 基于大数据插入和地址映射的信息隐藏方法和机器人系统
CN111680062B (zh) * 2020-05-15 2021-05-25 江西师范大学 一种安全多目标数据对象查询方法及存储介质
CN112199420A (zh) * 2020-10-16 2021-01-08 成都房联云码科技有限公司 一种房产隐私字段信息模糊搜索方法
CN112583809B (zh) * 2020-12-09 2022-09-30 北京国研数通软件技术有限公司 非浸入式多种加密算法的数据加密解密的方法
TWI788240B (zh) * 2022-03-11 2022-12-21 華邦電子股份有限公司 電子裝置及其資料傳輸方法
CN116136908B (zh) * 2023-04-14 2023-08-04 北京萤火保科技有限公司 基于大数据的保险用户信息安全存储方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990066251A (ko) * 1998-01-23 1999-08-16 윤종용 웹 검색 엔진에서 검색된 정보를 지역적으로근접한 순서대로표시하는 방법
KR20060094000A (ko) * 2005-02-23 2006-08-28 인천대학교 산학협력단 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법
KR20060121772A (ko) * 2006-10-04 2006-11-29 (주)이글로벌시스템 암호화된 컬럼에 대한 색인 방법
KR20100002345A (ko) * 2008-06-30 2010-01-07 (주)케이사인 가상 경로 인덱스 기법을 이용한 db 인덱스 암호화 구축 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147717A1 (en) * 2001-01-26 2002-10-10 Barros Mark Alexander Communication device, system, method, and computer program product for sorting data based on proximity
US7426752B2 (en) * 2004-01-05 2008-09-16 International Business Machines Corporation System and method for order-preserving encryption for numeric data
JP2005242740A (ja) * 2004-02-27 2005-09-08 Open Loop:Kk 情報セキュリティシステムのプログラム、記憶媒体、及び情報処理装置
CN1900936A (zh) * 2005-07-25 2007-01-24 曾致中 数据库密文索引中隐藏偏序关系的技术
EP2054836B1 (fr) * 2006-07-19 2019-05-29 Advanced Track And Trace Procedes et dispositifs de securisation et d'authentification de documents
KR20090118300A (ko) 2008-05-13 2009-11-18 김명수 랜덤지수를 이용한 경품 서비스 시스템 및 방법
KR101539306B1 (ko) 2013-10-14 2015-07-24 주식회사 파수닷컴 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990066251A (ko) * 1998-01-23 1999-08-16 윤종용 웹 검색 엔진에서 검색된 정보를 지역적으로근접한 순서대로표시하는 방법
KR20060094000A (ko) * 2005-02-23 2006-08-28 인천대학교 산학협력단 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법
KR20060121772A (ko) * 2006-10-04 2006-11-29 (주)이글로벌시스템 암호화된 컬럼에 대한 색인 방법
KR20100002345A (ko) * 2008-06-30 2010-01-07 (주)케이사인 가상 경로 인덱스 기법을 이용한 db 인덱스 암호화 구축 방법

Also Published As

Publication number Publication date
US10402386B2 (en) 2019-09-03
CN105637520B (zh) 2019-10-29
JP2016533606A (ja) 2016-10-27
WO2015056939A1 (ko) 2015-04-23
US20160246828A1 (en) 2016-08-25
CN105637520A (zh) 2016-06-01
JP6181882B2 (ja) 2017-08-16
KR20150043092A (ko) 2015-04-22

Similar Documents

Publication Publication Date Title
KR101539306B1 (ko) 데이터베이스에서 암호화된 필드에 대한 색인 생성 및 검색 방법
KR100737359B1 (ko) 암호화된 컬럼의 인덱스 구축방법
US7519835B2 (en) Encrypted table indexes and searching encrypted tables
Pfoser et al. Novel approaches to the indexing of moving object trajectories.
Liu et al. SUBMITTED BY
US10083195B2 (en) System and method for composing a multidimensional index key in data blocks
KR101678149B1 (ko) 데이터베이스의 데이터 탐색방법 및 그 장치와 이를 위한 컴퓨터 프로그램
Hadian et al. Interpolation-friendly B-trees: Bridging the Gap Between Algorithmic and Learned Indexes.
US20180143979A1 (en) Method for segmenting and indexing features from multidimensional data
CN109885570A (zh) 一种辅助索引结合散列表的多维范围查询方法
Alhanjouri et al. A New method of query over encrypted data in database using hash map
KR20060087103A (ko) 인덱스 컬럼 암호화 방법
Tzouramanis History-independence: a fresh look at the case of R-trees
Ho et al. A study on improving the performance of encrypted database retrieval using external indexing system of B+ tree structure
Arpitha et al. A Navigation Supporting System Using R-Tree
Fleites et al. Efficient content-based multimedia retrieval using novel indexing structure in PostgreSQL
EP3324303A1 (en) Method for segmenting and indexing features from multidimensional data
Chen et al. Privacy-protecting index for outsourced databases
Yadav A Review Paper on Information Retrieval Techniques for Point and Range Query in Database System.
CN106156649A (zh) 一种Android系统的数据保护方法及系统
Alhanjouri New Method of Query over Encrypted Data in Database
CN113722359A (zh) 一种面向密态oltp任务的sql查询重写方法
Mehedinţu et al. Indexing strategies for optimizing queries on MySql
TamilSelvi et al. Approximate String Search in Large Spatial Database
CN115576987A (zh) 加密数据查询方法、装置、存储介质、处理器及终端设备

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180716

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 5