[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101476039B1 - 데이터베이스 암호화 방법 및 이의 실시간 검색 방법 - Google Patents

데이터베이스 암호화 방법 및 이의 실시간 검색 방법 Download PDF

Info

Publication number
KR101476039B1
KR101476039B1 KR1020130070095A KR20130070095A KR101476039B1 KR 101476039 B1 KR101476039 B1 KR 101476039B1 KR 1020130070095 A KR1020130070095 A KR 1020130070095A KR 20130070095 A KR20130070095 A KR 20130070095A KR 101476039 B1 KR101476039 B1 KR 101476039B1
Authority
KR
South Korea
Prior art keywords
database
bloom filter
hash function
encrypted
tuple
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020130070095A
Other languages
English (en)
Inventor
김지홍
김성용
유천영
Original Assignee
세명대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세명대학교 산학협력단 filed Critical 세명대학교 산학협력단
Priority to KR1020130070095A priority Critical patent/KR101476039B1/ko
Application granted granted Critical
Publication of KR101476039B1 publication Critical patent/KR101476039B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/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
    • 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
    • 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

Landscapes

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

Abstract

데이터베이스 암호화 방법이 개시된다. 데이터베이스 서버에 암호화된 데이터를 구축하기 위한, 데이터베이스 클라이언트 단말에서의 본 발명의 데이터베이스 암호화 방법은, 평문 데이터베이스의 요소단위에 대해 블룸필터를 구성하여 인덱스를 생성하고, 상기 평문 데이터베이스의 튜플단위를 암호화하여 암호화된 튜플을 생성한다.

Description

데이터베이스 암호화 방법 및 이의 실시간 검색 방법{METHOD FOR ENCRYPTING DATABASE AND METHOD FOR REAL-TIME SEARCH THEREOF}
본 발명은 데이터베이스 암호화 방법 및 이의 실시간 검색 방법에 관한 것이다.
일반적으로, 데이터베이스에 저장된 정보를 암호화하는 방법은, 데이터베이스를 구성하는 단위별로 수행되며, 테이블 전체를 암호화하는 테이블 기반 암호화 방법과, 열단위를 암호화하는 속성 기반 암호화 방법, 행단위를 암호화하는 튜플(tuple) 단위 암호화 방법, 및 각각의 요소 단위로 암호화하는 요소 기반 암호화 방법으로 구분된다.
테이블 기반과 속성 기반 방식은 데이터베이스 백업용으로 사용되는 방법으로서, 실시간 검색이 불가능하고, 요소 기반 방식은 암호화된 데이터의 양이 너무 많고, 동일값 검색 외에는 다른 검색에는 사용될 수 없다. 반면에 튜플 기반의 암호화 방법은 튜플 단위로 암호하기 때문에, 튜플 단위의 삽입과 삭제가 가능하며, 실시간 검색을 위하여 각 튜플내의 속성에 대한 별도의 인덱스를 필요로 한다.
데이터베이스를 구성하는 요소는 민감정보와 비민감 정보로 구분된다. 비민감 정보의 경우에는 암호화를 필요로 하지 않지만, 민감정보는 암호화할 필요가 있다. 그러나, 암호화된 데이터베이스는 사용자가 실시간으로 검색하기 어려운 문제점이 있다.
본 발명이 해결하고자 하는 기술적 과제는, 데이터베이스에 저장된 민감정보에 대해 충분한 보안을 제공하고, 데이터의 삽입 및 삭제 뿐 아니라 실시간으로 검색이 가능하게 하는 데이터베이스 암호화 방법과 이의 실시간 검색 방법을 제공하는 것이다.
상기와 같은 기술적 과제를 해결하기 위해, 데이터베이스 서버에 암호화된 데이터를 구축하기 위한, 데이터베이스 클라이언트 단말에서의 본 발명의 일실시예의 데이터베이스 암호화 방법은, 평문 데이터베이스의 요소단위에 대해 블룸필터를 구성하여 인덱스를 생성하는 단계; 및 상기 평문 데이터베이스의 튜플단위를 암호화하여 암호화된 튜플을 생성하는 단계를 포함할 수 있다.
본 발명의 일실시예에서, 상기 암호화 방법은, 상기 블룸필터와 상기 암호화된 튜플을 데이터베이스 서버로 전송하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에서, 상기 암호화 방법은, 상기 데이터베이스 서버가 상기 블룸필터와 상기 암호화된 튜플을 이용하여 암호화된 데이터베이스를 구축하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에서, 상기 데이터베이스 서버는, 상기 암호화된 튜플과 상기 블룸필터를 테이블내 개별 필드로 저장할 수 있다.
본 발명의 일실시예에서, 상기 인덱스를 생성하는 단계는, 상기 평문 데이터베이스의 요소단위에 대하여 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 및 해쉬함수 결과값을 블룸필터로 구성하는 단계를 포함할 수 있다.
본 발명의 일실시예에서, 상기 평문 데이터베이스는, 숫자 데이터와 문자 데이터를 포함할 수 있다.
본 발명의 일실시예에서, 숫자 데이터에 대하여, 다양한 범위형 키워드를 생성할 수 있다.
본 발명의 일실시예에서, 상기 암호화된 튜플을 생성하는 단계는, 상기 평문 데이터베이스의 튜플단위를 소정의 암호화 키를 이용하여 암호화를 수행하여, 상기 암호화된 튜플을 생성할 수 있다.
또한, 상기와 같은 기술적 과제를 해결하기 위해, 상기의 방법에 의해 암호화된 데이터베이스를 상기 데이터베이스 클라이언트 단말에서 검색하는 본 발명의 일실시예의 방법은, 사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록, 질의어를 변형하여, 상기 데이터베이스 서버에 전송하는 단계; 상기 데이터베이스 서버로부터, 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터에 해당하는 암호문을 수신하는 단계; 및 수신된 암호문을 복호화하는 단계를 포함할 수 있다.
또한, 상기와 같은 기술적 과제를 해결하기 위해, 상기의 방법에 의해 암호화된 데이터베이스에서 통계 데이터를 추출하는 본 발명의 일실시예의 방법은, 사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록, 질의어를 변형하여, 상기 데이터베이스 서버에 전송하는 단계; 및 상기 데이터베이스 서버로부터 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터의 개수를 수신하는 단계를 포함할 수 있다.
상기와 같은 본 발명은, 데이터베이스의 소유자가 암호화키 및 복호화키를 소유하여, 보다 안전한 암호화를 제공하도록 하는 효과가 있다.
또한, 본 발명은 데이터베이스의 요소단위에 대한 키워드를 해쉬함수에 적용하고, 이에 대한 블룸필터를 구성하는 것에 의해 인덱스를 생성하여, 데이터베이스에 대한 실시간 검색 및 통계가 가능하게 하는 효과가 있다.
도 1은 블룸필터를 설명하기 위한 일예시도이다.
도 2는 본 발명에 따른 데이터베이스 암호화 방법을 설명하기 위한 일실시예 개념도이다.
도 3은 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 검색하는 과정을 설명하기 위한 일실시예 개념도이다.
도 4는 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 통계 데이터를 추출하는 과정을 설명하기 위한 일예시도이다.
도 5는 본 발명에 따른 암호화 방법을 설명하기 위한 일실시예 흐름도이다.
도 6a 내지 도 6c는 본 발명의 암호화 방법에 따른 결과를 설명하기 위한 일예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
본 발명은, 튜플 단위의 데이터베이스 암호화와 함께 블룸필터를 적용한 인덱스를 사용함으로써 검색기능을 향상시킬 수 있는 방안을 제시한다.
또한, 본 발명은, 데이터베이스의 관리를 직접 관리하지 않고, 외부의 클라우드 업체에서 제공하는 데이터베이스를 사용하는 경우에, 외부 업체의 데이터베이스 관리자가 고의로 자신이 관리하는 키를 이용하여 데이터베이스에 저장된 민감정보를 열람할 수 없도록 하기 위한 구조를 제시한다. 이를 위해, 본 발명은, 키는 데이터베이스 소유자만이 소유하게 하고 외부업체의 데이터베이스 관리자는 단지 튜플 단위로 암호화된 암호화 데이터베이스와 인덱스로 사용되는 블룸필터만을 열람할 수 있게 함으로써 암호화된 데이터를 해독할 수 없도록 한다.
또한, 본 발명은 튜플 단위의 블룸필터 값들은 의료정보 분석용으로 사용될 수 있게 한다. 블룸필터 값에 대한 긍정오류(false positive) 확률을 최소화하여, 최소한의 오차 범위를 가진 분포 데이터를 추출할 수 있다. 이는 암호화 정보는 열람하지 않더라도 데이터베이스 정보에 대한 통계치를 알 수 있게 하는 것이다. 예를 들면 데이터베이스에 기록된 튜플 단위의 블룸필터 값만으로 서울에 사는 50대 남성의 혈액형의 분포를 구할 수 있다. 이는 의료정보에 대한 개인정보를 보호할 수 있는 역할을 한다.
먼저, 블룸필터에 대해 설명한다. 블룸필터란, 데이터의 존재유무를 확인할 수 있는 비트 어레이로 정의된다. 도 1은 블룸필터를 설명하기 위한 일예시도이다.
데이터의 종류는 숫자형 데이터와 문자형 데이터로 구분된다. 문자 데이터의 검색에는 데이터 자체인 키워드를 이용한다. 반면에 숫자 데이터의 경우에는 구간을 나타내는 수치를 사용한다. 예를 들어, 주민등록번호의 경우, 주민등록번호의 상위 6바이트는 년/월/일을 의미한다. 그러므로 상위 첫 바이트를 이용하여 10년 단위의 키워드로 사용할 수 있으며, 상위 두 바이트를 이용하여 년 단위의 키워드로 사용할 수 있다. 또한 세 번째와 네 번째 바이트는 월을 의미하는 키워드로 사용할 수 있다. 마찬가지로 주민등록번호의 하위 7바이트 중 첫 번째 바이트는 성별을 의미하는 키워드로 사용될 수 있다. 이와 같이 숫자 데이터에 대하여 다양한 범위형 키워드를 사용하여 블룸필터에 저장함으로써, 범위연산과 집계연산 및 통계분석에 유용하게 사용될 수 있다.
먼저, 데이터 검색에 필요한 키워드와 다양한 범위를 나타내는 수치를 모두 데이터라고 정의한다. 도 1에서 데이터는 k 개의 해쉬(hash)함수를 통과한다. 해쉬함수의 계산결과는 블룸필터의 크기 m보다 작으며, 해쉬함수의 결과가 블룸필터에 저장된다.
블룸필터의 초기값은 '0'으로 초기화되어 있으며, 해쉬함수의 결과에 따라 해당 비트가 '1'로 세트된다. 이렇게 저장된 블룸필터의 값은 데이터의 존재 유무를 확인하기 위해 사용된다. 즉, 데이터의 존재를 확인하기 위해서는 데이터의 해쉬함수 결과에 의해 블룸필터에서 k 개의 비트들이 전부 '1'로 설정되어 있으면 존재한다는 것을 확인할 수 있다. 또한 k 개의 비트 중 하나라도 '0'으로 설정되어 있으면 데이터가 존재하지 않는 것으로 알 수 있다.
그러나 블룸필터의 각 비트는 '0'과 '1'로만 설정되기 때문에, 실제로 존재하지 않는 데이터에 대해서도 존재한다고 판단할 수 있다. 이를 긍정오류확률(false positive probability)이라고 하며, 이러한 확률을 최소화하기 위해서 적절한 크기의 m 비트를 사용한다.
일반적으로 블룸필터의 크기가 m 비트이며, k 개의 해쉬함수를 사용하고, 블룸필터에 입력된 데이터의 개수가 n개일 때, 블룸필터의 긍정오류확률은 다음과 같은 식으로 표기된다.
Figure 112013054419012-pat00001
본 발명은 이러한 블룸필터의 특성을 이용하여, 블룸필터를 암호화된 데이터 검색을 위한 인덱스로 사용한다. 즉, 블룸필터를 이용한 기본 검색에서 데이터가 존재하는 것으로 판정되면, 튜플 단위로 암호화된 데이터에 대한 복호화 과정이 이루어지며, 또한 복호화된 데이터 중에서 긍정오류 부분을 제거하면 원하는 결과를 찾을 수 있다.
다시, 도 1을 참조로 하면, 도 1은 블룸필터를 구축하는 방법을 나타낸 것이다.
먼저 데이터 검색에 필요한 키워드와 범위를 나타내는 수치를 모두 데이터라 정의하고, 이러한 데이터는 k 개의 해쉬함수를 통과한다. 해쉬함수란 일방향 함수로서, 해쉬함수의 계산결과에 따른 결과는 블룸필터의 크기 m보다 작으며, 해쉬함수의 결과가 블룸필터에 저장된다.
예를 들어 해쉬함수의 결과가 7이면, 블룸필터의 7번째 비트가 1로 설정된다. 블룸필터는 초기에 모든 비트들이 0으로 설정되어 있으므로, 해쉬함수의 결과에 따라 블룸필터를 1로 설정하는 것은 해당 데이터가 존재한다는 것을 나타내는 것이 된다.
도 2는 본 발명에 따른 데이터베이스 암호화 방법을 설명하기 위한 일실시예 개념도이다.
도면에 도시된 바와 같이, 본 발명이 적용되는 시스템은, 데이터베이스 사용자 부분에 해당하는 DB 클라이언트(20)와, DB 서버(30)를 포함한다. DB 클라이언트(20)는 데이터의 소유자측 단말이고, DB 서버(30)는 데이터 관리를 담당하는 클라우드 서비스 업체측 서버일 수 있다. DB 클라이언트(20)와 DB 서버(30)는 네트워크를 통해 연결되어 있을 수 있다. DB 클라이언트(20)는 사용자 단말(도시되지 않음)에 포함될 수 있다.
DB 클라이언트(20)는 평문 데이터베이스(10)의 내용을 튜플 단위로 암호화하는 동시에, 튜플 내 각 요소들에 대한 해쉬함수를 계산하고, 해쉬함수의 결과를 블룸필터로 구성한다.
이러한 튜플 단위의 암호화 데이터와 블룸필터는 각각 테이블 형식으로 DB 서버(30)에 보관된다(도 6c 참조). 이와 같이 암호화된 데이터와 블룸필더가 각각 테이블 내의 별도의 필드로 보관되어, 실시간 검색이 용이하고, 조인연산에 더욱 효과적으로 대응할 수 있다. 이때, 조인연산이란, 두 개 이상의 테이블에서 관계되는 데이터를 추출하는 연산으로, 예를 들어 신상정보 테이블에서 1970년생을 검색하고, 성적 테이블에서 B 학점 이상인 학생을 동시에 검색하는 연산이다.
본 발명에 의하면, 모든 암호화 과정과 블룸필터 구성과정이 튜플 단위로 이루어지므로 추가 삽입, 혹은 삭제가 가능하다. DB 서버(30)내의 암호화된 DB 구성부분은 암호화된 데이터베이스(E_tuple)과 블룸필터 값(bloom)으로 표기될 수 있다.
도 3은 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 검색하는 과정을 설명하기 위한 일실시예 개념도이다.
사용자(40)가 작성한 평문 질의어(query)는 DB 클라이언트(20)에서 변형되어 DB 서버(30)로 전송된다.
DB 클라이언트(20)는, 평문 질의어 내에 포함된 키워드를 추출하고, 해쉬함수를 이용하여 해쉬함수 결과값을 계산한다. 계산된 해쉬함수의 결과값으로 DB 서버(30)에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 평문 질의어가 변형된다. 예를 들면 다음과 같다.
평문 질의어: 서울에 사는 AB형 혈액형을 가진 사람을 찾으시오.
평문 질의어 형식:
SELECT * FROM Std_info WHERE address = '서울' and blood_type = 'AB'
변형된 질의어 형식:
SELECT E_tuple FROM Std_info_bf
WHERE ((CONVERT(bit, SUBSTRING(bloom, [h1],1)) & 1) = 1
AND (CONVERT(bit, SUBSTRING(bloom, [h2],1)) & 1) = 1
DB 서버(30)는 사용자(40)로부터 입력된 질의어에 포함된 키워드 '서울'과 'AB'에 대한 해쉬함수 결과값에 따른 비트들이 설정된 블룸필터를 찾고, 이에 해당하는 암호문을 DB 클라이언트 모듈(20)로 전송한다.
DB 클라이언트(20)는 이를 복호화키를 이용하여 복호화하여 긍정오류가 발생된 부분은 제외하고 최종 결과를 평문으로 출력할 수 있다.
도 4는 본 발명에 따라 구축된 암호화 데이터베이스를 이용하여 통계 데이터를 추출하는 과정을 설명하기 위한 일예시도이다.
도 3을 통해 설명한 바와 같이, 이 경우에도, 사용자(40)가 입력한 평문 질의를, DB 클라이언트(20)가 변형하여 DB 서버(30)로 전송한다.
즉, DB 클라이언트(20)는 평문 질의어 내에 포함된 키워드를 추출하고, 해쉬함수를 이용하여 해쉬함수 결과값을 계산하고, 계산된 해쉬함수의 결과값으로 DB 서버(30)에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 평문 질의어가 변형된다.
DB 서버(30)는 변형된 질의어를 수신하여, 해쉬함수 결과값에 따른 비트들이 설정된 블룸필터를 찾아, 이에 해당하는 블룸필터의 개수를 확인하여, 이를 DB 클라이언트(20)로 전송할 수 있다.
이때, 도 3에서의 과정과는 달리, 암호문 데이터에 대한 복호화 과정이 필요 없으며, 블룸필터의 개수에 의해 통계 데이터를 추출할 수 있다. 이때, 발생가능한 긍정오류확률에 대해서는 식(1)을 이용하여 최소화할 수 있다. 예를 들어, k=1, m = cn 값을 이용하여 c 값을 조절함으로써, 긍정오류확률을 최소화할 수 있다. c=8 인 경우, 긍정오류 확률은 0.4 % 이하로 줄일 수 있다.
도 5는 본 발명에 따른 암호화 방법을 설명하기 위한 일실시예 흐름도이다.
도면에 도시된 바와 같이, 본 발명의 데이터베이스 암호화 방법은, 평문 데이터베이스의 요소 단위에 대하여 키워드를 추출하고(S1), 추출한 키워드에 대해 해쉬함수를 적용한다(S2). 또한, DB 클라이언트(20)는, 해쉬함수를 적용한 해쉬함수 결과값을 블룸필터로 구성하여(S3), 블룸필터의 결과값을 DB 서버(30)로 전송한다(S4). S1 내지 S4는 데이터베이스에 대한 실시간 검색을 위한 인덱스 생성과정이라 할 수 있다
문자 데이터에 대해서는 키워드를 사용하여 블룸필터로 구성하고, 숫자 데이터에 대하여 다양한 범위형 키워드를 사용하여 블룸필터로 구성함으로써, 범위연산과 집계연산 및 통계분석에 유용하게 사용될 수 있음은, 이미 설명한 바와 같다.
한편, DB 클라이언트(20)는, 평문 데이터베이스의 튜플 단위에 대하여, 암호화키를 이용하여 암호화를 수행하고(S5), 암호화한 튜플 단위의 암호문을 DB 서버(30)로 전송한다.
DB 서버(30)는, 블룸필터의 결과값과 튜플 단위의 암호문을 수신하여, 암호화 데이터베이스를 구축할 수 있다(S7).
도 6a 내지 도 6c는 본 발명의 암호화 방법에 따른 결과를 설명하기 위한 일예시도로서, 도 6a는 평문 데이터를, 도 6b는 종래의 버킷 인덱스를 사용한 암호화 방법에 의해 암호화된 데이터를, 도 6c는 본 발명에 따라 블룸필터를 이용한 암호화 방법에 의해 암호화된 데이터를 나타낸다.
도 6b에 도시된 바와 같이, 종래 버킷 인덱스를 이용한 암호화 방법에 의하면 동일한 크기의 버킷을 사용하게 됨을 알 수 있고, 도 6c를 참조로 하면, 본 발명은 다양한 크기의 버킷을 이용하여 블룸필터로 구성됨을 알 수 있다.
위의 도 6a 내지 도 6c의 예와 같은 데이터베이스에서, 사용자가 질의어를 '1971년생인 학생들을 찾으시오'라고 입력하는 경우, 결과를 나타내면 다음 표와 같다.
평문 버킷 인덱스 방식 블룸필터 방식
처리 시간 0.033801 0.599700 0.264015
검색결과의 수 3332 33363 3342
또한, 위의 도 6a 내지 도 6c의 예와 같은 데이터베이스에서, 사용자가 질의어를 '1980년부터 1991년생까지의 학생들을 찾으시오'라고 입력하는 경우, 결과를 나타내면 다음 표와 같다.
평문 버킷 인덱스 방식 블룸필터 방식
처리 시간 0.063836 1.190568 0.770244
검색결과의 수 39972 66637 39987
위와 같이, 본 발명에 의하면, 종래 버킷 인덱스 방식에 비해, 처리 시간이 매우 빨라지고, 검색결과의 개수도 평문 데이터에 대한 검색결과의 수와 유사함을 알 수 있다.
데이터베이스에 저장된 민감한 개인정보를 보호하는 방법은 민감정보를 암호화하는 것이 최상의 방법이다. 그러나 데이터베이스가 일단 암호화되면 실시간 검색에 상당한 장애가 발생한다. 또한, DB 서버에서 데이터베이스를 암호화하는 경우, 데이터베이스 관리자에 의해 고의로 암호화 및 복호화 키가 누출될 수 있으며, 따라서, 암호화된 내용이 해독될 위험이 있다. 따라서, 데이터베이스의 소유자가 암호화 및 복호화 키를 소유하는 것이 안전하다.
본 발명은, 이와 같이 데이터베이스 관리자와 소유자가 다른 환경, 즉 외주업체에 의해 운영되는 데이터베이스 혹은 클라우드 서비스 업체에서 관리되는 데이터베이스에 대하여, 데이터베이스의 소유자 만의 합법적인 권한과 함께, 암호화된 데이터베이스에 대한 실시간 검색이 가능한 방법을 제안한다.
본 발명은 암호화된 데이터베이스에 대한 실시간 검색을 위하여 블룸필터를 이용한 인덱스 구성방법을 제안하였으며, 문자형 데이터에 대해서는 키워드를 사용하였으며, 숫자형 데이터에 대해서는 상위 바이트들을 이용하여 인덱스로서 블룸필터를 구성함으로써, 동일값 검색, 범위형 검색, 집계 연산 등이 가능한 구조로 제안하였다.
또한, 본 발명은 통계 데이터 분석을 위해서는 오로지 블룸필터만을 체크함으로써 분포를 알 수 있다. 예를 들어, '1970년대에 태어난 여아의 혈액형 분포'와 같은 형태의 범위형 질의어를 일반적인 암호화된 데이터베이스에서 처리하기 위해서는 상당한 시간이 소요되었지만, 본 발명에 의하면, 10년, 1년, 월, 성별 단위의 다양한 종류의 키워드를 사용함으로써, 질의어의 범위에 적합한 키워드가 블룸필터에 저장되어 있기 때문에 보다 빠르게 실시간 검색이 가능하다.
또한, 본 발명은, 데이터의 삽입 및 삭제가 개별적으로 가능한 것으로서, 데이터베이스를 외주업체에서 관리하는 경우에도 그 운용이 용이하며, 데이터베이스를 내부에서 보관하는 경우에도 보안을 효과적으로 유지할 수 있는 동시에, 실시간 검색이 가능하다.
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.
20: DB 클라이언트 30: DB 서버

Claims (10)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 숫자 데이터와 문자 데이터를 포함하는 평문 데이터베이스의 요소단위에 대해 블룸필터를 구성하여 인덱스를 생성하는 단계; 상기 평문 데이터베이스의 튜플단위를 소정의 암호화 키를 이용하여 암호화를 수행하여, 상기 암호화된 튜플을 생성하는 단계; 상기 블룸필터와 상기 암호화된 튜플을 데이터베이스 서버로 전송하는 단계; 상기 데이터베이스 서버가 상기 암호화된 튜플과 상기 블룸필터를 테이블내 개별 필드로 저장하여 암호화된 데이터베이스를 구축하는 단계를 포함하여 암호화한 암호화된 데이터베이스를 상기 데이터베이스 클라이언트 단말에서 검색하는 방법에 있어서, 상기 인덱스를 생성하는 단계는, 상기 평문 데이터베이스의 요소단위에 대하여 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 및 해쉬함수 결과값을 블룸필터로 구성하는 단계를 포함하고, 상기 검색방법은,
    사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계;
    추출한 키워드에 대해 해쉬함수를 적용하는 단계;
    해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 질의어를 변형하여 상기 데이터베이스 서버에 전송하는 단계;
    상기 데이터베이스 서버로부터, 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터에 해당하는 암호문을 수신하는 단계; 및
    수신된 암호문을 복호화하는 단계를 포함하는 검색방법.
  10. 숫자 데이터와 문자 데이터를 포함하는 평문 데이터베이스의 요소단위에 대해 블룸필터를 구성하여 인덱스를 생성하는 단계; 상기 평문 데이터베이스의 튜플단위를 소정의 암호화 키를 이용하여 암호화를 수행하여, 상기 암호화된 튜플을 생성하는 단계; 상기 블룸필터와 상기 암호화된 튜플을 데이터베이스 서버로 전송하는 단계; 상기 데이터베이스 서버가 상기 암호화된 튜플과 상기 블룸필터를 테이블내 개별 필드로 저장하여 암호화된 데이터베이스를 구축하는 단계를 포함하여 암호화한 암호화된 데이터베이스를 상기 데이터베이스 클라이언트 단말에서 검색하는 방법에 있어서, 상기 인덱스를 생성하는 단계는, 상기 평문 데이터베이스의 요소단위에 대하여 키워드를 추출하는 단계; 추출한 키워드에 대해 해쉬함수를 적용하는 단계; 및 해쉬함수 결과값을 블룸필터로 구성하는 단계를 포함하고, 상기 검색방법은,
    사용자가 입력한 평문 질의어에 포함된 키워드를 추출하는 단계;
    추출한 키워드에 대해 해쉬함수를 적용하는 단계;
    해쉬함수 결과를 이용하여, 상기 데이터베이스 서버에 저장된 블룸필터의 비트가 설정되어 있는지 체크할 수 있도록 질의어를 변형하여 상기 데이터베이스 서버에 전송하는 단계; 및
    상기 데이터베이스 서버로부터 변형된 질의어에 포함된 해쉬함수 결과에 따른 비트가 설정된 블룸필터의 개수를 수신하는 단계를 포함하는 추출방법.
KR1020130070095A 2013-06-19 2013-06-19 데이터베이스 암호화 방법 및 이의 실시간 검색 방법 Active KR101476039B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130070095A KR101476039B1 (ko) 2013-06-19 2013-06-19 데이터베이스 암호화 방법 및 이의 실시간 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130070095A KR101476039B1 (ko) 2013-06-19 2013-06-19 데이터베이스 암호화 방법 및 이의 실시간 검색 방법

Publications (1)

Publication Number Publication Date
KR101476039B1 true KR101476039B1 (ko) 2014-12-23

Family

ID=52679804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130070095A Active KR101476039B1 (ko) 2013-06-19 2013-06-19 데이터베이스 암호화 방법 및 이의 실시간 검색 방법

Country Status (1)

Country Link
KR (1) KR101476039B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273467A (zh) * 2017-06-06 2017-10-20 南京搜文信息技术有限公司 一种支持可搜索加密的安全索引结构及其构造方法
CN107659405A (zh) * 2017-11-01 2018-02-02 南京国电南自电网自动化有限公司 一种变电站主子站间数据通信的加密解密方法
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置
WO2021066257A1 (ko) * 2019-10-01 2021-04-08 인하대학교 산학협력단 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
US20220027498A1 (en) * 2020-07-21 2022-01-27 4IQ, Inc. Secure exchange of password presence data
CN114491613A (zh) * 2021-11-11 2022-05-13 北京航空航天大学 高效可搜索的代理隐私集合求交方法及装置
KR102694517B1 (ko) 2023-11-27 2024-08-12 (주)아울시스템즈 데이터베이스 저장 데이터의 암호화 처리 방법 및 데이터베이스 관리 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120020014A (ko) * 2010-08-27 2012-03-07 고려대학교 산학협력단 프라이버시를 보호할 수 있는 집합 연산 시스템 및 그 방법
JP2013506215A (ja) * 2009-09-29 2013-02-21 エヌイーシー ヨーロッパ リミテッド データの確率的処理方法およびシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013506215A (ja) * 2009-09-29 2013-02-21 エヌイーシー ヨーロッパ リミテッド データの確率的処理方法およびシステム
KR20120020014A (ko) * 2010-08-27 2012-03-07 고려대학교 산학협력단 프라이버시를 보호할 수 있는 집합 연산 시스템 및 그 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SAAR COHEN , PRINCETON UNIVERSITY , COMPUTER SCIENCE, (2003.06) *
유천영 외 , 한국정보통신학회논문지 , V.16 NO.5, 2012년, PP-939-946 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273467A (zh) * 2017-06-06 2017-10-20 南京搜文信息技术有限公司 一种支持可搜索加密的安全索引结构及其构造方法
CN107659405A (zh) * 2017-11-01 2018-02-02 南京国电南自电网自动化有限公司 一种变电站主子站间数据通信的加密解密方法
CN107659405B (zh) * 2017-11-01 2019-11-22 南京国电南自电网自动化有限公司 一种变电站主子站间数据通信的加密解密方法
CN110096899A (zh) * 2019-04-29 2019-08-06 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN110096899B (zh) * 2019-04-29 2023-06-23 腾讯科技(深圳)有限公司 一种数据查询方法及装置
KR102259158B1 (ko) * 2019-10-01 2021-06-02 인하대학교 산학협력단 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
KR20210039212A (ko) * 2019-10-01 2021-04-09 인하대학교 산학협력단 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
WO2021066257A1 (ko) * 2019-10-01 2021-04-08 인하대학교 산학협력단 블룸 필터를 이용한 효율적인 랜섬웨어 탐지 방법 및 시스템
US20220027498A1 (en) * 2020-07-21 2022-01-27 4IQ, Inc. Secure exchange of password presence data
US11550949B2 (en) * 2020-07-21 2023-01-10 Constella Intelligence, Inc. Secure exchange of password presence data
CN114491613A (zh) * 2021-11-11 2022-05-13 北京航空航天大学 高效可搜索的代理隐私集合求交方法及装置
CN114491613B (zh) * 2021-11-11 2024-04-16 北京航空航天大学 高效可搜索的代理隐私集合求交方法及装置
KR102694517B1 (ko) 2023-11-27 2024-08-12 (주)아울시스템즈 데이터베이스 저장 데이터의 암호화 처리 방법 및 데이터베이스 관리 시스템

Similar Documents

Publication Publication Date Title
KR101476039B1 (ko) 데이터베이스 암호화 방법 및 이의 실시간 검색 방법
US10762241B1 (en) Third-party platform for tokenization and detokenization of network packet data
US10097522B2 (en) Encrypted query-based access to data
US9503432B2 (en) Secure linkage of databases
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
US9275250B2 (en) Searchable encryption processing system
US7426752B2 (en) System and method for order-preserving encryption for numeric data
US8639947B2 (en) Structure preserving database encryption method and system
CN105681280A (zh) 一种云环境中基于中文的可搜索加密方法
US10664610B2 (en) Method and system for range search on encrypted data
CN106815350A (zh) 一种云环境中动态的密文多关键词模糊搜索方法
US10615976B2 (en) Lightweight key management system for multi-tenant cloud environment
KR100839220B1 (ko) 암호화된 데이터베이스 검색 방법 및 그 시스템
US20230306131A1 (en) Systems and methods for tracking propagation of sensitive data
CN102024054A (zh) 一种面向密文云存储的文档检索方法与系统
US11082205B2 (en) Methods for securing data
US10402587B2 (en) Application-level in-place encryption
US10284535B2 (en) Secure database
US11295635B2 (en) Data processing system and data processing method
CN107203723B (zh) 基于散列表方法的多公共云上的文件存储及其检索方法
CN106874379B (zh) 一种面向密文云存储的多维区间检索方法与系统
CN117744120B (zh) 一种多用户可搜索加密方法及系统
KR100910303B1 (ko) 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법
CN115698996A (zh) 用于安全存储数据的数据存储服务器和客户端设备
JP2018097625A (ja) データベースシステム、暗号化データの検索方法及びコンピュータプログラム

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20130619

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20140529

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20141117

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20141217

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20141217

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20171110

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20171110

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20191125

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20191125

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20201210

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20230110

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20241210

Start annual number: 11

End annual number: 11