KR101371608B1 - Dbms 및 데이터베이스에서 암호화 방법 - Google Patents

Dbms 및 데이터베이스에서 암호화 방법 Download PDF

Info

Publication number
KR101371608B1
KR101371608B1 KR1020110103043A KR20110103043A KR101371608B1 KR 101371608 B1 KR101371608 B1 KR 101371608B1 KR 1020110103043 A KR1020110103043 A KR 1020110103043A KR 20110103043 A KR20110103043 A KR 20110103043A KR 101371608 B1 KR101371608 B1 KR 101371608B1
Authority
KR
South Korea
Prior art keywords
encryption
database
data
external
unit
Prior art date
Application number
KR1020110103043A
Other languages
English (en)
Other versions
KR20130039354A (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 KR1020110103043A priority Critical patent/KR101371608B1/ko
Priority to US13/526,360 priority patent/US8949603B2/en
Publication of KR20130039354A publication Critical patent/KR20130039354A/ko
Application granted granted Critical
Publication of KR101371608B1 publication Critical patent/KR101371608B1/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
    • 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

Abstract

본 발명은 DBMS 및 데이터베이스 암호화 방법에 관한 것이다. 본 발명의 바람직한 일 실시예인 데이터베이스에서 암호화방법은 데이터베이스와 분리되어 암호화를 수행하는 외부암호화부로부터 보안정책(Policy)에 대한 인증 허가를 받으면, 데이터베이스 내에서 중요데이터를 컬럼(column) 단위로 선택적으로 암호화하고 상기 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성한 후 이를 하나의 암호화데이터타입 형태로 생성한다.

Description

DBMS 및 데이터베이스에서 암호화 방법{Database Management System and Encrypting Method thereof}
본 발명은 데이터베이스의 암호화에 관한 것이다.
최근 금융, 증권 업체 내지 SNS 업체 등과 같은 다양한 기업 및 회사에서는 대량의 고객정보를 DB에 관리하고 있으며 이를 기반으로 금융, 쇼핑, 교육 등 다양한 지식기반 컨텐츠를 유통시키고 있다.
그러나, 고객정보에 대한 데이터베이스(DB)의 암호화 조치가 제대로 이루어지지 않아 고객의 신용등급, 비밀번호 등과 같은 신용정보가 노출되는 사고가 빈번하게 발생하고 있다.
일 예로, 국내 모 이동통신사가 주최한 이벤트 응모에서 2,000여 명이 넘는 응모자들의 주민번호와 집주소 등 개인정보가 구글 검색 엔진에 뚫려 인터넷에 완전히 노출된 사건 등 무분별하게 개인정보가 도용되어 심각한 사회적 문제로 대두되었다.
이러한 문제를 근본적으로 해결하기 위한 방법으로는 DB 내에 데이터 자체를 암호화하여 저장하는 방식이 필수적이다. 그러나, 현재까지 개발된 DB 암호화 기능을 적용할 때 암호화 기능을 적용하지 않은 상태와 비교해서 수 배 또는 수십 배 이상의 성능 저하를 가져오는 문제가 있다.
(특허문헌 1) KR2011-0014310 A
본 발명에서는 속도 저하를 크게 일으키지 않으면서도 컬럼 암호화 기능을 제공하는 데이터베이스 암호화 방법 및 장치를 제공하고자 한다.
본 발명에서는 복호화 없이도 암호화 값을 비교 가능하도록 하는 암호화 방법을 제시하여 성능 저하의 문제점을 해결하고자 한다. 이를 위해 본 발명에서는 데이터베이스에서 인덱스 컬럼 암호화시 정렬 순서가 유지되는 암호화 기술(order preserving encryption)을 제시한다.
본 발명의 바람직한 일 실시예인 데이터베이스에서 암호화방법은 데이터베이스와 분리되어 암호화를 수행하는 외부암호화부로부터 상기 데이터베이스의 보안정책(Policy)에 대한 인증 허가를 수신하는 단계; 상기 데이터베이스 내에서, 중요데이터를 컬럼(column) 단위로 선택적으로 암호화하고 상기 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성하는 단계; 및 상기 암호화한 중요데이터 및 이에 대응되는 상기 암호비교코드ECC를 하나의 암호화데이터타입 형태로 생성하는 단계;를 포함한다.
본 발명의 또 다른 바람직한 일 실시예로서, DBMS(Database Management System)는 데이터베이스와 분리되어 있으며, 데이터베이스로부터 보안정책(Policy)을 수신하는 외부암호화부; 상기 데이터베이스 내에서, 상기 외부암호화부로부터 상기 보안정책에 대한 인증 허가를 받으면 중요데이터를 컬럼(column) 단위로 선택적으로 암호화하고 상기 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성하는 내부암호화부;및 상기 암호화한 중요데이터 및 이에 대응되는 상기 암호비교코드ECC를 하나의 암호화데이터타입 형태로 생성하는 암호화데이터타입생성부;를 포함한다.
이하에서, 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명하기로 한다. 도면들 중 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다.
하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
또한, 본 발명에 보다 더 충실하도록 하기 위해서, 본 발명의 취지를 벗어나지 않는 범위 내에서 당업자 수준의 변경이나 변형이 있을 수 있음을 명기하는 바이다.
본 발명의 바람직한 일 실시예에는 데이터베이스 내에 암호화된 모든 데이터를 복호화 하지 않고도 ECC를 이용하여 복호화 과정을 생략한 채 index scan, scan filter, join, like, 데이터 복제 등의 연산 수행이 가능하다.
질의 처리시 복호화 과정이 생략되므로 실제 데이터가 필요한 시점, 즉 복호화된 값이 필요한 시점에만 복호화를 수행하므로 자원을 효과적으로 사용하고 데이터 베이스의 성능을 높일 수 있다.
본 발명의 바람직한 일 실시예에서는 암호화된 데이터와 ECC를 하나의 데이터타입으로 형성하여 데이터베이스에서 고유의 데이터 타입으로 이용함으로써 index, primary key index, unique index, composite index, foreign key, not null, tirgger 등이 모두 가능한 효과가 있다.
또한, 본 발명의 바람직한 일 실시예에서는 종래에 사용되던 SQL을 수정없이 그대로 사용할 수 있어 호환성이 높은 효과가 있다.
도 1 은 데이터베이스 보안을 위해 접근 제어 및 감사를 수행하는 일 실시예를 도시한다.
도 2 는 DB 암호화의 일 예를 도시한다.
도 3 은 데이터베이스에서 외부 모듈 암호화 방식을 이용하여 암호화를 수행하는 일 예를 도시한다.
도 4 는 데이터베이스에서 내부 모듈 암호화 방식(TDE, Transparent Data Encryption)을 이용하여 암호화를 수행하는 일 예를 도시한다.
도 5는 본 발명의 바람직한 일 실시예로서, 데이터베이스의 외부 모듈 암호화 방식 및 내부 모듈 암호화 방식의 단점을 해소한 암호화 방식의 일 예를 제시한다.
도 6은 본 발명의 바람직한 일 실시예로서, 데이터베이스에서 암호화 방법을 나타내는 흐름도이다.
도 7 은 본 발명의 바람직한 일 실시예로서 DBMS(Database Management System)을 도시한다.
도 1 은 데이터베이스 보안을 위해 접근 제어 및 감사를 수행하는 일 실시예를 도시한다.
DB-클라이언트(100)는 SQL(Structured Query Language)를 이용하여 Target DB(110)에 DB 조회를 요청한다. Sniffing을 이용한 SQL Capture(S120) 방법은 최소한의 부하로 SQL을 Capture하여 DB 보안 감사, 감시, 모니터링 및 기록이 가능한 방법이지만, 불법 접속을 바로 차단하기는 어렵다. 그리고, Gateway를 이용한 SQL Capture(S130)는 target DB를 직접 접속하지 않고 Gateway를 이용하므로 모든 접속을 통제하며 완전한 접근제어가 가능하다. 또한 필요에 따라 전송되는 데이터를 Gateway에서 변경도 가능하다. 그러나 서버 부하가 크다는 단점이 있다.
도 2 는 DB 암호화의 일 예를 도시한다.
데이터베이스에서 데이터를 암호화하는 방법은 DBMS(Database Management System) 전체를 암호화, Table Space 암호화, Table만 암호화, Table 내의 칼럼만(예, 주민등록번호 칼럼, 비밀번호 칼럼) 암호화하는 방법 등이 있다.
도 2 에 도시된 DB 암호화의 일 예는 Table 내의 칼럼만 암호화하는 일반적인 방식의 일 예를 도시한다.
데이터베이스 서버에서는 고유식별정보 칼럼(200)의 데이터를 키와 알고리즘을 통해 평문을 암호문(220)으로 변경하여 저장한다. 예를 들어 고유식별정보 칼럼(200)의 데이터 "110"을 "&?H@!a"(221)와 같은 형태의 암호문으로 변경하여 저장한다. 암호문은 보통 평문보다 길고 동일한 사이즈의 데이터로 변환되므로 저장공간이 증가하게 된다. 암호화 과정에서 주의할 점을 암호화 데이터(220)는 길이나 순서, 패턴 등으로 유추가 가능해서는 안된다.
클라이언트가 데이터베이스 서버(221)에서 데이터 "110"(211)을 검색하면(S210), 데이터베이스서버(200)는 저장된 암호문 중 데이터"110"에 대응되는 암호문인 "&?H@!a"(221) 값을 검색하고(S220) 이를 복호화 하여(S230) 클라이언트에게 데이터를 알려준다(S240).
이러한 데이터베이스의 암호화 방식에는 크게 데이터베이스의 입출력 경로를 감시하는 외부 모듈 암호화 방식과 데이터베이스 내부의 데이터 자체를 암호화 하는 내부 모듈 암호화 방식이 있다.
도 3 및 4는 데이터베이스의 외부 모듈 암호화 방식과 내부 모듈 암호화 방식을 각각 도시한다.
도 3 은 데이터베이스에서 외부 모듈 암호화 방식을 이용하여 암호화를 수행하는 일 예를 도시한다. 데이터베이스에서 외부 모듈 암호화 방식을 이용한 예로는 데이터를 입출력할 때 암호화 및 복호화를 수행하는 경우(300)를 들 수 있다.
이 경우 데이터베이스(330) 자체에서 지원되는 기능이 아니라 DB Trigger(320)나 외부 라이브러리(예; Encryption Library)(310)를 통해 암호화 및 복호화를 수행하여 저장한다. 따라서, 데이터베이스(330) 자체의 권한 관리와 외부 암호화 모듈(310)의 관리가 분리되어 보안성이 높고, 외부 암호화 모듈(310)의 개선이나 교체가 편리한 이점이 있다.
그러나, 외부 암호화 모듈(310)의 사용은 호환성 문제를 해결하기 어려워 성능이 저하되는 문제점을 지닌다. 암호화 모듈(310)을 변경할 경우 암호화 트리거(320) 내지 호출방법 등이 변경되어야 한다.
그리고, 암호화 모듈(310)에서는 직접적으로 데이터 타입을 지원하는 것이 아니라 가상적으로 데이터 타입을 지원하므로 Index, Primary Index, Unique Index, Composite Index, Foreign Key, Not Null, Trigger 등과 같은 데이터 타입의 고유 특성을 사용하는데 제약이 따른다.
또한, 데이터베이스는 데이터를 저장하고, 저장된 데이터(예, 주민등록 앞자리, "701010")에 신속하게 접근하기 위해 값을 비교하는 방식의 기반으로 색인(Index)(예, Index : "70")을 사용한다. 그러나 데이터를 암호화하는 경우("701010"을 "#@*!D!@@"로 암호화), 암호화된 데이터("#@*!D!@@")를 복호화 하기 전까지는 데이터 비교가 불가능해진다. 결국 암호화된 데이터는 이러한 이유로 색인을 이용할 수 없거나 복호화를 통해 색인을 생성하여 사용하게 되어 수행속도와 같은 성능이 악화되게 된다.
만약 색인을 사용할 수 없게 된다면 모든 데이터에 일일이 접근하게 되어 데이터베이스의 성능을 떨어뜨리게 되고 복호화시켜 색인을 만드는 경우 역시 복호화를 수행하기 위해 자원을 소모하게 되고 추가적인 보안 문제가 발생하게 된다.
도 4 는 데이터베이스에서 내부 모듈 암호화 방식(TDE, Transparent Data Encryption)을 이용하여 암호화하는 일 예를 도시한다.
내부 모듈 암호화 방식은 암호화 및 복호화가 SQL Server에 의해 데이터베이스(430) 내부에서 자동으로 수행된다. 내부 모듈 암호화 방식에서는 데이터가 자동으로 암호화된 후 디스크에 작성되고 메모리로 판독시 자동으로 복호화가 이루어지므로 데이터베이스 자체의 고유 기능을 살릴 수 있는 이점이 있다.
그러나, 내부 모듈 암호화 방식의 경우 데이터베이스(430) 내부에 암호화 및 복호화 기능이 모두 내장되어 있어 암호화 키의 기밀성이 부족하게 되어 보안에 취약한 문제를 내포하고 있다.
또한 DBA(Database Administrator)와 보안관리자의 권한의 분리가 미비하며, 국내 표준 알고리즘 등이 지원되지 않아 국정원 기준에 의거 도입이 불가능한 상태이다.
도 5는 본 발명의 바람직한 일 실시예로서, 데이터베이스의 외부 모듈 암호화 방식 및 내부 모듈 암호화 방식의 단점을 해소한 암호화 방식의 일 예를 제시한다.
본 발명의 바람직한 일 실시예로서, 데이터베이스(500)의 암호화 테이블은 도 5와 같이 구성이 가능하다. 본 발명의 바람직한 일 실시예로서, 데이터베이스(500)의 암호화 테이블은 복수의 레코드(510)를 포함한다.

이름
(칼럼 1, 520)

주민등록번호
(칼럼 2, 521)

주소
(칼럼 3, 522)

홍길동

460322-1234562

서초구 서초동 1234-1

김영희

650923-2046234

강남구 대치동 234-5

강철수

900313-1250236

강동구 명일동 341-11
각 레코드(511, 512, 513)는 또한 복수의 칼럼(520, 521, 522)을 포함한다. 복수의 칼럼은 위의 표와 같이 "이름"(칼럼 1, 520), "주민등록번호"(칼럼 2, 521) 그리고 "주소"(칼럼 3, 522)와 같이 설정이 가능하다. 또한, 본 발명의 바람직한 일 실시예에서는 복수의 칼럼 중 특정 칼럼(521)(예, 주민등록번호 칼럼)만 선택적으로 암호화가 가능하다.
암호화를 수행하는 과정은 아래와 같다.
데이터베이스(500)는 외부암호화부(540)에 보안정책(Policy)을 전송하고, 외부암호화부(540)로부터 보안정책(Policy)에 대한 인증결과를 수신한다. 보안정책(Policy)은 데이터베이스(500) 내부가 아닌 외부의 보안 모듈(외부암호화부(540))에서 정의하는 보안객체로 접근제어, 암호화 알고리즘, 암호화 키, 다양한 암호화 옵션(초기화 백터사용 여부 등)을 포함한다. 데이터베이스는 암호화에 필요한 보안 정보를 보안정책(Policy)이라는 외부객체를 이용하여 기밀성을 높이고 외부의 보안모듈에서는 데이터베이스와는 독립적으로 보안정책을 관리한다.
보안정책(Policy)은 외부암호화부(540)에서 정의한 보안객체의 이름으로써, 데이터베이스에서는 암호화대상 컬럼에 외부암호화부에서 정의한 보안객체의 이름인 보안정책을 명시하는 것으로 컬럼에 대한 접근제어, 암호화 알고리즘, 암호화 키, 다양한 암호화 옵션을 한번에 설정한다. 뿐만 아니라 외부암호화부에서는 생성한 보안객체를 데이터베이스와는 별도로 관리하며 별도의 보안관리자가 기밀성을 유지하면서 접근 권한제어, 데이터 암호화, 복호화 권한제어 등과 같은 관리가 가능하다.
데이터베이스(500)는 외부암호화부(540)로부터 수신한 인증결과를 기초로 인증이 허가되면 암호화하고자 하는 칼럼의 평문(Plain Text)(예, 칼럼 2(521), 주민등록번호)을 내부 암호화부(530)를 통해 암호화 한다.
내부 암호화부(530)는 칼럼의 평문(예, 칼럼 2(521))을 암호화하여 암호문으로 암호화 하고, 이후에 사용자가 해당 자료를 요구하면 암호문을 다시 복호화하여 평문으로 변화한 데이터값을 전달한다.
내부 암호화부(530)는 또한 Order Preserving Hash Function을 이용하여 평문(예, 칼럼 2(521))을 기초로 암호비교코드ECC(Encrypted Comparison Code)(560)를 생성한다. 암호비교코드ECC(560)는 보안정책(Policy)이 상이한 경우라도 동일한 값을 지니는 이점이 있다. Order Preserving Hash Function으로 생성하는 암호비교코드는 이론적으로 다시 원래의 평문으로 복호화가 불가능하므로 보안성 면에서는 문제가 없다.
암호화데이터타입생성부(미 도시)는 생성된 암호문(550)과 암호비교코드ECC(560)를 대응시켜 하나의 암호화데이터타입(570)으로 저장한다. 본 발명의 바람직한 일 실시예에서는 암호화데이터타입(570)을 데이터베이스의 고유 데이터 타입으로 사용함으로 index, primary key index, unique index, composite index, foreign key, not null, tirgger 등이 모두 가능하게 된다.
그리고 암호비교코드ECC(560)는 복호화를 수행하지 않고도 비교를 수행할 수 있으며 비교 과정에서 암호비교코드ECC(560)는 색인(Index)의 기능을 수행할 수 있어 빠른 검색 및 범위 검색을 구현할 수 있다. 그 결과 종래 모든 암호화된 데이터를 일일이 복호화하여 비교를 수행하던 과정에 비해 성능을 향상시킬 수 있다. 암호비교코드ECC의 생성에 이용되는 Order Preserving Hash Function은 그 이름에서와 같이
평문1 < 평문2 일때
Func(평문1) < Func(평문2)
를 만족하므로 암호화된 컬럼1을 복호화하여 비교하지 않고 컬럼1에 저장된 암호비교코드ECC1과 다른 암호화된 컬럼2에 저장된 암호비교코드ECC2를 바로 비교하거나, 혹은 비교대상이 되는 평문을 Order Preserving Hash Function을 사용하여 암호비교코드ECC3를 생성하여 비교한다. 일반적으로 암호화와 복호화 알고리즘을 이용하여 암호화와 복호화를 수행하는 비용보다는 Order Preserving Hash Function으로 암호비교코드ECC를 생성하는 비용이 적기 때문에 복호화하여 비교하는 방법보다는 빠른 비교와 검색이 가능하다.
또한 암호비교코드ECC(560)는 복호화가 필요없어 join 연산에 사용될 수 있다. join 연산은 연관성이 있는 데이터를 조합하여 테이블을 확장하는 연산을 의미하며, join 연산에서 연관이 있는 데이터를 찾는 과정에서 암호비교코드ECC(560)를 사용할 수 있다.
그리고 암호비교코드ECC(560)는 데이터 복제에도 사용이 가능하다. 데이터 복제는 이진(Binary) 데이터를 비교한 후 차이가 발생하는 부분만 처리한다. 그러나, 데이터 복제시 암호화를 수행할 경우, 같은 값인 경우에도 암호화 보안정책(policy)에 따라 암호화 값이 달라지게 된다. 따라서 데이터 복제시 암호화를 수행할 경우 일일이 모든 데이터를 하나하나 복호화를 수행하여야 하므로 많은 자원을 소비하게 된다.
그러나, 본 발명의 바람직한 일 실시예의 암호비교코드ECC(560)는 암호화 보안정책(policy)이 달라지더라도 값이 변하지 않으므로, 복제된 데이터간에 암호비교코드ECC(560)만 비교하여 차이가 있는 부분만 처리하면 된다.
이 외에 암호비교코드ECC(560) index scan, scan filter, like 연산 등에서사용될 수 있다.
복호화 과정은 아래와 같다.
이상의 과정을 통해 암호화된 데이터의 원본을 보기 위해서는 복호화 절차가 필요하다. 이를 위해, 데이터베이스(500)는 외부암호화부(540)에 보안정책(Policy)을 전송하고, 외부암호화부(540)로부터 보안정책(Policy)에 대한 인증결과를 수신한다.
데이터베이스(500)는 외부암호화부(540)로부터 수신한 인증결과를 기초로 인증이 허가되면 암호문(550)을 내부 복호화부(530)에서 복호화한다.
도 6은 본 발명의 바람직한 일 실시예로서, 데이터베이스에서 암호화 방법을 나타내는 흐름도이다.
데이터베이스에서 외부암호화부로 보안정책(Policy)를 전송한 후, 외부암호화부로부터 보안정책에 대한 인증 허가를 수신한다(S610, S620). 인증 허가를 수신하면 데이터베이스 내부에서는 중요데이터를 컬럼(column) 단위로 선택적으로 암호화한다. 그리고, 해쉬함수(Hash Function)를 이용하여 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성한다(S630).
이후 암호화한 중요데이터 및 이에 대응되는 상기 암호비교코드ECC를 하나의 암호화데이터타입 형태로 생성한다(S640). 암호화데이터 타입 내의 암호비교코드ECC는 보안정책(Policy)에 상관없이 항상 일정한 값을 지니며, 복호화 과정을 거치지 않고 사용이 가능하다. 따라서, 암호비교코드ECC는 복호화 과정을 수행하지 않고도 데이터 검색, 데이터 복제, join, index scan, scan filter, like 연산에서 사용이 가능하다.
암호화한 데이터의 원데이터를 보고자 하는 경우에는 데이터베이스는 외부암호화부에 보안정책을 재전송한다. 그리고, 외부암호화부에서 보안정책에 대해 인증 허가를 수신하면, 데이터베이스 내부에서 암호화한 중요데이터를 복호화한다.
도 7 은 본 발명의 바람직한 일 실시예로서 DBMS(Database Management System)을 도시한다.
DBMS(Database Management System)(700)는 외부암호화부(710), 내부암호화부(720) 및 암호화데이터타입생성부(730)를 포함한다.
외부암호화부(710)는 데이터베이스와 분리되어 있으며, 데이터베이스로부터 보안정책(Policy)을 수신한 후 인증을 수행한다. 외부암호화부(710)에서 인증이 허여되면 이를 데이터베이스에 전달한다.
인증이 허가되면 데이터베이스 내의 내부암호화부(720)는 중요데이터를 컬럼(column) 단위로 선택적으로 암호화하고, 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성한다. 암호비교코드ECC는 해쉬함수를 이용하여 생성하며, 보안정책(Policy)과 관계없이 일정한 값을 지닌다. 또한 복호화 수행없이 데이터 검색, 데이터 복제, join, index scan, scan filter, like 연산에서 사용이 가능하다.
암호화데이터타입생성부(730)는 암호화한 중요데이터 및 이에 대응되는 상기 암호비교코드ECC를 하나의 암호화데이터타입 형태로 생성한다. 본 발명의 바람직한 일 실시예에서는 암호화데이터타입을 데이터베이스의 고유 데이터 타입으로 사용함으로 index, primary key index, unique index, composite index, foreign key, not null, tirgger 등이 모두 가능하다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피 디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다.
그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (11)

  1. 데이터베이스에서 상기 데이터베이스와 분리되어 암호화를 수행하는 외부암호화부로부터 상기 데이터베이스의 보안정책(Policy)에 대한 인증 허가를 수신하는 단계로, 상기 보안정책은 상기 외부암호화부에서 정의한 보안객체의 이름을 나타내고, 접근제어, 암호화 알고리즘, 암호화 키, 적어도 하나 이상의 암호화 옵션 중 적어도 하나 이상을 포함하며, 상기 외부암호화부는 상기 보안객체를 상기 데이터베이스와 별도로 관리하는, 인증허가 수신단계;
    상기 외부암호화부로부터 상기 데이터베이스의 보안정책(Policy)에 대한 인증 허가를 수신하면, 상기 데이터베이스 내의 내부암호화부에서, 중요데이터를 컬럼(column) 단위로 선택적으로 암호화하고 상기 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성하는 단계; 및
    암호화데이터타입생성부에서 상기 암호화한 중요데이터 및 이에 대응되는 상기 암호비교코드ECC를 하나의 암호화데이터타입 형태로 생성하는 단계;를 포함하고, 이 경우 상기 암호비교코드ECC는 암호화만 수행되는 것을 특징으로 하는 데이터베이스에서 암호화방법.
  2. 제 1 항에 있어서, 상기 보안정책은
    암호화 알고리즘과 암호화 키를 관리하는 것을 특징으로 하는 데이터베이스에서 암호화방법.
  3. 제 1 항에 있어서,
    상기 암호비교코드ECC는 상기 중요데이터에 해쉬함수(Hash Function)를 적용하여 생성되는 것을 특징으로 하는 데이터베이스에서 암호화방법.
  4. 제 1 항에 있어서,
    상기 암호비교코드ECC는 데이터 검색, 데이터 복제, join, index scan, scan filter, like 연산에서 사용이 가능한 것을 특징으로 하는 데이터베이스에서 암호화방법.
  5. 제 4 항에 있어서, 상기 암호비교코드ECC는
    복호화 과정을 수행하지 않고도 데이터 검색, 데이터 복제, join, index scan, scan filter, like 연산에서 사용이 가능한 것을 특징으로 하는 데이터베이스에서 암호화방법.
  6. 제 1 항에 있어서, 상기 암호비교코드ECC는
    상기 보안정책이 상이한 경우에도 동일한 값을 지니는 것을 특징으로 하는 데이터베이스에서 암호화방법.
  7. 제 1 항에 있어서,
    상기 데이터베이스는 상기 외부암호화부에 상기 보안정책을 재전송하고, 상기 외부암호화부로부터 재전송한 상기 보안정책에 대해 인증 허가를 수신하면, 복호화부에서 상기 암호화한 중요데이터를 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 데이터베이스에서 암호화방법.
  8. 데이터베이스와 분리되어 있으며, 상기 데이터베이스로부터 보안정책(Policy)을 수신하는 외부암호화부로서, 상기 보안정책은 상기 외부암호화부에서 정의한 보안객체의 이름을 나타내고, 상기 외부암호화부는 상기 보안객체를 상기 데이터베이스와 별도로 관리하는, 외부암호화부;
    상기 외부암호화부로부터 상기 보안정책에 대한 인증 허가를 받으면, 상기 데이터베이스 내에서 중요데이터를 컬럼(column) 단위로 선택적으로 암호화하고 상기 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성하는 내부암호화부;및
    상기 암호화한 중요데이터 및 이에 대응되는 상기 암호비교코드ECC를 하나의 암호화데이터타입 형태로 생성하는 암호화데이터타입생성부;를 포함하고, 이 경우 상기 암호비교코드ECC는 암호화만 수행되는 것을 특징으로 하는 DBMS(Database Management System).
  9. 제 8 항에 있어서, 상기 암호비교코드ECC는
    별도의 복호화 과정없이 비교가 가능한 것을 특징으로 하는 DBMS(Database Management System).
  10. 제 9 항에 있어서,
    상기 암호비교코드ECC는 상기 비교 과정에서 색인의 기능을 수행할 수 있는 것을 특징으로 하는 DBMS(Database Management System).
  11. 데이터베이스와 분리되어 있으며, 상기 데이터베이스로부터 보안정책(Policy)을 수신하는 외부암호화부로서, 상기 보안정책은 상기 외부암호화부에서 정의한 보안객체의 이름을 나타내고, 상기 외부암호화부는 상기 보안객체를 상기 데이터베이스와 별도로 관리하는, 외부암호화부;
    상기 외부암호화부로부터 상기 보안정책에 대한 인증 허가를 받으면, 상기 데이터베이스 내에서 중요데이터를 컬럼(column) 단위로 선택적으로 암호화하고 상기 중요데이터에 대한 암호비교코드ECC(Encrypted Comparison Code)를 생성하는 내부암호화부;및
    상기 암호화한 중요데이터 및 이에 대응되는 상기 암호비교코드ECC를 하나의 암호화데이터타입 형태로 생성하는 암호화데이터타입생성부;를 포함하고, 상기 암호화데이터타입은 상기 데이터베이스의 고유 데이터 타입으로 이용되는 것을 특징으로 하는 DBMS(Database Management System).
KR1020110103043A 2011-10-10 2011-10-10 Dbms 및 데이터베이스에서 암호화 방법 KR101371608B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110103043A KR101371608B1 (ko) 2011-10-10 2011-10-10 Dbms 및 데이터베이스에서 암호화 방법
US13/526,360 US8949603B2 (en) 2011-10-10 2012-06-18 Database management system and encryption method performed in database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110103043A KR101371608B1 (ko) 2011-10-10 2011-10-10 Dbms 및 데이터베이스에서 암호화 방법

Publications (2)

Publication Number Publication Date
KR20130039354A KR20130039354A (ko) 2013-04-22
KR101371608B1 true KR101371608B1 (ko) 2014-03-14

Family

ID=48042890

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110103043A KR101371608B1 (ko) 2011-10-10 2011-10-10 Dbms 및 데이터베이스에서 암호화 방법

Country Status (2)

Country Link
US (1) US8949603B2 (ko)
KR (1) KR101371608B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102657161B1 (ko) * 2023-06-21 2024-04-15 인스피언 주식회사 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600677B2 (en) * 2011-11-11 2017-03-21 Nec Corporation Database apparatus, method, and program
CN105574424B (zh) * 2014-10-16 2018-10-16 中国移动通信集团广东有限公司 一种大数据加解密处理方法及系统
US10114955B2 (en) * 2015-02-11 2018-10-30 Visa International Service Association Increasing search ability of private, encrypted data
US10380370B2 (en) 2015-02-27 2019-08-13 Samsung Electronics Co., Ltd. Column wise encryption for lightweight DB engine
KR101613146B1 (ko) * 2015-03-24 2016-04-18 주식회사 티맥스데이터 데이터베이스 암호화 방법
KR101563461B1 (ko) 2015-03-24 2015-10-26 주식회사 티맥스데이터 데이터베이스 보안 관리를 위한 방법, 서버 및 컴퓨터-프로그램
US10176207B1 (en) 2015-06-09 2019-01-08 Skyhigh Networks, Llc Wildcard search in encrypted text
US10404669B2 (en) 2015-06-09 2019-09-03 Skyhigh Networks, Llc Wildcard search in encrypted text
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
KR101751970B1 (ko) 2016-06-20 2017-07-03 주식회사 티맥스데이터 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체
KR101747265B1 (ko) 2016-06-20 2017-06-15 주식회사 티맥스데이터 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체
CN106131014A (zh) * 2016-07-06 2016-11-16 杨炳 用于医疗的病例信息访问的安全系统
US11393046B1 (en) * 2017-01-17 2022-07-19 Intuit Inc. System and method for perpetual rekeying of various data columns with a frequency and encryption strength based on the sensitivity of the data columns
CN106934301B (zh) * 2017-02-24 2019-12-13 中国科学院大学 一种支持密文数据操作的关系型数据库安全外包数据处理方法
CN106713372B (zh) * 2017-03-27 2019-07-05 泰华智慧产业集团股份有限公司 一种基于权限控制的安全控制方法及安全控制系统
US10541983B1 (en) * 2017-07-19 2020-01-21 Amazon Technologies, Inc. Secure storage and searching of information maintained on search systems
CN112804252B (zh) * 2021-02-03 2023-04-11 北京陶乐科技有限公司 一种用户管理系统
CN112560075B (zh) * 2021-02-22 2021-05-25 西南石油大学 一种基于椭圆曲线的轻量级可搜索加密方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050147246A1 (en) * 2004-01-05 2005-07-07 Rakesh Agrawal System and method for fast querying of encrypted databases
KR100737359B1 (ko) * 2006-10-04 2007-07-10 (주)이글로벌시스템 암호화된 컬럼의 인덱스 구축방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004092864A2 (en) * 2003-04-14 2004-10-28 Matsushita Electric Industrial Co., Ltd. Client-server authentication using the challenge-response principle
US7644285B1 (en) * 2004-04-08 2010-01-05 Intuit Inc. Recovery access to secure data
US20070038579A1 (en) * 2005-08-12 2007-02-15 Tsys-Prepaid, Inc. System and method using order preserving hash
US20070079140A1 (en) * 2005-09-26 2007-04-05 Brian Metzger Data migration
US8244678B1 (en) * 2008-08-27 2012-08-14 Spearstone Management, LLC Method and apparatus for managing backup data
US8626749B1 (en) * 2010-04-21 2014-01-07 Stan Trepetin System and method of analyzing encrypted data in a database in near real-time

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050147246A1 (en) * 2004-01-05 2005-07-07 Rakesh Agrawal System and method for fast querying of encrypted databases
KR100737359B1 (ko) * 2006-10-04 2007-07-10 (주)이글로벌시스템 암호화된 컬럼의 인덱스 구축방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102657161B1 (ko) * 2023-06-21 2024-04-15 인스피언 주식회사 데이터 관리 장치, 데이터 관리 방법 및 데이터 관리 프로그램을 저장하는 컴퓨터로 판독 가능한 저장 매체

Also Published As

Publication number Publication date
KR20130039354A (ko) 2013-04-22
US20130091357A1 (en) 2013-04-11
US8949603B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
KR101371608B1 (ko) Dbms 및 데이터베이스에서 암호화 방법
AU2018367363B2 (en) Processing data queries in a logically sharded data store
US20210099287A1 (en) Cryptographic key generation for logically sharded data stores
EP3694143B1 (en) Enabling access to data
CN109450633B (zh) 信息加密发送方法及装置、电子设备、存储介质
WO2014207554A2 (en) Method and apparatus for providing database access authorization
US20150143107A1 (en) Data security tools for shared data
CN106682521B (zh) 基于驱动层的文件透明加解密系统及方法
CA3065767C (en) Cryptographic key generation for logically sharded data stores
CN103973698A (zh) 一种云存储环境中的用户访问权限回收方法
US9436849B2 (en) Systems and methods for trading of text based data representation
US9754118B2 (en) Performing an operation on a data storage
WO2022199796A1 (en) Method and computer-based system for key management
KR100464797B1 (ko) 네트워크 키에 의한 전자문서 암호화 및 암호해독 방법
Thota et al. Split key management framework for Open Stack Swift object storage cloud
US20220086000A1 (en) Cryptographic systems
WO2023119554A1 (ja) 制御方法、情報処理装置および制御プログラム
JP6467385B2 (ja) ユーザ端末、暗号化復号方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for 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: 20170303

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180305

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200302

Year of fee payment: 7