KR100859162B1 - 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 - Google Patents

암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 Download PDF

Info

Publication number
KR100859162B1
KR100859162B1 KR1020070104005A KR20070104005A KR100859162B1 KR 100859162 B1 KR100859162 B1 KR 100859162B1 KR 1020070104005 A KR1020070104005 A KR 1020070104005A KR 20070104005 A KR20070104005 A KR 20070104005A KR 100859162 B1 KR100859162 B1 KR 100859162B1
Authority
KR
South Korea
Prior art keywords
query
encryption
name
encrypted
item
Prior art date
Application number
KR1020070104005A
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 KR1020070104005A priority Critical patent/KR100859162B1/ko
Application granted granted Critical
Publication of KR100859162B1 publication Critical patent/KR100859162B1/ko
Priority to US12/251,874 priority patent/US8055678B2/en
Priority to EP08018051.6A priority patent/EP2051183B1/en
Priority to JP2008267495A priority patent/JP4972067B2/ja

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
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

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

Abstract

본 발명은 일부 칼럼을 암호화한 데이터베이스를 관리하는 데이터베이스관리시스템(DBMS)에게 요청하는 사용자의 암호화전 데이터베이스 구조에 기반한 쿼리를 암호화한 데이터베이스 구조의 쿼리로 변조하여, DBMS에 처리하도록 함으로써, DBMS는 쿼리가 암호화와 관련된 항목이 포함되는지 여부와 관계없이 일관적으로 쿼리를 처리할 수 있고 암호화 쿼리의 처리성능을 획기적으로 개선한 쿼리변조를 통한 쿼리 처리 장치 및 방법에 관한 것이다.
데이터베이스, DBMS, 암호화, 복호화, 쿼리, 변조, 쿼리처리, 쿼리변조, 암복호화 방법, 테이블명, 칼럼 암호화, 필드명, 필드값

Description

암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법{Query processing system and methods for a database with encrypted columns by query encryption transformation}
본 발명은 일부 칼럼을 암호화한 데이터베이스의 DBMS(데이터베이스 관리시스템)에게 요청하는 사용자의 암호화전 데이터베이스 구조에 기반한 쿼리를, 암호화한 데이터베이스 구조의 쿼리로 변조하여, 암호화 쿼리의 처리성능을 획기적으로 개선한 것으로서, 쿼리변조를 통한 쿼리 처리 장치 및 방법에 관한 것이다.
도 1은 일부 칼럼을 암호화할 수 있는 종래의 데이터베이스 관리시스템(DBMS)의 구성도이다. 도 1에 도시된 바와 같이, 데이터베이스의 일부 칼럼을 암호화할 수 있는 데이터베이스 관리시스템(DBMS)(100)은 데이터베이스(110)와, 쿼리처리부(120), 뷰(View)(130), 암호화모듈(150)을 포함하고 있다. 쿼리처리부(120)는 사용자(160)가 데이터베이스에 대한 쿼리요청이 있을 경우 쿼리에 해당하는 데이터베이스의 테이블을 참조하여 그 결과를 추출하여 사용자(160)에게 결과값을 전송해 주는 역할을 한다(사용자에게 결과를 보여주기 위한 가상테이블이나 생성된 테이블을 DB에 저장하고 테이블을 반환하기도 한다.). 이는 일반적인 DBMS의 기능 이다. 만약 요청된 쿼리내에 암호화되어 있는 칼럼이 있는 테이블이나 그 칼럼의 필드값을 참조하는 경우는 암호화된 테이블을 처리하는 것이므로, 이를 뷰(View)(130)가 처리하게끔 한다. 뷰(View)(130)는 일부 칼럼이 암호화된 테이블을 전문적으로 다루기 위한 것으로서, 사용자에게 암호화된 테이블의 구성을 알 수 있도록 암호화전 테이블의 구조를 볼 수 있게 해주고, 이 구조에 기반하여 사용자가 쿼리를 작성하여 요청하면 이 쿼리를 해석하여 처리해 주는 기능을 담당한다. 즉, 암호화된 테이블에 대하여 암호화전 테이블 형태로 보여주는 일종의 윈도우(창)와 같은 것으로 볼 수 있다. 뷰(View)는 암호화된 필드값의 암호화와 복호화를 위하여 암호화 모듈(150)을 이용한다. 종래의 데이터베이스 관리시스템(100)은 기본적인 암호화 방법에 관한 암호화 모듈(150)을 자체적으로 가지고 있기도 하지만, 그 외에도 외부의 암호화 모듈(155)을 참조하여 호출하는 경우도 적지 않다. 상기와 같은 암호화 모듈(155)의 외부참조는 시스템이 복잡해지고 속도저하를 일으키는 요인이기도 하다.
도 2는 뷰를 통해 데이터베이스의 칼럼 암호화를 할 때 테이블을 생성하는 과정을 보여주는 예시도이다.
데이터베이스의 칼럼 암호화는 테이블에서 암호화의 필요성이 있는 일부의 칼럼만을 암호화한다. 즉, 0 개이상에서 전체 칼럼을 암호화할 수 있다. 먼저 칼럼 암호화를 위하여 암호화전 테이블(210)과 동일한 테이블을 생성하고, 생성된 테이블에 암호화하고자 하는 칼럼에 해당하는 암호화된 칼럼(226)을 추가한다.
이 테이블이 곧 암호화된 테이블(220)이 된다. 암호화된 테이블(220)의 명칭 은 일정한 명명규칙에 의하여 암호화전 테이블(210)의 이름과 연관되어 정하여지며, 양 명칭간에는 1:1 맵핑이 되어 명명규칙을 알면 한쪽 명칭만 알아도 나머지 명칭을 알 수 있다. 새로 추가된 암호화된 칼럼(222)에 해당하는 암호화된 필드명(226)은 암호화전 테이블(210)의 필드명(216)에 의하여 정해지며, 일정한 1:1 맵핑의 명명규칙에 의하여 생성되어 한쪽 명칭만 알아도 나머지 명칭을 알 수 있다. 상기 테이블명과 필드명은 암호화전 명칭과 암호화된 명칭을 암호화관련 명칭테이블(140)에 저장하여 관리한다. 따라서 상기 명칭테이블(140)에 명칭이 존재하는지 여부로 암호화관련여부를 알 수 있고, 매핑을 통해 대응되는 다른 쪽의 명칭을 알 수 있다.
암호화된 칼럼(226)이 만들어지면, 암호화전 칼럼(216)에 있는 모든 필드값(218)을 암호화하여 암호화된 칼럼(226)에 입력한다. 그리고 암호화된 테이블(220)의 암호화전 필드명에 해당하는 필드명의 필드값을 모두 null로 처리한다. 필드값의 암호화는 1:1 맵핑 암복호화 방법(알고리즘)에 의하여 암호화된다. 1:1 맵핑에 의한 암복호화 방법이므로, 암호화된 필드값(228)만으로 복호화하여 원래의 레코드 필드값(218)으로 복원이 가능하다.
도 2의 예시를 더 자세히 설명하기로 한다. 도 2a는 암호화전 테이블이고, 도 2b는 암호화된 이후의 테이블이다. 암호화전 테이블인 info 로부터 동일한 테이블인 암호화된 테이블 info_encrypt를 생성하고, 암호화 대상이 되는 칼럼인 oc_code에 해당하는 암호화된 칼럼인 oc_code_sec 을 만든다. 그리고 필드명이 oc_code인 필드값을 모두 암호화하여 칼럼 oc_code_sec 에 넣는다. 그리고 암호화 대상이 되는 칼럼인 oc_code에는 모두 null로 처리한다. 또한, 암호화관련 명칭테이블(140)에는 암호화와 관련하여 새로 만들어진 테이블명 info와, 암호화 칼럼의 필드명인 age와 oc_code 에 대해 각각 암호화전 명칭과 암호화후 명칭을 짝으로 저장한다.
또한, 일부 칼럼이 암호화된 테이블이 만들어지면 이 테이블과 관련된 암복호화 트리거(Trigger)가 각 레코드별로 만들어진다. 일반적인 DBMS에서 트리거는 테이블에 레코드 업데이트나 삽입을 할 때 자동으로 실행되는 프로시져인데, 암복호화 트리거는 해당 필드값에 대한 암복호화를 자동으로 하기위하여 만들어진 트리거이다. 종래의 뷰를 이용한 기술은 상기와 같이, 필드값의 암복호화를 트리거를 통해 이루어짐으로써 일괄적으로 처리하는 작업에서 과도하게 암복호화를 많이 수행하는 원인을 제공한다.
도 3은 종래의 뷰를 이용한 암호화와 관련된 쿼리를 처리하는 방법에 대한 흐름도이다. 사용자는 뷰(130)에서 제공하는 암호화전 테이블 구조를 보고 이 구조에 기초하여 쿼리를 작성하게 된다. 즉, 사용자는 암호화전 테이블 구조로 필요한 쿼리를 요청하게 된다(S310). 사용자가 요청한 쿼리내에 암호화와 관련된 필드명이나 테이블이 있는지 여부를 판단한다(S320). 구체적으로 암호화관련 명칭매핑테이블(140)을 참조하여 이 테이블에 명칭이 존재하면 “있음”으로 판단한다. 만약 쿼리내에 암호화된 테이블을 참조하지 않는다면, 일반적인 데이터베이스 쿼리처리와 같이 테이블에 접근하여 쿼리를 처리하고(S331), 그 결과를 생성하여 사용자에게 결과테이블을 보여준다(S340). 사용자의 쿼리내에 암호화된 테이블을 참조하는 경 우에는, 먼저 쿼리내에 표현된 암호화전 테이블의 이름으로부터 명칭매핑테이블(140)을 참조하여 암호화된 테이블 이름을 찾아낸다(S321). 찾아낸 암호화된 테이블의 암호화된 칼럼의 모든 필드값을 복호화하여 쿼리를 처리한다(S323). 예를 들면, 암호화된 필드값에 대한 일정한 조건을 만족하는 경우(이는 통상 쿼리의 조건을 표시하는 WHERE 절에 표시하게 된다)에 해당하는 레코드만 포함하는 테이블을 추출하고 싶다면, 모든 레코드의 암호화된 필드값을 복호화하여 그 값이 상기 조건에 만족하는지를 검사한다. 특히, 조건식이 “<” 나 “>” 등 비교를 나타내는 경우는 암호화된 값으로는 비교할 수 없기 때문에 모두 복호화하여 조사할 수밖에 없다. 조건에 만족하는 레코드만 추가하여 결과값을 생성한다(S324). 생성된 쿼리의 결과값을 사용자에게 전송하여 볼 수 있게 한다(S340). 뷰(130)는 통상 테이블을 선택(SELECT)하여 결과값을 볼 때 상기와 같이 암복호화하여 결과값을 가상테이블로 보여줌으로써 사용자는 암복호화를 알지 않아도 암호화전 테이블로서 보고 그 처리된 결과값도 암호화전 값들로 보게된다. 결과값은 가상테이블 형태로 보여주거나 생성된 결과값에 대한 테이블을 DB에 저장하고 그 테이블을 반환하기도 한다. 상기와 같이 모든 레코드에 대한 복호화를 하는 작업은 일반 쿼리처리에 비하여, 암호화된 필드값을 포함한 쿼리의 처리성능을 저하시키는 요인이 된다. 그러나 테이블에서 레코드의 삽입이나 갱신은 상기와 같이 그 결과값을 굳이 반환하지 않아도 되므로, 뷰에서 트리거에 의해 실행된다. 즉, 앞서 본 바와 같이, 레코드를 삽입이나 갱신할 때 이 트리거가 작동하여 암복화화 과정을 거쳐 처리된다.
상기한 종래 시스템의 문제점은 크게 암호화 모듈을 참조하기 위하여 발생되 는 성능저하와 암호화와 관련된 테이블의 모든 레코드를 복호화하기 때문에 발생되는 성능저하로 볼 수 있다. 앞서 잠시 설명한 바와 같이, 암호화 모듈은 시스템 내부에도 있지만 외부에도 존재하므로, 이들을 일률적으로 관리하기가 어렵고 적정한 암호화 모듈을 찾는데도 시간이 많이 걸리게 된다. 또한, 외부의 암호화모듈을 이용하는 데는 내부 암호화 모듈에 비해 비용이 더 들어가게 된다. 암호화모듈이 한번 실행하는 시간은 극히 작은 시간이나, 레코드의 수가 방대한 경우, 모든 레코드 수에 대하여 암호화된 칼럼들의 필드값들을 모두 암복호화해야 하므로, 레버리지 효과가 발생하여 전체적으로 엄청난 속도 저하가 발생할 수 있다. 예를 들면, 암호화된 필드값의 필드명이 3개이고(즉, 필드명에 해당하는 모든 필드값인 컬럼이 3개), 레코드가 100,000개인 경우, 이 필드값들의 조건을 모두 검사하려면 3 * 100,000 번을 복호화해야 한다. 즉, 암호화된 필드값의 필드명의 수가 많을수록, 레코드가 많을수록 조건검사를 위한 시스템의 부하는 엄청나게 커지게 된다.
본 발명은 상기와 같은 암호화된 필드값이 있는 모든 레코드를 복호화하는 과정에 의해 발생되는 시스템의 성능저하로 인한 쿼리처리 시간이 지연되는 문제점을 해결하기 위하여 안출된 것으로, 종래의 암호화 데이터베이스관리시스템(DBMS)의 앞단에서 사용자 쿼리를 받아 암호화 데이터베이스 구조의 쿼리로 변조하여 데이터베이스 관리시스템에 전달함으로써 암호화 쿼리의 처리성능을 획기적으로 개선하는 사용자 쿼리 처리 장치 및 방법을 제공하는 것을 목적으로 한다.
또한, 상기와 같이 데이베이스 관리시스템의 내외부에 있는 암호화 모듈을 관리하고 참조함으로써 발생되는 쿼리 처리의 성능저하를 극복하기 위하여, 암호화모듈을 통합적이고 일률적으로 내부에서 관리할 수 있는 사용자 쿼리 처리 장치 및 방법을 제공하는 것을 목적으로 한다.
또한, 종래의 데이터베이스 관리시스템은 보통 상용화 제품으로서 이러한 구성을 내부에 일체로 구현하고 있으므로, 사용자와 데이터베이스 관리시스템의 사이에 사용자 쿼리 처리 장치를 둠으로써, 종래의 데이터베이스 관리시스템을 그대로 이용하여 개선비용을 최소화 하는 사용자 쿼리 처리 장치 및 방법을 제공함을 목적으로 한다.
또한, 종래의 뷰를 이용한 암호화 처리 및 방법에서는 암호화전 테이블을 기초로 한 쿼리결과는 암호화된 테이블을 기초로 한 쿼리결과와 완전히 대응되도록 호환성(Transparency)을 제공해준다. 그러나 특수한 경우 종래의 기술은 호환성을 제공하지 못하는 경우가 있다. 예컨대 DBMS는 테이블이 크기가 방대하면 다수의 파티션(partition)으로 나누고 이들 파티션을 링크로 관리하는 경우가 있다. 뷰에 의해 처리되는 가상테이블은 파티션에 대한 링크관리가 제대로 되지 않아 호환성을 완전히 보장하지 못한다. 본 발명은 완전한 호환성이 제공되는 사용자 쿼리 처리 장치 및 방법을 제공함을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명은 일부 칼럼을 암호화한 데이터베이스를 관리하는 데이터베이스 관리시스템(DBMS)(100)에게 사용자(160)가 암호화전 DB구조에 기반한 쿼리를 요청하면, 상기 쿼리를 처리하기 위한, 쿼리변조를 통한 쿼리 처리장치(400)에 관한 것으로서, 상기 DBMS(100)의 암호화관련 테이블에서 암호화하는 칼럼에 해당하는 필드명과 상기 칼럼을 포함하는 테이블명에 대하여, 암호화전 명칭과 암호화된 명칭을 짝으로 저장하는 명칭매핑테이블(440); 사용자(160)가 DBMS(100)에 요청하는 쿼리를 캡쳐(Snapping)하고 DBMS에 변조된 쿼리를 전송하고, DBMS에서 쿼리가 처리된 결과값을 받아오는 패킷처리부(410); 상기 패킷처리부(410)에서 캡쳐한 쿼리를 분석하여 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 암호화처리부(450)를 통해 암호화하여 암호화된 데이터베이스를 참조할 수 있는 쿼리로 변조하는 쿼리변조부(420); DBMS(100)에서 변조된 쿼리로 처리된 결과값에서 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 암호화처리부(450)를 통해 복호화하여 암호화전 데이터베이스에 대응하는 결과값으로 변조하는 결과값변조부(430); 상기 쿼리변조부(420)의 호출에 의하여 암호화와 관련된 항목을 암호화하고, 결과값변조부(430)의 호출에 의하여 암호화와 관련된 항목을 복호화하는 암호화처리부(450);를 포함하는 것을 특징으로 한다.
또, 본 발명은 쿼리변조를 통한 쿼리 처리장치에 있어서, 쿼리에서의 항목이 테이블명(611)과 필드명(612)이면서 상기 명칭매핑테이블(440)에 있거나, 상수값(613)이면서 상기 항목을 포함하는 관계식의 변수가 상기 명칭매핑테이블(440)에 있는 필드명(612)이면, 암호화와 관련된 항목이고; 결과값에서의 항목이 테이블명(711)과 필드명(712)이면서 상기 명칭매핑테이블(440)에 있거나, 상수값(713)이면서 상기 항목을 포함하는 관계식의 변수가 상기 명칭매핑테이블(440)에 있는 필드명(712)이면, 암호화와 관련된 항목인 것을 특징으로 한다.
또, 본 발명은 쿼리변조를 통한 쿼리 처리장치에 있어서, 상기 쿼리변조부(420)는 상기 테이블명(611)과 상기 필드명(612)을 상기 명칭매핑테이블(440)에 짝으로 저장된 명칭으로 변환하고, 상기 상수값(613)을 상기 암호화처리부(450)에 의하여 암호화한 값으로 대체함으로써, 암호화된 데이터베이스를 참조할 수 있는 쿼리로 변조하고,; 상기 결과값변조부(430)는 상기 테이블명(711)과 상기 필드명(712)을 상기 명칭매핑테이블(440)에 짝으로 저장된 명칭으로 변환하고, 상기 필드값(713)을 상기 암호화처리부(450)에 의하여 복호화한 값으로 대체함으로써, 결과값을 암호화전 데이터베이스에 대응하는 결과값으로 변조하는 것;을 특징으로 한다.
또, 본 발명은 쿼리변조를 통한 쿼리 처리장치에 있어서, 상기 패킷처리부(410)는, 캡쳐한 쿼리내에 암호화와 관련된 항목이 있는지 여부를 판단하고 상기 항목이 있으면 상기 쿼리변조부(420)를 호출하여 쿼리변조를 하도록 하고, 상기 항목이 없으면 바로 DBMS(100)로 패킷을 전송하는 것을 특징으로 한다.
또, 본 발명은 쿼리변조를 통한 쿼리 처리장치에 있어서, 암호화처리부(450)는 암복호화에 필요한 모듈을 내부적으로 보유하는 것을 특징으로 한다.
또한, 본 발명은 일부 칼럼을 암호화한 데이터베이스를 관리하는 DBMS(100)에게 사용자(160)가 암호화전 DB구조에 기반한 쿼리를 요청하면, 상기 쿼리를 처리하기 위한, 쿼리변조를 통한 쿼리 처리방법에 관한 것으로서, 상기 DBMS(100)가 암호화관련 테이블을 생성할 때, 암호화하는 칼럼에 해당하는 필드명과 상기 칼럼을 포함하는 테이블명에 대하여 암호화전 명칭과 암호화된 명칭을 짝으로 저장하는 명칭매핑테이블(440)을 만드는 매핑테이블생성단계(S510); 사용자가 DBMS에 요청하는 쿼리를 캡쳐(Snapping)하는 패킷캡쳐단계(S520); 캡쳐한 쿼리를 분석하여 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 암호화하여 암호화된 데이터베이스를 참조할 수 있는 쿼리로 변조하는 쿼리변조단계(S530); 변조된 쿼리로 DBMS에 쿼리를 요청하고 처리된 결과값을 받는 쿼리요청단계(S540); DBMS(100)에서 변조된 쿼리로 처리된 결과값에서 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 복호화하여 암호화전 데이터베이스에 대응하는 결과값으로 변조하는 결과값변조단계(S550); 변조된 결과값을 사용자에게 보여주는 결과전송단계(S560);를 포함하는 것을 특징으로 한다.
또, 본 발명은 쿼리변조를 통한 쿼리 처리방법에 있어서, 상기 쿼리변조단계(S530)는, 쿼리내 항목들을 차례로 읽어오는 단계(S531)와; 읽어온 항목이 테이블명(611)이거나 필드명(612)이고 암호화와 관련이 있으면, 상기 명칭매핑테이블(440)을 이용하여 변환하는 단계(S532); 읽어온 항목이 상수값(613)이고 상기 상수값(613)이 포함되는 관계식의 변수가 암호화와 관련이 있는 필드명(612)이면, 상기 상수값(613)을 암호화한 값으로 대체하는 단계(S534); 쿼리내 더 읽을 항목이 있는지를 판단하여 더 있으면 항목을 읽어오는 단계(S531)를 다시 수행하고, 없으면 상기 쿼리요청단계(S540)로 넘어가는 단계;를 포함하고; 상기 결과값변조단계(S550)는, 상기 결과값으로 받은 테이블명(711)이 암호화와 관련이 있으면 상기 명칭매핑테이블(440)을 이용하여 변환하는 단계(S552)와; 상기 결과값으로 받은 테이블의 필드명(712)이 암호화와 관련이 있으면 상기 명칭매핑테이블(440)을 이용하여 변환하고, 상기 필드명에 해당하는 모든 필드값을 복호화하여 대체하는 단계(S554);를 포함하는 것을 특징으로 한다.
또, 본 발명은 쿼리변조를 통한 쿼리 처리방법에 있어서, 상기 (S532)단계는, 읽어온 쿼리내 항목이 테이블명(611)이거나 필드명(612)이면서 명칭매핑테이블(440)에 있으면, 상기 명칭매핑테이블(440)에서 상기 항목에 대해 짝으로 저장된 값으로 변환하고, 상기 (S552)단계 또는 (S553)단계는, 결과값으로 받은 테이블명(711) 또는 필드명(712)이 명칭매핑테이블(440)에 있으면, 상기 명칭매핑테이블(440)에서 상기 테이블명(711) 또는 필드명(712)에 대해 짝으로 저장된 값으로 변환하는 것을 특징으로 한다.
상술한 바와 같이, 뷰(View)를 사용하는 종래의 암호화 항목이 포함된 쿼리의 처리장치 및 방법은 쿼리처리시 암호화모듈을 내부에서 일률적으로 관리하지 못하고 외부의 암호화모듈을 참조함으로써 전체적인 성능저하를 초래하나, 본 발명인 쿼리변조를 통한 쿼리처리 장치 및 방법은 자체에서 암호화모듈을 일률적으로 관리하고 직접 호출하여 데이터베이스 관리시스템(DBMS)의 자원(Resource) 공유없이 자 체 자원을 사용함으로써, 효율적인 속도를 낼 수 있다. 특히, 하나의 필드값을 암복호화하는 과정은 종래의 기술에 비해 아주 미미한 속도차이가 날 수 있지만, 암복호화 처리횟수가 늘어날수록 그 차이는 아주 크게 벌어진다. 암복화와 관련된 쿼리를 처리하는 경우에는 조건에 해당되는지 비교하기 위해 칼럼의 각 값을 복호화해야만 하기 때문에, 테이블의 크기가 몇십만, 몇백만이 되는 경우 모든 레코드의 복호화를 위해 처리속도 차이는 아주 크게 벌어지게 된다.
또한, 뷰를 사용하는 종래의 암호화 쿼리의 처리방법은 트리거 등 레코드에 접근했을 때 암복화하는 프로그램이 자동실행되는 구조를 가지기 때문에, 불필요한 암복호화를 수행하는 경우가 있다. 그러나 본 발명은 쿼리자체에 대한 암복호화 절차를 통하여 일반 쿼리를 처리하는 방식을 취하므로, 뷰(View) 방식보다 적어도 같거나 적은 수의 암복호화 과정을 발생시킨다. 이 처리횟수가 가장 큰 차이가 나는 것은 쿼리명령인 UDATE를 실행할 때이다. 예를 들면, 암호화된 칼럼전체를 동일한 값으로 채우려 하는 경우, 종래의 방법은 갱신(update)하기 위해 칼럼의 각 필드에 접근하면 무조건 트리거가 발생되어 암복호화가 처리되어 전체적으로 레코드 수의 2배만큼 암복호화가 일어난다. 반면, 본 발명은 쿼리변조시 한번만 암호화가 실행된다. 통상 갱신쿼리는 “어떤 조건을 만족하는 경우 일정한 값으로 갱신한다” 형태도 많으므로 여러 레코드를 한꺼번에 갱신하는 경우가 다반사다.
따라서 본 발명은 암복호화 함수의 단일처리속도 개선과 암호화 처리횟수의 개선으로 레코드의 수가 많아질수록 종래의 기술에 비해 아주 획기적인 성능개선을 하였다. 보다 구체적으로, 종래기술과 본 발명의 성능차이를 도 8에서 보여주고 있 다. 도 8는 종래기술과 본 발명을 실제로 테스트하여 발생된 성능결과를 도시한 것이다. 도 8a는 암호화된 3개의 필드명에 대하여 100, 1,000, 10,000개의 레코드를 처리할 때의 성능비교이고, 도 8b는 암호화된 1개의 필드명의 필드값들에 대하여 최대 10만개의 레코드를 처리한 결과를 보여주는 것이다. 도 8에서 첫번째 그래프 막대는 암호화를 하지 않았을 경우의 처리속도이고, 두번째 그래프 막대는 종래기술에 의한 쿼리처리를 했을 경우의 처리속도이며, 마지막 그래프 막대는 본 발명에 의한 처리속도를 나타낸다.
또한, 본 발명은 종래의 뷰(View)를 이용한 쿼리처리 방법과 동일하거나 그 이상의 호환성(Transparency)을 제공한다. 종래의 뷰를 이용한 암호화와 관련된 쿼리처리는 특수한 경우, 예컨대, 다수의 파티션(partition)으로 나누고 이들 파티션을 링크로 관리하는 경우 등에는 호환성을 제공하지 못하는 경우가 발생한다. 그러나 본 발명은 변조된 쿼리를 통해 암호화된 테이블을 일반 테이블과 같은 방식으로 접근하므로 100% 호환성을 제공해준다.
이하, 본 발명의 쿼리변조를 통한 쿼리 처리장치 및 방법을 참조도면을 통하여 상세히 설명하고자 한다.
도 4는 본 발명의 쿼리변조를 통한 쿼리 처리장치의 바람직한 일실시예의 구성을 도시한 것이다.
도 4에 보는 바와 같이, 본 발명의 쿼리변조를 통한 쿼리 처리장치는 패킷처리부(410)와, 쿼리변조부(420), 결과값변조부(430), 명칭매핑테이블(440), 암호화 처리부(450)로 구성되어 있다.
상기 명칭매핑테이블(440)은 DBMS(100)에서 암호화된 테이블(220)과 관련된 테이블명과 필드명에 대하여 변환전 명칭과 변환된 명칭을 짝으로 저장하는 암호화관련 명칭테이블(140)을 읽어와 동일한 값을 저장하는 테이블이다. 더 자세하게는, 앞서 종래의 기술에서 본 바와 같이, 암호화된 테이블(220)을 생성할 때 암호화하는 칼럼의 테이블명과 이 칼럼을 포함하는 테이블명을 명명규칙에 의하여 새롭게 만든다. 이 때 암호화전 명칭과 명명규칙에 의해 만들어진 명칭을 암호화관련 명칭테이블(140)에 짝으로 저장하여 관리하여, 상기 명칭테이블(140)에 명칭이 존재하는지 여부로 암호화관련여부를 알 수 있고, 매핑을 통해 대응되는 다른 쪽의 명칭을 알 수 있다. 명칭매핑테이블(440)을 이용하여 명칭을 바꾸는 것을 “변환”이라고 칭하고, 이것은 데이터를 암복화 방법에 의하여 암호화하거나 복호화하는 것과 구별한다. 즉, 변환하는 것은 명칭매핑테이블(440)에 저장된 짝으로 대체하는 것이고, 암복화하는 것은 암복화 방법에 의해 변경되는 것을 의미한다.
상기 패킷처리부(410)는 사용자(160)가 DBMS(100)에 요청하는 쿼리를 캡쳐(Snapping)하고 DBMS에 변조된 쿼리를 전송하고, DBMS에서 쿼리가 처리된 결과값을 받아온다. 통상 사용자(160)와 DBMS(100)는 네트워크로 연결되어 송수신하므로, 패킷형태로 전송되어 패킷처리부(410)는 사실상 패킷을 캡쳐하게 된다. 캡쳐된 패킷을 분석하여 사용자가 요청한 쿼리내에 암호화된 관련된 항목이 존재하는 경우에는 쿼리변조부(420)를 호출하여 쿼리를 변조하도록 한다. 또한, 패킷처리부(410)는 변조하여야 하는 경우는 변조된 쿼리를, 그러하지 않는 경우는 원래 쿼리를 DBMS(100)에 전송함으로써 DBMS(100)가 쿼리를 처리하도록 한다. 또한, 패킷처리부(410)는 DBMS(100)에서 처리된 쿼리의 결과를 받고, 그 결과값이 암호화와 관련된 항목이 존재하면 암호화전 테이블로 변조하기 위하여 결과값변조부(430)를 호출 하여 처리하도록 한다. 그리고 패킷처리부(410)는 결과를 사용자(160)에게 전송하여 그 결과를 볼 수 있도록 한다.
패킷처리부(410)에서 쿼리내 항목이 암호화와 관련된지 여부는 쿼리내 항목이 상기 명칭매핑테이블(440)에 존재하는지 여부에 의해 판단할 수 있다. 이는 이후에 쿼리변조부에서 설명되는 방법과 유사하다. 단지 암호화와 관련된 항목을 변환하지 않는다는 차이만 있다.
패킷처리부(410)는 쿼리내 항목이 암호화와 관련되는지 여부를 판단하지 않고 바로 패킷을 쿼리변조부(420)를 호출하여 처리하도록 할 수 있다. 암호화와 관련되는지 여부를 판단하기 위해서는 쿼리내 항목을 차례로 읽어 판단해야 하는데 이 과정은 이후 설명될 쿼리변조부(420)에서 똑같이 처리되는 작업이다. 따라서 쿼리변조부(420)에서 일괄적으로 처리할 수 있고, 만약 암호화와 관련된 항목이 없다면 쿼리변조부(420)에서 사용자가 요청했던 원 쿼리와 동일한 쿼리를 반환할 것이다. 특히, 암호화와 관련 항목이 없는 경우, 패킷처리부(410)에서 이를 판단한다면 쿼리의 모든 항목을 다 읽어야 하므로 쿼리변조부(420)에서 처리되는 만큼의 처리비용이 든다. 따라서 패킷처리부(410)의 암호화관련여부 판단은 불필요한 작업이 될 수 있다.
쿼리변조부(420)는 쿼리내에 암호화와 관련된 항목이 포함되어 있는 항목이 있는 경우 그 항목을 변환하거나 암호화하여 쿼리를 변조한다. 변조된 쿼리(620)는 패킷처리부(410)를 통해 DBMS(100)에서 처리되도록 한다.
쿼리의 변조에 대한 상세한 설명은 도 6을 참조하여 하고자 한다. 도 6은 쿼 리의 가장 일반적인 명령어인 SELECT 문의 한 예에 대한 변조를 보여주고 있다. 도 6a는 사용자가 요청하는 쿼리이고, 도 6b는 상기 쿼리를 변조한 쿼리이다. 사용자가 요청한 쿼리(610)에는 SELECT, FROM, WHERE 등의 쿼리 명령어와, 테이블명(611), 필드명(612), 상수값(613)의 사용자 항목으로 구분된다. 쿼리의 변조는 쿼리 명령어는 그대로 둔 채, 암호화와 관련된 사용자 항목만을 변조한다. 사용자 항목에서도 암호화와 관련이 없는 항목도 그대로 둔다. 암호화와 관련되는지 여부의 판단은 사용자 항목의 종류에 따라 다르다.
쿼리내의 항목이 테이블명(611)이나 필드명(612)인 경우에는 상기 명칭매핑테이블(440)에 존재하는지 여부로 판단한다. 즉, 상기 명칭매핑테이블(440)에 존재하면 암호화와 관련이 있는 것으로 보고, 상기 명칭매핑테이블(440)에 짝으로 있는 명칭이 암호화된 데이터베이스에 대응되는 명칭이다. 따라서 짝으로 있는 명칭으로 변환하여 쿼리를 변조한다. 예컨대, 도 6에서 보는 바와 같이, 테이블명 info는 명칭매핑테이블(440)에 있을 것이고 그 대응되는 암호화된 명칭은 짝인 명칭인 info_encrypt 이므로, 이 값으로 변환한다. 필드명 age 도 같은 이유에 의해 짝인 명칭인 age_sec 으로 변환된다.
또한, 쿼리내 항목이 상수값(613)인 경우를 보자. 암호화와 관련된 상수값(613)이란 암호화와 관련된 필드명과 관계되는 식에서의 상수값을 말한다. 쿼리내의 조건 등은 필드명과 필드명, 필드명과 상수값 등의 관계를 표현하는 방식으로 표현되는 단위 관계식이다(괄호를 이용하여 단위관계식을 포함하여 복잡하게 하는 관계식도 있다). 이때 필드명과 상수값에 의하여 표현되는 관계식 중에서 필드명이 암호화와 관련된 필드명인 경우 이 관계식에서의 상수값이 암호화와 관련된 상수값이다. 필드명이 암호화와 관련되는지 여부의 판단은 앞서 본 바와 같이, 명칭매핑테이블(440)에 상기 필드명이 존재하는지로 판단한다.
도 6의 예를 보면, WHERE 절에 oc_code = 'A230' 의 관계식이 있는데, 필드명인 oc_code가 암호화와 관련된 필드명이므로 상수값(613)인 'A230'은 암호화와 관련된 상수값이 되는 것이다. 또한, 암호화와 관련된 상수값의 암호화는 이 상수값이 포함된 관계식의 필드명의 필드값을 암호화하는 암호화방법과 동일한 방법으로 암호화한다. 앞선 도 6의 예를 보면, 필드명인 oc_code에 해당하는 필드값을 암호화하는 방법으로 상수값(613) 'A230'을 암호화한다. 상수값을 암호화하는 방법은 필드값을 암호화하는 방법과 동일한 방법으로서, 앞서 종래의 기술과 같이 1:1 맵핑이 가능한 암호화 방법을 이용한다.
결론적으로, 변조된 쿼리(620)는 사용자 쿼리(610)에서 암호화와 관련된 필드명(612)과, 테이블명(611), 상수값(613)을 암호화된 테이블에 상응하는 암호화된 테이블명(621), 필드명(622), 상수값(623)으로 변환하거나 암호화한 쿼리를 말한다. 변조된 쿼리(620)는 암호화와 관련된 사용자 항목만 변경되었으므로, 일반 쿼리와 같은 형태이다. 또한, 암호화된 테이블과 필드명도 그 명칭이 원래 명칭과 다를 뿐, 일반적인 테이블과 필드명과 같은 형태이다. 즉, DBMS에 일반적인 쿼리를 요청하듯이 쿼리요청이 가능하고 DBMS도 일반적인 쿼리를 처리하듯 처리한다. 따라서, 종래의 암호화 DBMS에서 암호화와 관련하여 전문적으로 처리해 주던 뷰(View)를 이용하지 않아도 된다.
앞서 설명한 패킷처리부(410)에서 쿼리내에 암호화와 관련된 항목이 포함되어 있는지 여부의 판단을 보다 자세히 설명하고자 한다. 쿼리내에 암호화된 칼럼의 암호화전 필드명(612)이 있거나 암호화전 칼럼을 포함하는 테이블명(611)이 포함되어 있는 경우가 쿼리내에 암호화와 관련된 항목이 포함되는 경우이다.
다시 도 4를 참조하여, 결과값변조부(430)를 설명하고자 한다. 결과값변조부(430)는 변조된 쿼리에 의하여 생성된 결과값에서 암호화와 관련된 항목을 변환하거나 복호화하여 암호화전 데이터베이스에 상응하는 결과값으로 변조한다. 변조된 결과값은 사용자(160)에게 보내져 그 결과를 볼 수 있도록 한다.
결과값의 변조에 대한 상세한 설명은 도 7을 참조하여 하고자 한다. 도 7은 결과값을 암호화전 데이테베이스에 대응되는 결과값으로 변조한 예시도이다. 결과값(710)에서 암호화와 관련된 항목은 테이블명(711)과, 필드명(712), 필드값(713)으로 구분된다. 테이블명(711)은 결과값이 테이블형태로 반환되고 그 테이블 명칭이 상기 명칭매핑테이블(440)에 존재하면 암호화와 관련된 항목이 된다. 이 경우에는 상기 매핑테이블(440)에 짝이 되는 값으로 변환한다. 필드명(712)은 결과값이 테이블 형태로 반환되고 그 테이블의 필드명을 다 조사하여 상기 명칭매핑테이블(440)에 존재하면 암호화와 관련된 항목을 찾을 수 있다. 이 경우 테이블명과 같이 상기 매핑테이블(440)에 짝이 되는 값으로 변환한다. 필드값(713)은, 상기 필드명(712)이 암호화와 관련되면, 즉, 상기 매핑테이블(440)에 존재하면, 그 필드명에 해당하는 모든 필드값(713)이 모두 암호화와 관련된다. 따라서 모든 필드값(713)에 대하여 복호화하여 그 값으로 대체한다. 쿼리변조와 마찬가지로, 암호화와 관련이 없는 항목들은 변조하지 않는다. 상기와 같이 만들어진 테이블이 암호화전 데이터베이스에 대응하는 결과값이 된다.
예를 들어, 도 7의 예시를 보면, 도 2b에 대한 암호화 테이블(220)에 대하여 도 6b에서 보여주는 변조된 쿼리(620)를 DBMS에 요청하면 도 7a에서 보여주는 테이블 형태의 결과값(710)을 받게 된다. 이때 테이블명(711)은 info_encrypt 이므로 명칭매핑테이블(440)에 존재하고 이것과 짝인 info(721)로 변환된다. 그리고 필드명(712) age_sec이 명칭매핑테이블(440)에 존재하므로 그 짝인 age 로 변환된다. 그리고 필드명 age 에 해당하는 ‘AS28', 'AS28'을 각각 65, 65로 복호화하여 대체함으로써 암호화전 데이터베이스에 대응되는 결과값(720)으로 변조되는 것이다.
상기 암호화처리부(450)는 필드값을 암호화 방법에 의하여 암호화와 복호화를 한다. 암호화 방법은 앞서 종래의 기술에서 설명한 바와 같이, 1:1 맵핑 암호화 알고리즘을 이용하여, 암호화된 필드값을 복호화하여 암호화전 필드값을 추출할 수 있다. 암호화처리부(450)는 쿼리변조부(420)의 호출에 의하여 필드값을 암호화하고, 결과값변조부(430)의 호출에 의하여 복호화한다. 또한 쿼리변조부(420)는 모든 암호화 모듈을 일괄적으로 내부에서 관리한다. 따라서 종래에 데이터베이스 관리시스템의 암호화모듈을 시스템 내외로 관리함으로써 발생되는 번거로움과 속도저하를 해소할 수 있다.
본 발명의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법은 쿼리의 변조를 통해 일반적인 쿼리를 요청하듯이 종래의 데이테베이스 관리시스템(100)에 요청을 하지만, 종래 시스템의 뷰(403)의 기능을 완전히 사용하지 않는 것은 아니다. 즉, 암호화 테이블을 만드는 과정에서 뷰의 기능이 이용되고 이 때 작성되는 암호화관련 명칭테이블(140)의 값을 가져와 명칭매핑테이블(440)을 만든다.
도 5는 본 발명인 쿼리변조를 통한 쿼리 처리방법의 바람직한 일실시예에 대한 흐름도이다.
본 발명인 쿼리변조를 통한 쿼리 처리방법은 명칭매핑테이블(440)을 만드는 매핑테이블생성단계(S510)와, 사용자가 DBMS에 요청하는 쿼리를 캡쳐(Snapping)하는 패킷캡쳐단계(S520)와, 캡쳐한 쿼리를 변조하는 쿼리변조단계(S530), 변조된 쿼리로 DBMS에 쿼리를 요청하고 처리된 결과값을 받는 쿼리요청단계(S540), DBMS(100)에서 변조된 쿼리로 처리된 결과값을 변조하는 결과값변조단계(S550), 변조된 결과값을 사용자에게 보여주는 결과전송단계(S560)로 구성된다.
상기 매핑테이블생성단계(S510)는 상기 DBMS(100)의 암호화관련 명칭테이블(140)을 참조하여 동일한 내용을 가지는 명칭매핑테이블(440)을 만든다. 상기 명칭매핑테이블(440)은 DBMS(100)에서 암호화된 테이블(220)과 관련된 테이블명과 필드명에 대하여 암호화전 명칭과 변환된 명칭을 짝으로 저장하는 암호화관련 명칭테이블(140)을 읽어와 동일한 값을 저장하는 테이블이다. 하나의 항목이 상기 명칭매핑테이블(440)에 그 명칭이 존재하는지 여부로 암호화관련여부를 알 수 있고, 매핑을 통해 대응되는 다른 쪽의 명칭을 알 수 있다.
패킷캡쳐단계(S520)는 사용자가 DBMS에 쿼리요청을 할 때의 쿼리를 캡쳐(Snapping)한다. 통상 사용자와 DBMS은 네트워크로 연결되어 쿼리가 패킷형태로 전송되므로 패킷을 캡쳐하는 것이나, 다른 형태로 통신하는 경우에는 그 통신형태의 쿼리를 캡쳐하는 것으로도 적용이 가능하다. 사용자가 뷰 등을 통해 암호화전 데이터베이스에 대응되는 테이블구조를 보고 쿼리를 작성한다. 따라서 사용자의 쿼리는 암호화전 데이터베이스 구조에 기반한 쿼리이다.
상기 패킷캡쳐단계(S520)에서 쿼리내 암호화와 관련된 항목이 있는지를 판단하여 상기 쿼리변조부(420)에 선택적으로 호출하여 쿼리변조를 하게 할 수 있다. 즉, 상기 패킷캡쳐단계(S520)는 패킷을 캡쳐한 후에, 캡쳐한 쿼리내에 암호화와 관련된 항목이 있는지 여부를 판단하는 단계를 더 포함하고, 상기 쿼리변조단계(S530)는 상기 항목이 있는 경우에 수행하고, 상기 쿼리 처리방법은 상기 항목이 없으면 DBMS(100)에 바로 쿼리를 요청하고 그 결과값을 사용자에게 전송하는 단계를 더 포함할 수 있다. 쿼리내의 항목은 앞서 살펴본 바와 같이, 쿼리 명령어와 테이블명(611)과, 필드명(612), 상수값(613)의 사용자 항목이 있다. 이때 쿼리내 테이블명(611)이나 필드명(612)이 상기 명칭매핑테이블(440)에 존재하는 경우가 암호화와 관련된 항목이 존재하는 경우를 말한다. 즉, 이들 항목들은 암호화된 데이터베이스에는 존재하지 않는 항목들이므로 암호화된 데이터베이스에 대응되는 암호화 항목으로 변환하여야 하는 것이다.
또한, 상기 패킷캡쳐단계(S520)는 쿼리내 항목이 암호화와 관련되는지 여부를 판단하지 않고 바로 패킷을 쿼리변조단계(S530)를 수행하도록 할 수 있다. 암호화와 관련되는지 여부를 판단하기 위해서는 쿼리내 항목을 차례로 읽어 판단해야 하는데 이 과정은 이후 설명될 쿼리변조단계(S530)에서 똑같이 처리되는 작업이다. 따라서 패킷캡쳐단계(S520)의 암호화관련여부 판단은 불필요한 작업이 될 수 있다.
상기 쿼리변조단계(S530)는 쿼리내에 암호화와 관련된 항목이 포함되어 있는 항목이 있는 경우 그 항목을 변환하거나 암호화하여 쿼리를 변조한다. 쿼리내의 항목은 앞서 살펴본 바와 같이, 쿼리 명령어와 테이블명(611)과, 필드명(612), 상수값(613)의 사용자 항목이 있고, 쿼리의 변조는 쿼리 명령어는 그대로 둔 채, 암호화와 관련된 사용자 항목만을 변조한다. 쿼리내의 항목이 테이블명(611)이나 필드명(612)인 경우에는 상기 명칭매핑테이블(440)에 존재하는지 여부로 판단한다. 즉, 상기 명칭매핑테이블(440)에 존재하면 암호화와 관련이 있는 것으로 보고, 상기 명칭매핑테이블(440)에 짝으로 있는 명칭이 암호화된 데이터베이스에 대응되는 명칭이다. 따라서 짝으로 있는 명칭으로 변환하여 쿼리를 변조한다. 또한, 쿼리내 항목이 상수값(613)인 경우를 보자. 암호화와 관련된 상수값(613)이란 암호화와 관련된 필드명과 관계되는 식에서의 상수값을 말한다. 쿼리내의 조건 등은 필드명과 필드명, 필드명과 상수값 등의 관계를 표현하는 방식으로 표현되는 단위 관계식이다. 이때 필드명과 상수값에 의하여 표현되는 관계식 중에서 필드명이 암호화와 관련된 필드명인 경우 이 관계식에서의 상수값이 암호화와 관련된 상수값이다. 필드명이 암호화와 관련되는지 여부의 판단은 앞서 본 바와 같이, 명칭매핑테이블(440)에 상기 필드명이 존재하는지로 판단한다.
더 자세하게는, 상기 쿼리변조단계(S530)는 쿼리내 항목들을 차례로 읽어오는 단계(S531)와; 읽어온 항목이 테이블명(611)이거나 필드명(612)인 경우, 상기 항목이 암호화와 관련이 있으면 암호화에 대응되는 항목값으로 변환하는 단 계(S532); 읽어온 항목이 상수값(613)인 경우, 상기 상수값(613)이 포함되는 관계식에서 변수가 필드명(612)이고 상기 필드명(612)이 암호화와 관련이 있으면, 상기 상수값(613)을 상기 암복호화 방법에 의하여 암호화한 값으로 대체하는 단계(S534); 쿼리내 더 읽을 항목이 있는지를 판단하여 더 있으면 상기 항목을 읽어오는 단계(S531)를 다시 수행하고, 없으면 상기 쿼리요청단계(S540)로 넘어가는 단계;를 포함할 수 있다.
쿼리요청단계(S540)는 변조된 쿼리로 DBMS에 쿼리를 요청하고 처리된 결과값을 받는다. 변조된 쿼리는 이미 암호화된 테이블명, 필드명, 필드값에 대응되는 명칭으로 변환되거나 상수값으로 암호화되었으므로 데이터베이스 관리시스템(DBMS)은 일반적인 쿼리를 수행하는 것과 동일하게 쿼리를 처리할 수 있다. 즉, DBMS는 암호화 관련여부와 상관없이 요청된 쿼리를 일률적으로 처리한다.
결과값변조단계(S550)는 DBMS(100)에서 변조된 쿼리로 처리된 결과값에서 암호화와 관련된 항목을 변환하거나 복호화하여 암호화전 데이터베이스에 대응하는 결과값으로 변조한다. 결과값(710)에서 암호화와 관련된 항목은 테이블명(711)과, 필드명(712), 필드값(713)으로 구분된다. 테이블명(711)은 결과값이 테이블형태로 반환되고 그 테이블 명칭이 상기 명칭매핑테이블(440)에 존재하면 암호화와 관련된 항목이 된다. 이 경우에는 상기 매핑테이블(440)에 짝이 되는 값으로 변환한다. 필드명(712)은 결과값이 테이블 형태로 반환되고 그 테이블의 필드명을 다 조사하여 상기 명칭매핑테이블(440)에 존재하면 암호화와 관련된 항목을 찾을 수 있다. 이 경우 테이블명과 같이 상기 매핑테이블(440)에 짝이 되는 값으로 변환한다. 필드 값(713)은, 상기 필드명(712)이 암호화와 관련되면, 즉, 상기 매핑테이블(440)에 존재하면, 그 필드명에 해당하는 모든 필드값(713)이 모두 암호화와 관련된다. 따라서 모든 필드값(713)에 대하여 복호화하여 그 값으로 대체한다. 쿼리변조와 마찬가지로, 암호화와 관련이 없는 항목들은 변조하지 않는다. 상기와 같이 만들어진 테이블이 암호화전 데이터베이스에 대응하는 결과값이 된다.
더 자세하게는, 상기 결과값변조단계(S550)는, 상기 결과값으로 받은 테이블명(711)이 암호화와 관련이 있으면 암호화에 대응하는 테이블명으로 변환하는 단계(S532)와; 상기 결과값으로 받은 테이블의 필드명(712)이 암호화와 관련이 있는지를 판단하는 단계(S553); 상기 필드명(712)이 암호화와 관련이 있으면 암호화에 대응하는 필드명으로 변환하는 단계(S554); 상기 필드명에 해당하는 모든 필드값을 복호화하여 대체하는 단계(S555); 상기 결과값으로 받은 테이블의 각각의 필드명(712)에 대하여 암호화와 관련이 있는지를 판단하는 단계(S553)를 반복하는 단계;를 포함한다.
결과전송단계(S560)는 변조된 결과값을 사용자에게 보여주는 단계이다. 사용자는 암호화전 테이블 구조에 근간하여 쿼리를 요청하고 그 결과도 암호화전 테이블 구조에 근간한 결과를 받아봄으로써 전혀 암호화 과정을 인식하지 못한다. 즉, 호환성(Transparency)을 제공받는다.
앞서 본 바와 같이, 상기 패킷캡쳐단계(S520)에서 쿼리내 암호화 관련한 항목을 판단하여 선택적으로 쿼리변조를 하는 경우, 상기한 쿼리변조단계(S530)에서부터 결과값변조단계(S550)는 쿼리내에 암호화 관련한 항목이 포함된 경우의 단계 들이다. 만약 쿼리내에 암호화 관련된 항목이 없는 경우에는 이 단계를 거치지 않는다. 대신, DBMS에 쿼리를 요청하고 그 결과를 받는다. 일반적인 DBMS의 쿼리요청 절차와 동일하다. DBMS로부터 받은 그 결과를 사용자에게 보여준다(S560).
도 1은 일부 칼럼을 암호화할 수 있는 종래의 데이터베이스 관리시스템(DBMS)의 구성도,
도 2는 뷰를 통해 데이터베이스의 칼럼 암호화를 할 때 테이블을 생성하는 과정을 보여주는 예시도,
도 3은 종래의 암호화와 관련된 쿼리를 처리하는 방법에 대한 흐름도,
도 4는 본 발명의 사용자 쿼리 처리장치의 바람직한 일실시예의 구성도,
도 5는 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 방법의 바람직한 일실시예에 대한 흐름도,
도 6은 쿼리 변조의 일실시예,
도 7은 결과테이블 변조의 일실시예,
도 8a는 암호화된 3개의 칼럼에 대하여 100, 1000, 10000개의 레코드를 처리하는 경우의 성능차이 비교도,
도 8b는 암호화된 1개의 칼럼에 대하여 최대 10만개의 레코드를 처리하는 경우의 성능차이 비교도,
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 데이터베이스 120 : 쿼리처리부
130 : 뷰(View) 140 : 명칭테이블
400 : 쿼리처리장치 410 : 패킷처리부
420 : 쿼리변조부 430 : 결과값변조부
440 : 명칭매핑테이블 450 : 암호화처리부

Claims (10)

  1. 일부 칼럼을 암호화한 데이터베이스를 관리하는 데이터베이스 관리시스템(DBMS)(100)에게 사용자(160)가 암호화전 DB구조에 기반한 쿼리를 요청하면, 상기 쿼리를 처리하기 위한, 쿼리변조를 통한 쿼리 처리장치(400)에 있어서,
    상기 DBMS(100)의 암호화관련 테이블에서 암호화하는 칼럼에 해당하는 필드명과 상기 칼럼을 포함하는 테이블명에 대하여, 암호화전 명칭과 암호화된 명칭을 짝으로 저장하는 명칭매핑테이블(440);
    사용자(160)가 DBMS(100)에 요청하는 쿼리를 캡쳐(Snapping)하고 DBMS에 변조된 쿼리를 전송하고, DBMS에서 쿼리가 처리된 결과값을 받아오는 패킷처리부(410);
    상기 패킷처리부(410)에서 캡쳐한 쿼리를 분석하여 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 암호화처리부(450)를 통해 암호화하여 암호화된 데이터베이스를 참조할 수 있는 쿼리로 변조하는 쿼리변조부(420);
    DBMS(100)에서 변조된 쿼리로 처리된 결과값에서 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 암호화처리부(450)를 통해 복호화하여 암호화전 데이터베이스에 대응하는 결과값으로 변조하는 결과값변조부(430);
    상기 쿼리변조부(420)의 호출에 의하여 암호화와 관련된 항목을 암호화하고, 결과값변조부(430)의 호출에 의하여 암호화와 관련된 항목을 복호화하는 암호화처리부(450);
    를 포함하는 것을 특징으로 하는 쿼리변조를 통한 쿼리 처리장치.
  2. 삭제
  3. 제 1 항에 있어서,
    쿼리에서의 항목이 테이블명(611)과 필드명(612)이면서 상기 명칭매핑테이블(440)에 있거나, 상수값(613)이면서 상기 쿼리에서의 항목을 포함하는 관계식의 변수가 상기 명칭매핑테이블(440)에 있는 필드명(612)이면, 암호화와 관련된 항목이고;
    결과값에서의 항목이 테이블명(711)과 필드명(712)이면서 상기 명칭매핑테이블(440)에 있거나, 상수값(713)이면서 상기 결과값에서의 항목을 포함하는 관계식의 변수가 상기 명칭매핑테이블(440)에 있는 필드명(712)이면, 암호화와 관련된 항목인 것을 특징으로 하는 쿼리변조를 통한 쿼리 처리장치.
  4. 제 3 항에 있어서,
    상기 쿼리변조부(420)는 상기 테이블명(611)과 상기 필드명(612)을 상기 명칭매핑테이블(440)에 짝으로 저장된 명칭으로 변환하고, 상기 상수값(613)을 상기 암호화처리부(450)에 의하여 암호화한 값으로 대체함으로써, 암호화된 데이터베이스를 참조할 수 있는 쿼리로 변조하고,;
    상기 결과값변조부(430)는 상기 테이블명(711)과 상기 필드명(712)을 상기 명칭매핑테이블(440)에 짝으로 저장된 명칭으로 변환하고, 상기 상수값(713)을 상기 암호화처리부(450)에 의하여 복호화한 값으로 대체함으로써, 결과값을 암호화전 데이터베이스에 대응하는 결과값으로 변조하는 것;
    을 특징으로 하는 쿼리변조를 통한 쿼리 처리장치.
  5. 제 1 항에 있어서, 상기 패킷처리부(410)는,
    캡쳐한 쿼리내에 암호화와 관련된 항목이 있는지 여부를 판단하고 상기 항목이 있으면 상기 쿼리변조부(420)를 호출하여 쿼리변조를 하도록 하고, 상기 항목이 없으면 바로 DBMS(100)로 패킷을 전송하는 것을 특징으로 하는 쿼리변조를 통한 쿼리 처리장치.
  6. 제 1항에 있어서,
    암호화처리부(450)는 암복호화에 필요한 모듈을 내부적으로 보유하는 것을 특징으로 하는 쿼리변조를 통한 쿼리 처리장치.
  7. 일부 칼럼을 암호화한 데이터베이스를 관리하는 DBMS(100)에게 사용자(160)가 암호화전 DB구조에 기반한 쿼리를 요청하면, 상기 쿼리를 처리하기 위한, 쿼리변조를 통한 쿼리 처리방법에 있어서,
    상기 DBMS(100)가 암호화관련 테이블을 생성할 때, 암호화하는 칼럼에 해당하는 필드명과 상기 칼럼을 포함하는 테이블명에 대하여 암호화전 명칭과 암호화된 명칭을 짝으로 저장하는 명칭매핑테이블(440)을 만드는 매핑테이블생성단계(S510);
    사용자가 DBMS에 요청하는 쿼리를 캡쳐(Snapping)하는 패킷캡쳐단계(S520);
    캡쳐한 쿼리를 분석하여 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 암호화 처리부를 통해 암호화하여 암호화된 데이터베이스를 참조할 수 있는 쿼리로 변조하는 쿼리변조단계(S530);
    변조된 쿼리로 DBMS에 쿼리를 요청하고 처리된 결과값을 받는 쿼리요청단계(S540);
    DBMS(100)에서 변조된 쿼리로 처리된 결과값에서 암호화와 관련된 항목을 명칭매핑테이블(440)을 이용하여 변환하거나 암호화 처리부를 통해 복호화하여 암호화전 데이터베이스에 대응하는 결과값으로 변조하는 결과값변조단계(S550);
    변조된 결과값을 사용자에게 보여주는 결과전송단계(S560);
    를 포함하는 것을 특징으로 하는 쿼리변조를 통한 쿼리 처리방법
  8. 삭제
  9. 제 7 항에 있어서,
    상기 쿼리변조단계(S530)는,
    쿼리내 항목들을 차례로 읽어오는 단계(S531)와;
    읽어온 항목이 테이블명(611)이거나 필드명(612)이고 암호화와 관련이 있으면, 상기 명칭매핑테이블(440)을 이용하여 변환하는 단계(S532);
    읽어온 항목이 상수값(613)이고 상기 상수값(613)이 포함되는 관계식의 변수가 암호화와 관련이 있는 필드명(612)이면, 상기 상수값(613)을 암호화한 값으로 대체하는 단계(S534);
    쿼리내 더 읽을 항목이 있는지를 판단하여 더 있으면 항목을 읽어오는 단계(S531)를 다시 수행하고, 없으면 상기 쿼리요청단계(S540)로 넘어가는 단계;
    를 포함하고;
    상기 결과값변조단계(S550)는,
    상기 결과값으로 받은 테이블명(711)이 암호화와 관련이 있으면 상기 명칭매핑테이블(440)을 이용하여 변환하는 단계(S552)와;
    상기 결과값으로 받은 테이블의 필드명(712)이 암호화와 관련이 있으면 상기 명칭매핑테이블(440)을 이용하여 변환하고, 상기 필드명에 해당하는 모든 필드값을 복호화하여 대체하는 단계(S554);
    를 포함하는 것을 특징으로 하는 쿼리변조를 통한 쿼리 처리방법.
  10. 제 9항에 있어서,
    상기 (S532)단계는, 읽어온 쿼리내 항목이 테이블명(611)이거나 필드명(612)이면서 명칭매핑테이블(440)에 있으면, 상기 명칭매핑테이블(440)에서 상기 읽어온 쿼리내 항목에 대해 짝으로 저장된 값으로 변환하고,
    상기 (S552)단계 또는 (S553)단계는, 결과값으로 받은 테이블명(711) 또는 필드명(712)이 명칭매핑테이블(440)에 있으면, 상기 명칭매핑테이블(440)에서 상기 결과값으로 받은 테이블명(711) 또는 필드명(712)에 대해 짝으로 저장된 값으로 변환하는 것을 특징으로 하는 쿼리변조를 통한 쿼리 처리방법.
KR1020070104005A 2007-10-16 2007-10-16 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 KR100859162B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020070104005A KR100859162B1 (ko) 2007-10-16 2007-10-16 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법
US12/251,874 US8055678B2 (en) 2007-10-16 2008-10-15 Query processing system and method for database with encrypted column by query encryption transformation
EP08018051.6A EP2051183B1 (en) 2007-10-16 2008-10-15 Query processing system and method for database with encrypted column by query encryption transformation
JP2008267495A JP4972067B2 (ja) 2007-10-16 2008-10-16 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070104005A KR100859162B1 (ko) 2007-10-16 2007-10-16 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR100859162B1 true KR100859162B1 (ko) 2008-09-19

Family

ID=40023327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070104005A KR100859162B1 (ko) 2007-10-16 2007-10-16 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법

Country Status (4)

Country Link
US (1) US8055678B2 (ko)
EP (1) EP2051183B1 (ko)
JP (1) JP4972067B2 (ko)
KR (1) KR100859162B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2241986A1 (en) * 2009-04-13 2010-10-20 Sap Ag Privacy and confidentiality preserving schema mapping repository for mapping reuse
KR101663632B1 (ko) * 2015-04-08 2016-10-07 숭실대학교산학협력단 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법
CN108319862A (zh) * 2017-01-16 2018-07-24 阿里巴巴集团控股有限公司 一种数据文件处理的方法和装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070079119A1 (en) * 2000-11-16 2007-04-05 Ulf Mattsson Encryption key rotation
KR101302135B1 (ko) * 2009-11-30 2013-09-16 한국전자통신연구원 위탁 서비스를 위한 데이터의 부분 암복호화 방법 및 그 장치
JP5672558B2 (ja) * 2009-12-17 2015-02-18 日本電気株式会社 ネットワークシステム、ネットワーク制御装置、及び制御方法
US10275518B2 (en) * 2011-04-30 2019-04-30 Tibco Software Inc. Integrated phonetic matching methods and systems
KR101125699B1 (ko) * 2011-11-03 2012-03-27 펜타시큐리티시스템 주식회사 데이터베이스 엔진을 이용한 데이터 보안 방법
EP2778951B1 (en) * 2011-11-11 2017-04-26 NEC Corporation Database encryption system, method and program
US9256762B1 (en) * 2011-12-20 2016-02-09 Amazon Technologies, Inc. Securing a remote database
US9152811B2 (en) 2012-03-12 2015-10-06 International Business Machines Corporation Transparent real-time access to encrypted non-relational data
US9223807B2 (en) 2012-09-13 2015-12-29 International Business Machines Corporation Role-oriented database record field security model
US9336256B2 (en) * 2013-03-15 2016-05-10 Informatica Llc Method, apparatus, and computer-readable medium for data tokenization
US10162858B2 (en) 2013-07-31 2018-12-25 Sap Se Local versus remote optimization in encrypted query processing
US9552492B2 (en) * 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9875370B2 (en) * 2015-03-26 2018-01-23 Microsoft Technology Licensing, Llc Database server and client for query processing on encrypted data
US10482263B2 (en) 2015-04-01 2019-11-19 Microsoft Technology Licensing, Llc Computing on encrypted data using deferred evaluation
US10210266B2 (en) * 2016-05-25 2019-02-19 Microsoft Technology Licensing, Llc Database query processing on encrypted data
JP6381861B2 (ja) * 2016-05-27 2018-08-29 三菱電機株式会社 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
US10977383B2 (en) 2016-10-05 2021-04-13 Snowflake Inc. Systems, methods, and devices for encrypting database data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060047882A (ko) * 2004-05-14 2006-05-18 마이크로소프트 코포레이션 웹 데이터베이스 검색 방법
KR20060069063A (ko) * 2004-12-17 2006-06-21 한국전자통신연구원 데이터베이스 캐시 시스템

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956400A (en) * 1996-07-19 1999-09-21 Digicash Incorporated Partitioned information storage systems with controlled retrieval
JP2000010836A (ja) * 1998-06-22 2000-01-14 Hitachi Information Systems Ltd クライアント・サーバ型アプリケーションのテスト方法及びこの方法を実現するためのプログラムを記録した記録媒体
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
JP3921892B2 (ja) * 1999-09-30 2007-05-30 カシオ計算機株式会社 データベース管理装置、データベースシステム及び記録媒体
JP2002169808A (ja) * 2000-11-30 2002-06-14 Hitachi Ltd セキュアマルチデータベースシステム
US7228416B2 (en) * 2001-01-26 2007-06-05 Hitachi, Ltd. Database access method and system capable of concealing the contents of query
US7266699B2 (en) * 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
JP4050050B2 (ja) * 2001-12-17 2008-02-20 株式会社アクアキャスト リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法
JP3908090B2 (ja) * 2002-05-30 2007-04-25 日本電信電話株式会社 情報検索システムおよび情報検索方法、情報検索プログラム並びにそのプログラムを記録した記録媒体
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
US10339336B2 (en) * 2003-06-11 2019-07-02 Oracle International Corporation Method and apparatus for encrypting database columns
JP3940714B2 (ja) * 2003-09-25 2007-07-04 株式会社東芝 演算装置、および、暗号・復号演算装置
US7395437B2 (en) * 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
US7558970B2 (en) * 2004-01-23 2009-07-07 At&T Corp. Privacy-enhanced searches using encryption
US7743069B2 (en) * 2004-09-03 2010-06-22 Sybase, Inc. Database system providing SQL extensions for automated encryption and decryption of column data
US7797342B2 (en) * 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
TWI268081B (en) * 2005-06-24 2006-12-01 Hitrust Com Inc Data-encrypting/decrypting method, data-saving media using the method, and data-encrypting/decrypting module
JP2009027472A (ja) * 2007-07-19 2009-02-05 Toshiba Corp 暗号演算装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060047882A (ko) * 2004-05-14 2006-05-18 마이크로소프트 코포레이션 웹 데이터베이스 검색 방법
KR20060069063A (ko) * 2004-12-17 2006-06-21 한국전자통신연구원 데이터베이스 캐시 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2241986A1 (en) * 2009-04-13 2010-10-20 Sap Ag Privacy and confidentiality preserving schema mapping repository for mapping reuse
KR101663632B1 (ko) * 2015-04-08 2016-10-07 숭실대학교산학협력단 데이터베이스 암호화를 지원하는 스토리지 서비스 제공 서버 및 방법
CN108319862A (zh) * 2017-01-16 2018-07-24 阿里巴巴集团控股有限公司 一种数据文件处理的方法和装置

Also Published As

Publication number Publication date
US20090100033A1 (en) 2009-04-16
EP2051183B1 (en) 2016-05-11
US8055678B2 (en) 2011-11-08
JP2009099151A (ja) 2009-05-07
EP2051183A1 (en) 2009-04-22
JP4972067B2 (ja) 2012-07-11

Similar Documents

Publication Publication Date Title
KR100859162B1 (ko) 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법
US8874932B2 (en) Method for order invariant correlated encrypting of data and SQL queries for maintaining data privacy and securely resolving customer defects
CN109815719A (zh) 一种可搜索的数据库安全加密系统
JP4685782B2 (ja) データベースのカラムを暗号化するための方法および装置
US7684566B2 (en) Encryption scheme for streamed multimedia content protected by rights management system
US8473740B2 (en) Method and system for secured management of online XML document services through structure-preserving asymmetric encryption
CN103336929B (zh) 用于已加密文件访问的方法和系统
US20020184488A1 (en) Systems, methods, and computer program products for accelerated dynamic protection of data
CN111079162B (zh) 一种基于区块链的数据加密方法、解密方法及系统
US20110289310A1 (en) Cloud computing appliance
US20080002830A1 (en) Method, system, and computer-readable medium to maintain and/or purge files of a document management system
US7392402B2 (en) Method and apparatus for data integration security
US6760845B1 (en) Capture file format system and method for a network analyzer
US20090285396A1 (en) Database processing on externally encrypted data
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
CN106231346B (zh) 一种针对离线视频的分布式加密方法
USRE48912E1 (en) Systems, methods, and apparatuses for creating a shared file system between a mainframe and distributed systems
CN105760779A (zh) 一种基于fuse的双向文件加密系统
CN104484628B (zh) 一种具有加密解密功能的多应用智能卡
CN112016104B (zh) 一种金融敏感数据的加密方法、装置和系统
CN108734023B (zh) 一种密文数据库系统的访问与集成系统及方法
CN105718808A (zh) 一种基于多网盘的文件加密存储系统及方法
US20070263876A1 (en) In-memory compression and encryption
KR20210043906A (ko) 데이터 암호화 방법 및 장치, 데이터 복호화 방법 및 장치
KR20170081506A (ko) 부분 데이터 암호를 이용한 데이터 저장 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
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: 20120816

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130911

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140725

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180910

Year of fee payment: 11