KR101613146B1 - 데이터베이스 암호화 방법 - Google Patents

데이터베이스 암호화 방법 Download PDF

Info

Publication number
KR101613146B1
KR101613146B1 KR1020150040593A KR20150040593A KR101613146B1 KR 101613146 B1 KR101613146 B1 KR 101613146B1 KR 1020150040593 A KR1020150040593 A KR 1020150040593A KR 20150040593 A KR20150040593 A KR 20150040593A KR 101613146 B1 KR101613146 B1 KR 101613146B1
Authority
KR
South Korea
Prior art keywords
data value
encrypted data
value
hash
storage medium
Prior art date
Application number
KR1020150040593A
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 KR1020150040593A priority Critical patent/KR101613146B1/ko
Priority to US14/733,778 priority patent/US9646176B2/en
Priority to CN201510347270.4A priority patent/CN106022154B/zh
Application granted granted Critical
Publication of KR101613146B1 publication Critical patent/KR101613146B1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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
    • 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
    • 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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따라 메모리에 저장된 데이터 테이블에 포함된 데이터 값을 암호화하여 영구 저장 매체에 저장하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은, 메모리에 저장된 데이터 테이블에 포함된 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 단계, 상기 데이터 값 및 상기 데이터 값의 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계 및 상기 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체(persistent storage) 상에 기록할 것을 결정하는 단계를 포함할 수 있다.

Description

데이터베이스 암호화 방법{METHOD FOR ENCRYPTING DATABASE}
본 발명은 데이터베이스 암호화에 대한 것으로서, 보다 구체적으로는, 데이터를 암호화하여 저장함으로써, 권한을 가진 내부 관리자의 접근으로부터 보호하기 위한 것이다.
컴퓨터 및 인터넷 기술이 발전함에 따라, 많은 양의 데이터를 효율적으로 저장하고 원하는 검색 조건으로 쉽고 빠르게 찾기 위한 데이터베이스에 대한 중요성이 증가되고 있다. 현재의 데이터베이스 시스템은 수많은 정보를 저장 및 검색하는 것을 허용한다. 이러한 정보 중 일부의 정보는 예컨대, 신용카드 번호 등과 같은 민감한 정보를 포함할 수 있다.
특히, 금융권, 인터넷 포털 사이트 등에서 개인정보를 수집하고 관리하는 데이터베이스의 보안은, 컴퓨터에서 처리되는 정보를 권한이 없는 사용자가 판단하거나 부적절하게 기록하는 것을 방지하기 위하여, 정당한 권한을 갖는 사용자의 정보처리 서비스를 컴퓨터 시스템에서 거부되지 않도록 보호하기 위하여, 그리고 대용량의 자료를 보관하는 데이터베이스 관리 시스템에서 데이터의 무결성(integrity), 기밀성, 가용성을 보장하기 위하여 필수적으로 필요하다.
최근에는 데이터베이스 서버 관리자 및 개발자에 의한 암호키 노출에 의한 정보 유출이 심각한 문제가 되고 있는 실정이다. 즉, 정보의 집적도가 날로 고도화되는 추세에 따라 기업 내에 존재하는 데이터베이스에 축적된 정보의 양도 이에 비례하여 증가하고 있으며, 이로 인하여, 가령 통신회사에서 관리하는 고객정보 데이터베이스에 담긴 고객정보(주민등록번호, 전화번호, 계좌번호 등)가 부정한 경로를 통하여 정보가 유출되는 경우, 그 피해의 파급효과는 막대해지고 있다.
이러한 데이터의 유출은 기업 외부의 해커에 의한 해킹(hacking), 데이터 저장 공간에 대한 물리적인 접근 등에 따른 경우도 있으나, 실질적으로 대부분의 정보 유출은 데이터베이스에 대하여 정당한 접근 권한을 보유한 내부자(예컨대, 데이터베이스 관리자(administrator)에 의하여 발생하고 있는 실정이며, 이러한 내부자에 의한 정보 유출은 외부로부터 발생한 해킹사건보다 심각하고 치명적인 피해를 초래할 수 있다.
이러한 데이터베이스 보안을 관리하는 종래의 기술은 각각의 클라이언트로 할당된 보안 프로파일에서 규정된 접근 제어 방식을 사용하여 특정한 사용자에게 특정한 정보에 대한 접근을 제한하고 있다. 이러한 기술은 클라이언트가 인가되지 않은 정보를 액세스하는 것을 차단할 수 있다. 하지만, 이러한 종래의 기술들은 정당한 접근 권한을 보유한 내부자(예컨대, 데이터베이스 관리자), 또는 OS 권한(OS privilege)을 보유한 자의 부정한 행위를 차단할 수는 없다는 단점이 존재한다.
이러한 문제점을 해결하기 위하여, 사용자 애플리케이션 내에서 기밀 정보를 암호화하는 방식이 제안되었으나, 이러한 방식의 경우 기밀 정보를 다루는 모든 사용자 애플리케이션이 암호화/복호화되어야 하기 때문에, 이러한 모든 사용자 애플리케이션에서의 암호화/복호화 코드를 제공해야 한다는 불편함이 존재할 수 있다.
따라서, 데이터베이스 시스템 내에서의 기밀 정보를 효율적인 방식으로 보호하기 위하여, 그리고 사용자 애플리케이션을 변경하지 않고도 내부자의 부정한 행위를 차단하기 위하여, 데이터를 암호화하여 저장하는 기법에 대한 수요가 당업계에 존재한다.
본 발명은 전술한 배경기술에 대응하여 안출된 것으로, 데이터를 암호화 저장하여 권한을 가진 내부 관리자, OS권한을 가진 자, 또는 물리적으로 데이터베이스 서버에 접근이 가능한 자의 접근으로부터 데이터를 보호하기 위한 것이다.
본 발명은 해시 함수를 이용하여 암호화된 데이터의 무결성을 검증하기 위한 것이다.
본 발명은 한 암호화 데이터를 동일한 형식을 가진 다른 위치에 존재하는 암호화 데이터로 덮어 쓰는 시도가 이루어진 경우, 데이터의 무결성을 검증하기 위한 것이다.
본 발명은 암호화 데이터가 업데이트된 경우, 이를 업데이트 이전 암호화 값으로 덮어쓰는 시도가 이루어진 경우, 데이터의 무결성을 검증하기 위한 것이다.
전술한 과제를 해결하기 위한 본 발명의 일 실시예에 따라 메모리에 저장된 데이터 테이블에 포함된 데이터 값을 암호화하여 영구 저장 매체에 저장하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은, 메모리에 저장된 데이터 테이블에 포함된 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 단계, 상기 데이터 값 및 상기 데이터 값의 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계 및 상기 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체(persistent storage) 상에 기록할 것을 결정하는 단계를 포함할 수 있다.
또한, 본 발명의 다른 일 실시예에 따라, 메모리에 저장된 데이터 테이블에 포함된 데이터 값을 암호화하여 영구 저장 매체에 저장하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은, 메모리에 저장된 데이터 테이블에 포함된 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 단계, 상기 데이터 값 및 상기 데이터 값이 저장될 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계 및 상기 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체 상에 기록할 것을 결정하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따라, 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은, 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 단계, 상기 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 단계, 상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계 및 상기 제 2 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체 상에 기록할 것을 결정하는 단계를 포함할 수 있다.
또한, 본 발명의 다른 일 실시예에 따라, 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은, 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 단계, 상기 제 2 암호화된 데이터 값을 영구 저장 매체 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 단계, 상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계 및 상기 제 2 암호화된 데이터 값 및 상기 해시 값을 상기 영구 저장 매체 상에 기록할 것을 결정하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따라, 영구 저장 매체 상에 저장된 암호화된 데이터에 대한 무결성을 검증하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은, 상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 단계, 상기 복호화된 데이터 값 및 상기 복호화된 데이터 값의 데이터 테이블 내에서의 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계 및 생성된 상기 해시 값 및 상기 영구 저장 매체 상에 저장된 해시 값을 비교하여, 상기 복호화된 데이터의 무결성을 검증하는 단계를 포함할 수 있다.
또한, 본 발명의 다른 일 실시예에 따라, 영구 저장 매체 상에 저장된 암호화된 데이터에 대한 무결성을 검증하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은, 상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 단계, 상기 복호화된 데이터 값 및 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계 및 생성된 상기 해시 값 및 상기 영구 저장 매체 상에 저장된 해시 값을 비교하여, 상기 복호화된 데이터의 무결성을 검증하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따라, 데이터 값을 암호화 저장하여 권한을 가진 내부 관리자의 접근으로부터 데이터를 보호할 수 있는 데이터베이스 서버가 개시된다. 상기 데이터베이스 서버는, 데이터 값을 포함하는 데이터 테이블을 저장하는 메모리, 상기 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 암호화 모듈, 상기 데이터 값 및 상기 데이터 값의 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈 및 상기 암호화된 데이터 값 및 상기 해시 값이 기록되는 영구 저장 매체를 포함할 수 있다.
또한, 본 발명의 다른 일 실시예에 따라, 데이터 값을 암호화 저장하여 권한을 가진 내부 관리자의 접근으로부터 데이터를 보호할 수 있는 데이터베이스 서버가 개시된다. 상기 데이터베이스 서버는, 데이터 값을 포함하는 데이터 테이블을 저장하는 메모리, 상기 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 암호화 모듈, 상기 데이터 값 및 상기 데이터 값이 저장될 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈 및 상기 암호화된 데이터 값 및 상기 해시 값이 기록되는 상기 영구 저장 매체를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따라, 암호화되어 저장된 데이터 값에 대한 권한을 가진 내부 관리자의 공격에 대비하여 데이터를 보호할 수 있는 데이터베이스 서버가 개시된다. 상기 데이터베이스 서버는, 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 암호화 모듈, 상기 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 저장 모듈, 상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈 및 상기 제 2 암호화된 데이터 값 및 상기 해시 값이 기록되는 상기 영구 저장 매체를 포함할 수 있다.
또한, 본 발명의 다른 일 실시예에 따라, 암호화되어 저장된 데이터 값에 대한 권한을 가진 내부 관리자의 공격에 대비하여 데이터를 보호할 수 있는 데이터베이스 서버가 개시된다. 상기 데이터베이스 서버는, 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 암호화 모듈, 상기 제 2 암호화된 데이터 값을 영구 저장 매체 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 저장 모듈, 상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈 및 상기 제 2 암호화된 데이터 값 및 상기 해시 값이 기록되는 상기 영구 저장 매체를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따라, 영구 저장 매체 상에 저장된 암호화된 데이터 값에 대한 무결성을 검증하기 위한 데이터베이스 서버가 개시된다. 상기 데이터베이스 서버는, 상기 암호화된 데이터 값 및 제 1 해시 값이 저장된 영구 저장 매체, 상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 복호화 모듈, 상기 복호화된 데이터 값 및 상기 복호화된 데이터 값의 데이터 테이블 내에서의 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 제 2 해시 값을 생성하는 해시 모듈 및 상기 제 1 및 제 2 해시값을 비교하여, 상기 복호화된 데이터 값의 무결성을 검증하는 무결성 검증 모듈을 포함할 수 있다.
또한, 본 발명의 다른 일 실시예에 따라, 영구 저장 매체 상에 저장된 암호화된 데이터 값에 대한 무결성을 검증하기 위한 데이터베이스 서버가 개시된다. 상기 데이터베이스 서버는, 상기 암호화된 데이터 값 및 제 1 해시 값이 저장된 영구 저장 매체, 상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 복호화 모듈, 상기 복호화된 데이터 값 및 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 제 2 해시 값을 생성하는 해시 모듈 및 상기 제 1 및 제 2 해시값을 비교하여, 상기 복호화된 데이터 값의 무결성을 검증하는 무결성 검증 모듈을 포함할 수 있다.
본 발명은 데이터를 암호화 저장하여 권한을 가진 내부 관리자, OS권한을 가진 자, 또는 물리적으로 데이터베이스 서버에 접근이 가능한 자의 접근으로부터 데이터를 보호할 수 있다.
본 발명은 해시 함수를 이용하여 암호화된 데이터의 무결성을 검증할 수 있다.
본 발명은 한 암호화 데이터를 동일한 형식을 가진 다른 위치에 존재하는 암호화 데이터로 덮어 쓰는 시도가 이루어진 경우, 데이터의 무결성을 검증할 수 있다.
본 발명은 암호화 데이터가 업데이트된 경우, 이를 업데이트 이전 암호화 값으로 덮어쓰는 시도가 이루어진 경우, 데이터의 무결성을 검증할 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 시스템(100)을 예시적으로 도시한다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 서버의 블록 구성도(block diagram)이다.
도 3은 본 발명의 일 실시예에 따른 데이터베이스 암호화 방법의 순서도이다.
도 4는 본 발명의 다른 일 실시예에 따른 데이터베이스 암호화 방법의 순서도이다.
도 5는 본 발명의 일 실시예에 따른 암호화된 데이터 값에 대한 업데이트가 있는 경우 데이터베이스 서버의 동작을 나타낸 순서도이다.
도 6은 본 발명의 다른 일 실시예에 따른 암호화된 데이터 값에 대한 업데이트가 있는 경우 데이터베이스 서버의 동작을 나타낸 순서도이다.
도 7 은 본 발명의 일 실시예에 따른 데이터베이스 복호화 방법의 순서도이다.
도 8은 본 발명의 다른 일 실시예에 따른 데이터베이스 복호화 방법의 순서도이다.
다양한 실시예들이 이제 도면을 참조하여 설명되며, 전체 도면에서 걸쳐 유사한 도면번호는 유사한 구성요소를 나타내기 위해서 사용된다. 본 명세서에서, 다양한 설명들이 본 발명의 이해를 제공하기 위해서 제시된다. 그러나 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다. 다른 예들에서, 공지된 구조 및 장치들은 실시예들의 설명을 용이하게 하기 위해서 블록 다이어그램 형태로 제공된다.
본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정, 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있고, 일 컴포넌트는 하나의 컴퓨터 내에 로컬화될 수 있고, 또는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통한 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.
제시된 실시예들에 대한 설명은 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
본 명세서에서 사용되는 용어 "데이터 테이블" 및 "테이블"은 종종 서로 상호교환가능하도록 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 시스템(100)을 예시적으로 도시한다.
도 1에서 도시되는 바와 같이, 데이터베이스 서버(120)는, 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 싱글 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다.
클라이언트(110)는 네트워크를 통하여 통신하기 위한 메커니즘을 갖는 데이터베이스 시스템에서의 노드들을 의미할 수 있다. 예를 들어, 클라이언트(110)는 PC, 랩탑 컴퓨터, 워크스테이션, 단말 및/또는 네트워크 접속성을 갖는 임의의 전자 디바이스를 포함할 수 있다.
데이터베이스 서버(120)는 DBMS(Database Management System)(130) 및 영구 저장 매체(persistent storage)(140)를 포함할 수 있다. 도 1에서는 도시되지 않았지만, 데이터베이스 서버(120)는 버퍼 캐시를 포함하는 하나 이상의 메모리를 포함할 수 있다. 또한, 도 1에서는 도시되지 않았지만, 데이터베이스 서버(120)는 하나 이상의 프로세서를 포함할 수 있다. 따라서, DBMS(130)는 상기 메모리 상에서 상기 프로세서에 의하여 동작될 수 있다.
영구 저장 매체(persistent storage)(140)는, 예를 들어 자기(magnetic) 디스크, 광학(optical) 디스크 및 광자기(magneto-optical) 저장 디바이스뿐만 아니라 플래시 메모리 및/또는 배터리-백업 메모리에 기초한 저장 디바이스와 같은, 임의의 데이터를 지속적으로 할 수 있는 비-휘발성(non-volatile) 저장 매체를 의미한다. 이러한 영구 저장 매체(140)는 다양한 통신 수단을 통하여 데이터베이스 서버(120)의 프로세서 및 메모리와 통신할 수 있다. 추가적인 실시예에서, 이러한 영구 저장 매체(140)는 데이터베이스 서버(120) 외부에 위치하여 데이터베이스 서버(120)와 통신 가능할 수도 있다.
DBMS(130)는 데이터베이스 서버(120)에서 필요한 데이터를 검색, 삽입, 수정 및/또는 삭제 등과 같은 동작들을 수행하는 것을 허용하기 위한 프로그램으로서, 전술한 바와 같이, 데이터베이스 서버(120)의 메모리에서 프로세서에 의하여 구현될 수 있다.
클라이언트(110)와 데이터베이스 서버(120) 네트워크를 통하여 서로 통신할 수 있다. 본 발명의 일 실시예에 따른 네트워크는 공중전화 교환망(PSTN:Public Switiched Telephone Network), xDSL(x Digital Subscriber Line), RADSL(Rate Adaptive DSL), MDSL(Multi Rate DSL), VDSL(Very High Speed DSL), UADSL(Universal Asymmetric DSL), HDSL(High Bit Rate DSL) 및 근거리 통신망(LAN) 등과 같은 다양한 유선 통신 시스템들을 사용할 수 있다.
또한, 본 명세서에서 제시되는 네트워크는 CDMA(Code Division Multi Access), TDMA(Time Division Multi Access), FDMA(Frequency Division Multi Access), OFDMA(Orthogonal Frequency Division Multi Access), SC-FDMA(Single Carrier-FDMA) 및 다른 시스템들과 같은 다양한 무선 통신 시스템들을 사용할 수 있다. 본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 서버의 블록 구성도(block diagram)이다.
본 발명의 일 실시예에 따른 데이터베이스 서버(120)는 영구 저장 매체(persistent storage)(140), DBMS(130) 및 메모리(135)를 포함할 수 있다. 전술한 바와 같이 DBMS(130)는 데이터베이스 서버(120) 내의 하나 이상의 메모리(135) 및 하나 이상의 프로세서에 의하여 동작될 수 있다.
DBMS(130)는 송수신 모듈(210), 암호화 모듈(220), 해시 모듈(230), 저장 모듈(240), 복호화 모듈(250) 및 무결성 검증 모듈(260)을 포함할 수 있다. 도 2에서 도시되는 DBMS(130) 내의 각각의 모듈들은 서로 통신 가능하다. 이러한 DBMS(130)의 모듈들은 예시적인 것으로서, 구현에 따라 추가적인 모듈들이 포함될 수 있거나 상기 모듈들 중 일부가 생략될 수도 있다.
메모리(135)는 동적 램(DRAM, dynamic random access memory), 정적 램(SRAM, static random access memory) 등의 랜덤 액세스 메모리(RAM)와 같은, 프로세서가 직접 접근하는 주된 저장 장치로서 전원이 꺼지면 저장된 정보가 순간적으로 지워지는 휘발성(volatile) 저장 장치를 의미할 수 있다. 상기 메모리(135)는 상기 프로세서에 의하여 동작 될 수 있다. 상기 메모리(135)는 데이터 값을 포함하는 데이터 테이블(data table, 270)을 임시로 저장할 수 있다. 상기 데이터 테이블(270)은 데이터 값을 포함할 수 있으며, 본 발명의 일 실시예에서 상기 데이터 테이블(270)의 데이터 값은 컬럼(column) 단위로 암호화 되어서 영구 저장 매체(140)에 저장될 수 있다. 상기 메모리(135)는 버퍼 캐시를 포함하며, 상기 버퍼 캐시의 데이터 블록에는 데이터가 저장될 수 있다. 상기 데이터는 백그라운드 프로세스에 의하여 영구 저장 장치(140)에 기록될 수 있다.
송수신 모듈(210)은 사용자로부터의 데이터 저장, 조회, 및 데이터 암호화 요청 등을 수신할 수 있다. 또한, 송수신 모듈(210)은 데이터 저장, 및 조회 요청에 대한 결과 정보를 전달할 수도 있다.
암호화 모듈(220)은 데이터를 영구저장매체(140)에 기록(저장)하기 전에 데이터에 대한 암호화(encryption)를 수행할 수 있다. 암호화 모듈(220)은 평문 데이터(plain text)를 기초로 하여 암호화된 데이터(cipher text, encrypted text)를 생성할 수 있다. 본 명세서에서의 데이터에 대한 암호화 방식은, 컬럼 레벨 암호화 및 테이블스페이스 레벨 암호화를 포함할 수 있다. 컬럼 레벨 암호화는 암호화되도록 지정된 컬럼의 데이터가 암호화된다는 것을 의미한다. 테이블스페이스 레벨의 암호화는, 테이블스페이스 단위로 데이터에 대한 암호화가 구현된다는 것으로서, 예를 들어 OS 시스템 상에서 생성되는 물리적 데이터 파일들이 암호화된다는 것을 의미한다. 본 발명의 일 양상에서, 저장될 데이터에 대해서는 컬럼 레벨 암호화가 수행될 수 있다.
암호화 모듈(220)은 상기 데이터 값에 기초하여 암호화된 데이터 값을 생성할 수 있다. 암호화 모듈(220)은 암호화 키에 포함된 암호화 정보에 기초하여, 암호화 함수를 결정하고, 상기 데이터 값에 기초하여 연산하는 상기 암호화 함수를 이용하여 암호화된 데이터 값을 생성할 수 있다.
상기 암호화 키는 적어도 암호화 모드에 관련한 정보, 암호화 데이터 타입 및 데이터의 길이 정보 등을 포함할 수 있다. 상기 암호화 모드는 데이터 암호화 표준(DES, data encryption standard) 및 삼중 데이터 암호화 표준(triple DES), 고급 암호화 표준(AES, advanced encryption standard), 아리아(ARIA), 시드(SEED) 중 적어도 하나를 포함할 수 있다. 상기 암호화 키는 암호화 및 복호화에 사용될 수 있다. 암호화 함수는 평문(plain text)을 암호문(encrypted text)으로 변경할 수 있는 암호화 알고리즘을 포함할 수 있다. 상기 암호화 함수는 암호화 및 복호화를 수행할 때, 상기 암호화 키를 참조할 수 있다. 상기 암호화 키(encryption key)는 상기 데이터베이스 서버(120)의 내부에 저장되거나, 또는 상기 데이터베이스 서버(120)의 외부에 저장될 수 있으며, 추가적으로 보안을 위하여 상기 암호화 키는 마스터 키(master key)를 통하여 암호화되어 저장될 수 있다. 상기 마스터 키는 외부 저장매체 또는 상기 데이터베이스 서버(120)의 내부에 저장될 수 있다. 본 발명의 일 양상에 따른 암호화(복호화) 기법은, 다양한 암호화 알고리즘, 암호화 키, 및/또는 암호화 옵션(초기화 벡터 사용여부 등)의 조합으로 이루어질 수 있다.
또한, 상기 암호화 모듈(220)은 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성할 수 있다. 상기 제 2 암호화된 데이터 값은 기존에 암호화된 데이터 값과 상이할 수 있다.
전술한 암호화 동작은 데이터 테이블(270)의 하나 이상의 컬럼의 데이터 값을 암호화할 것으로 결정된 상기 하나 이상의 컬럼에 대해서 수행될 수 있다. 따라서 전술한 암호화 동작은 데이터 테이블(270)의 전체 데이터 값이 아니라, 암호화가 필요한 컬럼의 데이터 값(예컨대, 신용카드 번호, 연봉 등)에 대해서만 수행되므로, 보다 효율적으로 데이터베이스의 암호화가 가능하다.
해시 모듈(230)은 복호문(decrypted text)의 무결성(Integrity)을 검증하기 위한 해시 값을 생성할 수 있다. 해시 모듈(230)은 SHA(secure hash algorithm) 계, MD5등의 해시 알고리즘을 이용하여, 해시 값을 생성할 수 있다. 전술한 해시 알고리즘은 예시일 뿐이며, 본 발명의 해시 모듈(230)은 임의의 해시 알고리즘을 이용하여 해시 값을 생성할 수 있다.
상기 해시 모듈(230)은 데이터 테이블(270)의 데이터 값 및 상기 데이터 값의 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다. 상기 데이터 값의 위치 정보는, 로우 식별자(row ID) 및 컬럼 키(column key) 중 적어도 하나를 포함할 수 있다. 상기 컬럼 키는 상기 데이터 테이블의 메타 정보에 적어도 부분적으로 기초하며, 상기 로우 식별자는 데이터 블록 상에서 상기 데이터 값이 기록될 위치에 적어도 부분적으로 기초할 수 있다.
보다 구체적으로 해시 모듈(230)은 상기 데이터 테이블의 메타 정보에 적어도 부분적으로 기초하여 상기 컬럼 키를 획득할 수 있다. 또한, 암호화된 데이터는 메모리(135)의 데이터 블록에 기록될 수 있다. 이러한 경우 로우 식별자가 생성될 수 있다. 상기 로우 식별자는 상기 데이터 블록에 대하여 고유할 수 있다. 또한, 상기 해시 모듈(230)은 상기 데이터 블록 상에서 상기 데이터 값이 기록될 위치에 적어도 부분적으로 기초하여, 상기 로우 식별자를 획득할 수 있다. 또한, 상기 해시 모듈(230)은 상기 데이터 값, 상기 칼럼 키, 및 상기 로우 식별자에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다.
또한, 상기 해시 모듈(230)은 데이터 값 및 상기 데이터 값이 저장될 영구 저장 매체(140) 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다. 상기 영구 저장 매체(140) 상에서의 저장 위치 정보는, 로우 식별자 및 컬럼 키 중 적어도 하나를 포함할 수 있다.
또한, 상기 해시 모듈(230)은 암호화된 데이터 값에 대한 업데이트가 있는 경우, 업데이트 된 데이터 값 및 상기 업데이트 된 데이터 값에 기초하여 생성된 제 2 암호화된 데이터 값이 저장되는 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다.
또한, 상기 해시 모듈(230)은 암호화된 데이터 값에 대한 업데이트가 있는 경우, 업데이트 된 데이터 값 및 상기 업데이트 된 데이터 값에 기초하여 생성된 제 2 암호화된 데이터 값이 저장될 영구 저장 매체(140) 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체(140) 상에서의 위치와 상이한 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다.
또한, 상기 해시 모듈(230)은 암호화된 데이터가 복호화된 경우, 복호화된 데이터 값 및 상기 복호화된 데이터 값의 데이터 테이블(270) 내에서의 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다.
또한, 상기 해시 모듈(230)은 암호화된 데이터가 복호화된 경우, 복호화된 데이터 값 및 상기 복호화된 데이터 값의 상기 영구 저장 매체(140) 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다.
해시 모듈(230)은 데이터 값(평문), 업데이트 된 데이터 값(평문), 또는 복호화된 데이터 값(복호문) 및 상기 데이터 값들의 데이터 테이블(270) 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 데이터 값들에 매칭되는 해시 값을 생성할 수 있다. 또한, 해시 모듈(230)은 데이터 값(평문), 업데이트 된 데이터 값(평문), 또는 복호화된 데이터 값(복호문) 및 상기 데이터 값들의 영구 저장 장치(140)상에서의 저장 위치에 적어도 부분적으로 기초하여, 상기 데이터 값들에 매칭되는 해시 값을 생성할 수 있다.
상기 해시 값을 사용하지 않는 경우에는, 정당한 접근 권한을 보유한 내부자, OS 권한을 보유한 자 또는 물리적으로 데이터베이스 서버(120)에 접근할 수 있는 자가 암호화된 데이터 값을 입수하여, 상기 암호화된 데이터 값을 영구 저장 장치(140) 상에서 본래의 위치와 다른 위치에 저장할 수 있다. 이러한 경우, 상기 암호화된 데이터 값의 복호문은 유효한 데이터 값이 출력되므로, 무결성 검증 모듈(260)은 상기 데이터의 변조를 감지할 수 없다. 해시 값을 상기 암호화된 데이터 값에 매칭함으로써 데이터가 변조된 경우, 저장된 해시 값과 복호화된 데이터 값 기초하는 해시 값이 상이하여 상기 무결성 검증 모듈(260)은 데이터의 변조를 감지할 수 있다. 그러나, 해시 값이 단순히 데이터의 평문에 기초하는 경우, 정당한 접근 권한을 보유한 내부자, OS 권한을 보유한 자 또는 물리적으로 데이터베이스 서버(120)에 접근할 수 있는 자가 암호화된 데이터 값 및 그에 매칭된 해시 값을 입수하여, 다른 저장 위치에 저장하는 공격을 하는 경우에 대해서는 복호화된 데이터 값이 유효하고, 복호화된 데이터 값에 기초한 해시 값이 저장된 해시 값과 동일하므로, 데이터의 변조 여부가 감지될 수 없다. 그러나 본 발명의 일 실시예에 의한 상기 해시 값은 데이터 값의 평문 및 상기 암호화된 데이터의 저장 위치에 적어도 부분적으로 기초할 수 있다. 따라서, 전술한 바와 같은 데이터의 저장 위치를 변경하는 공격에 대해서 무결성 검증 모듈(260)은, 복호화된 데이터 값 및 복호화된 데이터 값의 저장 위치에 기초한 해시 값이 저장된 해시 값과 상이하므로, 유효한 암호화된 데이터 값의 위치 변경을 감지할 수 있다.
저장 모듈(240)은 암호화된 데이터 값 또는 해시 값의 저장 위치를 결정할 수 있다. 저장 모듈(240)은 암호화된 데이터 값의 데이터 테이블(270) 상에서의 저장 위치를 결정할 수 있다. 또한, 상기 저장 모듈(240)은 암호화된 데이터 값의 영구 저장 매체(140) 상에서의 저장 위치를 결정할 수 있다. 또한, 상기 저장 모듈(240)은 데이터 값, 암호화된 데이터 값 및 해시 값을 저장할 것을 결정할 수 있다. 또한, 상기 저장 모듈(240)은 암호화된 데이터 값 및 해시 값의 메모리(135)에서의 데이터 블록상의 저장 위치를 결정할 수 있다. 상기 데이터 블록상의 저장 위치가 결정되는 경우, 로우 식별자가 결정될 수 있다.
본 발명의 일 실시예에서, 데이터(예컨대, 암호화된 데이터)를 영구저장매체(140)에 기록하는 동작은 DBMS(130)의 백그라운드 프로세스(예컨대, Database buffer writer, Data block writer, checkpoint process, 및/또는 log writer 등)에 의해 구현될 수 있다. 이러한 경우, 암호화 모듈(220)이 암호화된 데이터를 메모리(예컨대, 버퍼캐시)에 저장해 놓으면(foreground process), 사전결정된 시점에 백그라운드 프로세스가 암호화된 데이터를 영구저장매체(140)에 기록할 수 있다. 본 명세서에서는 설명의 편의를 위하여 저장 모듈(240)이 데이터를 저장할 것을 결정하는 동작과, 백그라운드 프로세스의 동작을 포함하는 것으로 설명한다.
상기 저장 모듈(240)은 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 생성된 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정할 수 있다. 그러므로, 상기 제 2 암호화된 데이터 값의 로우 식별자는 변경될 수 있다.
또한, 상기 저장 모듈(240)은 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 생성된 제 2 암호화된 데이터 값을 상기 영구 저장 매체(140) 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체(140) 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정할 수 있다. 그러므로, 상기 제 2 암호화된 데이터 값의 로우 식별자는 변경될 수 있다.
데이터 값에 대한 업데이트가 있는 경우, 저장 모듈(240)은 업데이트 이전에 저장된 위치와 상이한 위치에 업데이트되는 데이터를 저장(또는 기록)할 수 있다.
상기 저장 모듈(240)이 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트 된 값에 기초하여 생성된 제 2 암호화된 데이터 값을 영구 저장 매체(140) 상에서 기존의 암호화된 데이터 값의 저장 위치와 상이한 위치에 저장함으로써, 상기 제 2 암호화된 데이터 값과 매칭되는 해시 값은 기존의 해시 값과 상이할 수 있다. 따라서, 정당한 접근 권한을 보유한 내부자, OS 권한을 가진 자, 또는 물리적으로 상기 데이터베이스 서버(120) 또는 영구 저장 매체(140)에 접근이 가능한 자가 업데이트 전 암호화된 데이터 값 및 해시 값을 모두 입수하여, 이를 업데이트된 데이터 값의 저장 위치에 저장하는 경우에도, 무결성 검증 모듈(260)은 데이터 값의 변조 여부를 감지할 수 있다. 따라서, 암호화된 데이터의 업데이트에 따라 추가적인 보안이 달성될 수 있다. 기존의 데이터베이스 서버에서는 데이터 값이 업데이트 된 경우, 영구 저장 매체상에서 저장 위치가 변경되지 않는다. 그러나 본 발명의 일 실시예에 따른 데이터 베이스 서버(120)에서는 데이터 값의 업데이트마다, 영구 저장 매체(140) 상에서의 저장 위치를 변경함으로써, 보다 높은 수준의 보안이 가능하다.
저장 모듈(240)은 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체(140) 상의 데이터 블록에 저장할 것을 결정할 수 있다. 또한, 상기 저장 모듈(240)은 메모리(135)의 데이터 블록의 데이터를 상기 영구 저장 매체(140)에 기록할 수 있다. 상기 암호화된 데이터 값 및 상기 해시 값에 기초하여, 상기 영구 저장 매체(140)의 블록에 체크 섬(check sum)이 생성될 수 있다. 상기 체크 섬은 상기 암호화된 데이터 값 또는 상기 해시 값이 변경된 경우, 상기 체크 섬의 값이 변경되므로, 상기 암호화된 데이터 값 또는 상기 해시 값의 변경을 감지하는데 사용될 수 있다.
복호화 모듈(250)은 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성할 수 있다. 이때, 상기 복호화 모듈(250)은 암호화 모듈(220)에서 암호문을 생성할 때 사용되는 암호화 키와 동일한 대칭 키를 사용할 수 있다. 상기 복호화 모듈(250)은 영구 저장 매체(140) 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성할 수 있다.
무결성 검증 모듈(260)은 영구 저장 매체(140)상에 저장된 암호화된 데이터 값과 매칭되는 제 1 해시 값 및 복호화된 데이터 값에 매칭되는 제 2 해시 값을 비교하여, 복호화된 데이터 값의 무결성을 검증할 수 있다.
본 발명의 일 실시예에서, 저장 모듈(240)은 데이터 값을 암호화하여 저장할 때, 상기 암호화된 데이터 값과 상기 데이터 값 및 상기 데이터 값의 저장 위치에 기초하는 제 1 해시 값을 매칭하여 저장한다. 또한, 본 발명의 일 실시예에서, 암호화된 데이터 값을 복호화할 때, 상기 암호화된 데이터 값을 복호화한 복호화된 데이터 값과 상기 복호화된 데이터 값 및 상기 복호화된 데이터 값의 저장 위치에 기초하는 제 2 해시 값이 매칭된다. 상기 제 1 및 제 2 해시값이 동일한 경우에는, 상기 데이터 값 및 상기 복호화된 데이터 값이 동일한 것으로 판단하여, 상기 복호화된 데이터 값의 무결성을 판단할 수 있다. 전술한 해시 값들은, 상기 데이터 값의 저장 위치에 적어도 부분적으로 기초하므로, 내부자의 암호화된 데이터 값들의 저장 위치를 변경하는 공격에 대비하여, 데이터의 무결성을 검증하는데 이용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 데이터베이스 암호화 방법의 순서도이다.
본 발명의 일 실시예에서, 상기 방법은 예를 들어, 데이터베이스 서버(120)의 각 모듈들에 의해 수행될 수 있다. 또한, 도 3 에 도시된 순서도의 각 단계는 필수적인 것은 아니며, 필요에 따라 일부 단계들이 생략되거나 추가될 수도 있다.
데이터베이스 서버(120)는 메모리(135)에 저장된 데이터 테이블(270)의 하나 이상의 컬럼의 데이터 값을 암호화할 것을 결정할 수 있다(310). 본 발명의 일 양상에서, 저장될 데이터에 대해서는 컬럼 레벨 암호화가 수행될 수 있다. 그러므로, 데이터베이스 서버(120)는 데이터 테이블(270) 전체를 암호화하지 않기 때문에, 성능의 제약을 받지 않고, 자원을 절약하여 효율적으로 데이터를 암호화하여 보관할 수 있다. 도 2에 도시된 데이터 테이블(270)의 예시에서, 연봉에 해당하는 데이터 값을 포함하는 "연봉" 컬럼에 대해서만 컬럼 레벨 암호화가 수행될 수 있다.
암호화 모듈(220)은 메모리(135)에 저장된 데이터 테이블(270)에 포함된 데이터 값에 기초하여 암호화된 데이터 값을 생성할 수 있다(320). 상기 암호화된 데이터 값은 전술한 바와 같이 임의의 암호화 알고리즘에 의해서 생성될 수 있다
해시 모듈(230)은 상기 데이터 값 및 상기 데이터 값의 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다(330). 상기 데이터 값의 위치 정보는 로우 식별자(row ID), 및 칼럼 키(column key) 중 적어도 하나를 포함할 수 있다. 상기 칼럼 키는 상기 데이터 테이블(270)의 메타 정보에 적어도 부분적으로 기초할 수 있다. 상기 칼럼 키는 상기데이터 테이블(270)의 컬럼 별로 존재할 수 있으며, 컬럼 별로 상이할 수 있다. 상기 로우 식별자는 데이터 블록 상에서 상기 데이터 값이 기록될 위치에 적어도 부분적으로 기초할 수 있다. 암호화된 데이터 값은 메모리(135)의 데이터 블록에 기록될 수 있다. 이러한 경우 로우 식별자가 생성될 수 있다. 상기 해시 모듈(230)은 상기 로우 식별자를 획득할 수 있다. 상기 로우 식별자는 상기 데이터 블록에 대하여 고유할 수 있다. 메모리(135)의 데이터 블록 상의 위치에 따라서, 영구 저장 매체(140)상에서의 물리적인 저장 위치가 결정될 수 있으며, 상기 로우 식별자는 영구 저장 매체(140)에 대하여 고유할 수 있다. 보다 구체적으로 해시 모듈(230)은 상기 데이터 테이블의 메타 정보에 적어도 부분적으로 기초하여 상기 컬럼 키를 획득할 수 있다. 또한, 상기 해시 모듈(230)은 상기 데이터 블록 상에서 상기 데이터 값이 기록될 위치에 적어도 부분적으로 기초하여, 상기 로우 식별자를 획득할 수 있다. 또한, 상기 해시 모듈(230)은 상기 데이터 값, 상기 칼럼 키, 및 상기 로우 식별자에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다.
저장 모듈(240)은 상기 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체(140) 상에 기록할 것을 결정할 수 있다(340). 본 발명의 추가적인 양상에서, 저장 모듈(240)이 암호화된 데이터 값 및 해시 값을 메모리상에 저장해놓으면 사전 결정된 시간 단위로 백그라운드 프로세스가 메모리상에 저장된 데이터 값 및 해시값을 영구 저장 장치(140)에 기록할 수 있다. 상기 저장 모듈(240)은 상기 암호화된 데이터 값 및 상기 해시 값의 영구 저장 장치(140) 상에서의 저장 위치를 결정할 수 있다.
또한, 암호화 모듈(220)은 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여, 제 2 암호화된 데이터 값을 생성할 수 있다(350).
저장 모듈(240)은 상기 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정할 수 있다(360). 따라서, 제 2 암호화된 데이터 값은 상기 암호화된 데이터 값의 저장 위치와 상이한 위치에 저장될 수 있다. 그러므로, 상기 제 2 암호화된 데이터 값의 로우 아이디는 변경될 수 있다.
해시 모듈(230)은 업데이트 된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 제 2 해시 값을 생성할 수 있다(370). 따라서, 제 2 암호화된 데이터 값의 로우 식별자가 변경되므로 제 2 해시 값은 상기 제 1 해시 값과 상이할 수 있다.
저장 모듈(240)은 상기 제 2 암호화된 데이터 값 및 상기 제 2 해시 값을 상기 영구 저장 장치(140) 상에 기록할 것을 결정할 수 있다(380).
도 4는 본 발명의 다른 일 실시예에 따른 데이터베이스 암호화 방법의 순서도이다.
본 발명의 일 실시예에서, 상기 방법은 예를 들어, 데이터베이스 서버(120)의 각 모듈들에 의해 수행될 수 있다. 또한, 도 4 에 도시된 순서도의 각 단계는 필수적인 것은 아니며, 필요에 따라 일부 단계들이 생략되거나 추가될 수도 있다.
도 4 에 도시된 410 내지 420 단계, 및 450 단계는 도 3 에 도시된 310 내지 320 단계 및 350 단계와 동일하므로, 이에 대한 설명은 전술한 바에 의한다.
해시 모듈(230)은 상기 데이터 값 및 상기 데이터 값이 저장될 영구 저장 매체(140) 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다(430). 상기 영구 저장 매체(140) 상에서의 저장 위치 정보는 로우 식별자 및 컬럼 키 중 적어도 하나를 포함할 수 있다.
저장 모듈(240)은 상기 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체(140) 상에 기록할 것을 결정할 수 있다(440). 상기 저장 모듈(240)은 상기 암호화된 데이터 값 및 상기 해시 값의 영구 저장 장치(140) 상에서의 저장 위치를 결정할 수 있다.
저장 모듈(240)은 업데이트된 데이터 값을 암호화한 제 2 암호화된 데이터 값을 상기 영구 저장 매체(140) 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체(140) 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정할 수 있다(460). 따라서, 제 2 암호화된 데이터 값의 로우 식별자는 변경될 수 있다.
해시 모듈(230)은 업데이트 된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 제 2 해시 값을 생성할 수 있다(470). 따라서, 제 2 암호화된 데이터 값의 로우 식별자가 변경되므로 제 2 해시 값은 상기 제 1 해시 값과 상이할 수 있다.
저장 모듈(240)은 상기 제 2 암호화된 데이터 값 및 상기 제 2 해시 값을 상기 영구 저장 장치(140) 상에 기록할 것을 결정할 수 있다(480).
도 5는 본 발명의 일 실시예에 따른 암호화된 데이터 값에 대한 업데이트가 있는 경우 데이터베이스 서버의 동작을 나타낸 순서도이다.
본 발명의 일 실시예에서, 상기 방법은 예를 들어, 데이터베이스 서버(120)의 각 모듈들에 의해 수행될 수 있다. 또한, 도 5 에 도시된 순서도의 각 단계는 필수적인 것은 아니며, 필요에 따라 일부 단계들이 생략되거나 추가될 수도 있다.
암호화 모듈(220)은 암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성할 수 있다(510).
저장 모듈(240)은 상기 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정할 수 있다(530). 따라서, 제 2 암호화된 데이터 값은 상기 암호화된 데이터 값의 저장 위치와 상이한 위치에 저장될 수 있다. 그러므로, 상기 제 2 암호화된 데이터 값의 로우 아이디는 변경될 수 있다.
해시 모듈(230)은 상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다(550). 따라서, 제 2 암호화된 데이터 값의 로우 식별자가 변경되므로 제 2 해시 값은 상기 제 1 해시 값과 상이할 수 있다.
저장 모듈(240)은 상기 제 2 암호화된 데이터 값 및 상기 해시 값을 기록할 수 있다(570).
도 6은 본 발명의 다른 일 실시예에 따른 암호화된 데이터 값에 대한 업데이트가 있는 경우 데이터베이스 서버의 동작을 나타낸 순서도이다.
본 발명의 일 실시예에서, 상기 방법은 예를 들어, 데이터베이스 서버(120)의 각 모듈들에 의해 수행될 수 있다. 또한, 도 6 에 도시된 순서도의 각 단계는 필수적인 것은 아니며, 필요에 따라 일부 단계들이 생략되거나 추가될 수도 있다.
도 6의 610 단계는 도 5에 도시된 510 단계와 동일하므로, 이에 대한 설명은 전술한 바에 의한다.
저장 모듈(240)은 업데이트된 데이터 값을 암호화한 제 2 암호화된 데이터 값을 상기 영구 저장 매체(140) 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체(140) 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정할 수 있다(630). 따라서, 제 2 암호화된 데이터 값의 로우 식별자는 변경될 수 있다.
해시 모듈(230)은 업데이트 된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 제 2 해시 값을 생성할 수 있다(650). 따라서, 제 2 암호화된 데이터 값의 로우 식별자가 변경되므로 제 2 해시 값은 상기 제 1 해시 값과 상이할 수 있다.
저장 모듈(240)은 상기 제 2 암호화된 데이터 값 및 상기 제 2 해시 값을 상기 영구 저장 장치(140) 상에 기록할 것을 결정할 수 있다(670).
도 7 은 본 발명의 일 실시예에 따른 데이터베이스 복호화 방법의 순서도이다.
본 발명의 일 실시예에서, 상기 방법은 예를 들어, 데이터베이스 서버(120)의 각 모듈들에 의해 수행될 수 있다. 또한, 도 7 에 도시된 순서도의 각 단계는 필수적인 것은 아니며, 필요에 따라 일부 단계들이 생략되거나 추가될 수도 있다.
복호화 모듈(250)은 상기 영구 저장 매체(140) 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성할 수 있다(710).
해시 모듈(230)은 상기 복호화된 데이터 값 및 상기 복호화된 데이터 값의 데이터 테이블(270) 내에서의 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다(730).
무결성 검증 모듈(260)은 생성된 상기 해시 값 및 상기 영구 저장 매체(140) 상에 저장된 해시 값을 비교하여, 상기 복호화된 데이터의 무결성을 검증할 수 있다(750). 상기 영구 저장 매체(140) 상에 저장된 해시 값은 상기 복호화된 데이터 값이 암호화되기 전 평문 및 상기 평문의 데이터 테이블(270) 내에서의 위치 정보에 적어도 부분적으로 기초하여 생성된 해시 값일 수 있다. 복호화된 데이터 값이 암호화된 데이터 값의 평문과 동일하고, 상기 복호화된 데이터 값의 데이터 테이블(270) 내에서의 위치 및 상기 평문의 데이터 테이블(270) 내에서의 위치가 동일한 경우, 저장된 해시 값과, 복호화된 데이터 값 및 상기 복호화된 데이터 값의 데이터 테이블(270) 내에서의 위치 정보에 적어도 부분적으로 기초하여 생성된 해시 값은 동일할 수 있다. 이러한 경우, 무결성 검증 모듈(260)은 상기 데이터의 무결성을 판단할 수 있다.
도 8은 본 발명의 일 실시예에 따른 데이터베이스 복호화 방법의 순서도이다.
본 발명의 일 실시예에서, 상기 방법은 예를 들어, 데이터베이스 서버(120)의 각 모듈들에 의해 수행될 수 있다. 또한, 도 8 에 도시된 순서도의 각 단계는 필수적인 것은 아니며, 필요에 따라 일부 단계들이 생략되거나 추가될 수도 있다.
도 8에 도시된 810 단계는, 도 7에 도시된 710 단계와 동일하므로, 이에 대한 설명은 전술한 바에 의한다.
해시 모듈(230)은 상기 복호화된 데이터 값 및 상기 암호화된 데이터 값의 상기 영구 저장 매체(140) 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성할 수 있다(830).
무결성 검증 모듈(260)은 생성된 상기 해시 값 및 상기 영구 저장 매체(140) 상에 저장된 해시 값을 비교하여, 상기 복호화된 데이터의 무결성을 검증할 수 있다(850). 상기 영구 저장 매체(140) 상에 저장된 해시 값은 상기 복호화된 데이터 값이 암호화되기 전 평문 및 상기 평문의 영구 저장 매체(140) 상에서의 위치 정보에 적어도 부분적으로 기초하여 생성된 해시 값일 수 있다. 복호화된 데이터 값이 암호화된 데이터 값의 평문과 동일하고, 상기 복호화된 데이터 값이 복호화되기 전 저장되었던 영구 저장 매체(140) 상에서의 위치 및 상기 평문의 암호화된 데이터 값이 저장될 영구 저장 매체(140) 상에서의 위치가 동일한 경우, 상기 저장된 해시 값과, 상기 복호화된 데이터 값 및 상기 암호화된 데이터 값이 저장될 영구 저장 매체(140) 상에서의 위치 정보에 적어도 부분적으로 기초하여 생성된 해시 값은 동일할 수 있다. 이러한 경우, 무결성 검증 모듈(260)은 상기 데이터의 무결성을 판단할 수 있다.
본 발명의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 "소프트웨어"로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 발명의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터-판독가능 장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다. 용어 "기계-판독가능 매체"는 명령(들) 및/또는 데이터를 저장, 보유, 및/또는 전달할 수 있는 무선 채널 및 다양한 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 발명의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
110: 클라이언트
120: 데이터베이스 서버
130: DBMS(Database Management System)
135: 메모리
140: 영구 저장 매체(persistent storage)
210: 송수신 모듈
220: 암호화 모듈
230: 해시 모듈
240: 저장 모듈
250: 복호화 모듈
260: 무결성 검증 모듈
270: 데이터 테이블

Claims (21)

  1. 메모리에 저장된 데이터 테이블에 포함된 데이터 값을 암호화하여 영구 저장 매체에 저장하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은:
    메모리에 저장된 데이터 테이블에 포함된 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 단계;
    상기 데이터 값 및 상기 데이터 값의 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계; 및
    상기 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체(persistent storage) 상에 기록할 것을 결정하는 단계;
    를 포함하고,
    상기 데이터 값의 위치 정보는,
    로우 식별자 및 컬럼 키 중 적어도 하나를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 컬럼 키는 상기 데이터 테이블의 메타 정보에 적어도 부분적으로 기초하며,
    상기 로우 식별자는 데이터 블록 상에서 상기 데이터 값이 기록될 위치에 적어도 부분적으로 기초하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  4. 제 1 항에 있어서,
    상기 해시 값을 생성하는 단계는,
    상기 데이터 테이블의 메타 정보에 적어도 부분적으로 기초하여, 상기 컬럼 키를 획득하는 단계;
    데이터 블록 상에서 상기 데이터 값이 기록될 위치에 적어도 부분적으로 기초하여, 상기 로우 식별자를 획득하는 단계; 및
    상기 데이터 값, 상기 컬럼 키, 및 상기 로우 식별자에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계;
    를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  5. 제 1 항에 있어서,
    상기 데이터 테이블의 하나 이상의 컬럼의 데이터 값을 암호화할 것을 결정하는 단계;
    를 더 포함하고,
    상기 단계들은,
    암호화할 것으로 결정된 상기 하나 이상의 컬럼의 데이터 값에 대해서 수행되는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  6. 제 1 항에 있어서,
    상기 암호화된 데이터 값에 대한 업데이트가 있는 경우,
    상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 단계;
    상기 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 단계;
    상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 제 2 해시 값을 생성하는 단계; 및
    상기 제 2 암호화된 데이터 값 및 상기 제 2 해시 값을 상기 영구 저장 매체 상에 기록할 것을 결정하는 단계;
    를 더 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  7. 제 1 항에 있어서,
    상기 암호화된 데이터 값 및 상기 해시 값에 기초하여, 상기 영구 저장 매체의 블록에 체크섬(check sum)을 생성하는 단계;
    를 더 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  8. 제 1 항에 있어서,
    상기 암호화된 데이터 값을 생성하는 단계는,
    암호화 키에 포함된 암호화 정보에 기초하여 암호화 함수를 결정하는 단계; 및
    상기 데이터 값에 기초하여 연산하는 상기 암호화 함수를 이용하여 암호화된 데이터 값을 생성하는 단계;
    를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  9. 제 8 항에 있어서,
    상기 암호화 키는,
    적어도 암호화 모드에 관련한 정보, 암호화 데이터 타입 및 데이터의 길이 정보를 포함하며,
    상기 암호화 모드는 데이터 암호화 표준(data encryption standard, DES) 및
    삼중(triple) DES, 고급 암호화 표준(advanced encryption standard, AES) 중 적어도 하나를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  10. 메모리에 저장된 데이터 테이블에 포함된 데이터 값을 암호화하여 영구 저장 매체에 저장하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은:
    메모리에 저장된 데이터 테이블에 포함된 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 단계;
    상기 데이터 값 및 상기 데이터 값이 저장될 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계; 및
    상기 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체 상에 기록할 것을 결정하는 단계;
    를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  11. 제 10 항에 있어서,
    상기 암호화된 데이터 값에 대한 업데이트가 있는 경우,
    상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 단계;
    상기 제 2 암호화된 데이터 값을 상기 영구 저장 매체 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 단계;
    상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 제 2 해시 값을 생성하는 단계; 및
    상기 제 2 암호화된 데이터 값 및 상기 제 2 해시 값을 상기 영구 저장 매체 상에 기록할 것을 결정하는 단계;
    를 더 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  12. 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은:
    암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 단계;
    상기 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 단계;
    상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계; 및
    상기 제 2 암호화된 데이터 값 및 상기 해시 값을 영구 저장 매체 상에 기록할 것을 결정하는 단계;
    를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  13. 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은:
    암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 단계;
    상기 제 2 암호화된 데이터 값을 영구 저장 매체 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 단계;
    상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계; 및
    상기 제 2 암호화된 데이터 값 및 상기 해시 값을 상기 영구 저장 매체 상에 기록할 것을 결정하는 단계;
    를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  14. 영구 저장 매체 상에 저장된 암호화된 데이터에 대한 무결성을 검증하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은:
    상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 단계;
    상기 복호화된 데이터 값 및 상기 복호화된 데이터 값의 데이터 테이블 내에서의 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계; 및
    생성된 상기 해시 값 및 상기 영구 저장 매체 상에 저장된 해시 값을 비교하여, 상기 복호화된 데이터의 무결성을 검증하는 단계;
    를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  15. 영구 저장 매체 상에 저장된 암호화된 데이터에 대한 무결성을 검증하기 위한 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 컴퓨터로 하여금 이하의 단계들을 수행하도록 하며, 상기 단계들은:
    상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 단계;
    상기 복호화된 데이터 값 및 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 해시 값을 생성하는 단계; 및
    생성된 상기 해시 값 및 상기 영구 저장 매체 상에 저장된 해시 값을 비교하여, 상기 복호화된 데이터의 무결성을 검증하는 단계;
    를 포함하는,
    컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  16. 데이터 보안을 제공하기 위한 데이터베이스 서버로서,
    데이터 값을 포함하는 데이터 테이블을 저장하는 메모리;
    상기 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 암호화 모듈;
    상기 데이터 값 및 상기 데이터 값의 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈; 및
    상기 암호화된 데이터 값 및 상기 해시 값이 기록되는 영구 저장 매체;
    를 포함하고,
    상기 데이터 값의 위치 정보는,
    로우 식별자 및 컬럼 키 중 적어도 하나를 포함하는,
    데이터베이스 서버.
  17. 데이터 보안을 제공하기 위한 데이터베이스 서버로서,
    데이터 값을 포함하는 데이터 테이블을 저장하는 메모리;
    상기 데이터 값에 기초하여 암호화된 데이터 값을 생성하는 암호화 모듈;
    상기 데이터 값 및 상기 데이터 값이 저장될 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈; 및
    상기 암호화된 데이터 값 및 상기 해시 값이 기록되는 상기 영구 저장 매체;
    를 포함하는,
    데이터베이스 서버.
  18. 데이터 보안을 제공하기 위한 데이터베이스 서버로서,
    암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 암호화 모듈;
    상기 제 2 암호화된 데이터 값을 상기 암호화된 데이터 값의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 저장 모듈;
    상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈; 및
    상기 제 2 암호화된 데이터 값 및 상기 해시 값이 기록되는 영구 저장 매체;
    를 포함하는,
    데이터베이스 서버.
  19. 데이터 보안을 제공하기 위한 데이터베이스 서버로서,
    암호화된 데이터 값에 대한 업데이트가 있는 경우, 상기 업데이트된 데이터 값에 기초하여 제 2 암호화된 데이터 값을 생성하는 암호화 모듈;
    상기 제 2 암호화된 데이터 값을 영구 저장 매체 상의 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 위치와 상이한 제 2 위치에 저장할 것을 결정하는 저장 모듈;
    상기 업데이트된 데이터 값 및 상기 제 2 위치의 위치 정보에 적어도 부분적으로 기초하여, 상기 제 2 암호화된 데이터 값에 매칭되는 해시 값을 생성하는 해시 모듈; 및
    상기 제 2 암호화된 데이터 값 및 상기 해시 값이 기록되는 상기 영구 저장 매체;
    를 포함하는,
    데이터베이스 서버.
  20. 영구 저장 매체 상에 저장된 암호화된 데이터 값에 대한 무결성을 검증하기 위한 데이터베이스 서버로서,
    상기 암호화된 데이터 값 및 제 1 해시 값이 저장된 영구 저장 매체;
    상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 복호화 모듈;
    상기 복호화된 데이터 값 및 상기 복호화된 데이터 값의 데이터 테이블 내에서의 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 제 2 해시 값을 생성하는 해시 모듈; 및
    상기 제 1 및 제 2 해시값을 비교하여, 상기 복호화된 데이터 값의 무결성을 검증하는 무결성 검증 모듈;
    을 포함하는,
    데이터베이스 서버.
  21. 영구 저장 매체 상에 저장된 암호화된 데이터 값에 대한 무결성을 검증하기 위한 데이터베이스 서버로서,
    상기 암호화된 데이터 값 및 제 1 해시 값이 저장된 영구 저장 매체;
    상기 영구 저장 매체 상에 저장된 암호화된 데이터 값에 기초하여 복호화된 데이터 값을 생성하는 복호화 모듈;
    상기 복호화된 데이터 값 및 상기 암호화된 데이터 값의 상기 영구 저장 매체 상에서의 저장 위치 정보에 적어도 부분적으로 기초하여, 상기 복호화된 데이터 값에 매칭되는 제 2 해시 값을 생성하는 해시 모듈; 및
    상기 제 1 및 제 2 해시값을 비교하여, 상기 복호화된 데이터 값의 무결성을 검증하는 무결성 검증 모듈;
    을 포함하는,
    데이터베이스 서버.
KR1020150040593A 2015-03-24 2015-03-24 데이터베이스 암호화 방법 KR101613146B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150040593A KR101613146B1 (ko) 2015-03-24 2015-03-24 데이터베이스 암호화 방법
US14/733,778 US9646176B2 (en) 2015-03-24 2015-06-08 Method for encrypting database
CN201510347270.4A CN106022154B (zh) 2015-03-24 2015-06-19 数据库加密方法和数据库服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150040593A KR101613146B1 (ko) 2015-03-24 2015-03-24 데이터베이스 암호화 방법

Publications (1)

Publication Number Publication Date
KR101613146B1 true KR101613146B1 (ko) 2016-04-18

Family

ID=55916914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150040593A KR101613146B1 (ko) 2015-03-24 2015-03-24 데이터베이스 암호화 방법

Country Status (3)

Country Link
US (1) US9646176B2 (ko)
KR (1) KR101613146B1 (ko)
CN (1) CN106022154B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087720A (ko) * 2018-01-17 2019-07-25 주식회사 비젼코스모 데이터 백업용 스토리지에 대한 해킹을 차단할 수 있는 데이터 백업 관리 장치 및 그 동작 방법
KR20220033109A (ko) * 2020-09-09 2022-03-16 주식회사 알파비트 암호화 기능을 수행하는 커널 모듈

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9680653B1 (en) * 2016-10-13 2017-06-13 International Business Machines Corporation Cipher message with authentication instruction
CN106789950B (zh) * 2016-11-30 2020-04-10 Oppo广东移动通信有限公司 信息保护方法、装置及终端
CN108154038B (zh) * 2016-12-06 2022-04-26 北京京东尚科信息技术有限公司 数据处理方法及装置
US11531768B2 (en) * 2018-08-08 2022-12-20 Panasonic Intellectual Property Corporation Of America Data protection method, authentication server, data protection system, and data structure
EP3611647B1 (en) * 2018-08-15 2024-01-03 Ordnance Survey Limited Method for processing and verifying a document
DE102018123463A1 (de) * 2018-09-24 2020-03-26 Akarion GmbH Personendatenbank
CN109584388A (zh) * 2018-11-15 2019-04-05 安徽信果网络科技有限公司 一种基于微信小程序的自助停车费用缴纳系统
US20200326892A1 (en) * 2019-04-10 2020-10-15 Microsoft Technology Licensing, Llc Methods for encrypting and updating virtual disks
US10783277B2 (en) 2019-05-31 2020-09-22 Alibaba Group Holding Limited Blockchain-type data storage
CN110245518B (zh) * 2019-05-31 2024-05-17 创新先进技术有限公司 一种数据存储方法、装置及设备
CN111859445B (zh) * 2020-06-14 2022-08-02 苏州浪潮智能科技有限公司 一种基于k-db数据库的数据安全实现方法及系统
CN113987577B (zh) * 2021-10-28 2024-05-31 浪潮卓数大数据产业发展有限公司 一种基于本地数据库的授权方法、设备、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004528615A (ja) * 2000-10-06 2004-09-16 オラクル コーポレーション 自動データベース暗号化の方法および装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044879A1 (en) 2000-02-18 2001-11-22 Moulton Gregory Hagan System and method for distributed management of data storage
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US7062648B2 (en) 2000-02-18 2006-06-13 Avamar Technologies, Inc. System and method for redundant array network storage
AU2001238269B2 (en) * 2000-02-18 2006-06-22 Emc Corporation Hash file system and method for use in a commonality factoring system
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7194504B2 (en) 2000-02-18 2007-03-20 Avamar Technologies, Inc. System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques
US7509420B2 (en) 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
US6810398B2 (en) 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
KR100471380B1 (ko) 2002-12-23 2005-03-10 한국전자통신연구원 레이저 직접 묘화법을 이용한 광 도파로 제작방법 및 이를이용한 광 도파로
WO2005119960A2 (en) * 2004-06-01 2005-12-15 Ben-Gurion University Of The Negev Research And Development Authority Structure preserving database encryption method and system
KR20060037196A (ko) 2004-10-27 2006-05-03 삼성전자주식회사 아이피 멀티미디어 서브시스템에서 네트워크의 보안처리방법
KR20060058546A (ko) 2004-11-25 2006-05-30 펜타시큐리티시스템 주식회사 데이터베이스 암호화 및 접근 제어 방법 및 장치
US9275512B2 (en) * 2006-11-10 2016-03-01 Bally Gaming, Inc. Secure communications in gaming system
US8639948B2 (en) * 2006-12-28 2014-01-28 Teradata Us, Inc. Encrypted data management in database management systems
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US10579995B2 (en) * 2010-03-30 2020-03-03 Visa International Service Association Event access with data field encryption for validation and access control
KR101702562B1 (ko) 2010-06-18 2017-02-03 삼성전자 주식회사 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치
JP5567967B2 (ja) * 2010-09-30 2014-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースにおけるキャッシュ制御方法、システム及びプログラム
CN102236766B (zh) * 2011-05-10 2014-04-09 桂林电子科技大学 安全的数据项级数据库加密方法
KR101371608B1 (ko) 2011-10-10 2014-03-14 주식회사 알티베이스 Dbms 및 데이터베이스에서 암호화 방법
KR101368024B1 (ko) 2012-03-29 2014-02-27 주식회사 엘지씨엔에스 스크립트 관리 방법, 이를 실행하는 스크립트 관리 서버 및 이를 저장한 기록 매체
US9355127B2 (en) * 2012-10-12 2016-05-31 International Business Machines Corporation Functionality of decomposition data skew in asymmetric massively parallel processing databases
EP2731040B1 (en) * 2012-11-08 2017-04-19 CompuGroup Medical SE Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
US20140297651A1 (en) * 2013-04-01 2014-10-02 Ori Software Development Ltd. Using hash table to retrieve leaf index blocks
KR101330071B1 (ko) 2013-07-01 2013-11-18 (주)아울시스템즈 데이터베이스의 숫자형 데이터의 보안 방법 및 장치
KR101341944B1 (ko) 2013-07-01 2013-12-17 (주)아울시스템즈 동일 평문 데이터를 다른 값의 암호문으로 암호화하는 데이터베이스 보안 방법 및 장치
CN103605741B (zh) * 2013-11-19 2017-11-14 北京国双科技有限公司 对象加密存储方法、装置及系统
US20150193816A1 (en) * 2014-01-06 2015-07-09 The Nielsen Company (Us), Llc Methods and apparatus to correct misattributions of media impressions
US9467427B2 (en) * 2014-09-26 2016-10-11 Nalpeiron Inc. Methods and systems for authorizing and deauthorizing a computer license
US20160189182A1 (en) * 2014-12-31 2016-06-30 The Nielsen Company (Us), Llc Methods and apparatus to correct age misattribution in media impressions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004528615A (ja) * 2000-10-06 2004-09-16 オラクル コーポレーション 自動データベース暗号化の方法および装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087720A (ko) * 2018-01-17 2019-07-25 주식회사 비젼코스모 데이터 백업용 스토리지에 대한 해킹을 차단할 수 있는 데이터 백업 관리 장치 및 그 동작 방법
KR102039340B1 (ko) 2018-01-17 2019-11-01 주식회사 비젼코스모 데이터 백업용 스토리지에 대한 해킹을 차단할 수 있는 데이터 백업 관리 장치 및 그 동작 방법
KR20220033109A (ko) * 2020-09-09 2022-03-16 주식회사 알파비트 암호화 기능을 수행하는 커널 모듈
KR102430085B1 (ko) * 2020-09-09 2022-08-05 주식회사 알파비트 암호화 기능을 수행하는 커널 모듈

Also Published As

Publication number Publication date
CN106022154B (zh) 2019-06-21
CN106022154A (zh) 2016-10-12
US20160283749A1 (en) 2016-09-29
US9646176B2 (en) 2017-05-09

Similar Documents

Publication Publication Date Title
KR101613146B1 (ko) 데이터베이스 암호화 방법
KR101563461B1 (ko) 데이터베이스 보안 관리를 위한 방법, 서버 및 컴퓨터-프로그램
CN109923548B (zh) 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品
US7827403B2 (en) Method and apparatus for encrypting and decrypting data in a database table
US7171557B2 (en) System for optimized key management with file groups
US7594257B2 (en) Data security for digital data storage
US7219230B2 (en) Optimizing costs associated with managing encrypted data
WO2021164166A1 (zh) 一种业务数据保护方法、装置、设备及可读存储介质
US20050262361A1 (en) System and method for magnetic storage disposal
US8200964B2 (en) Method and apparatus for accessing an encrypted file system using non-local keys
US20120137372A1 (en) Apparatus and method for protecting confidential information of mobile terminal
US9824231B2 (en) Retention management in a facility with multiple trust zones and encryption based secure deletion
CN114556869A (zh) 加密数据的密钥管理
CN103973698A (zh) 一种云存储环境中的用户访问权限回收方法
KR100594886B1 (ko) 데이터베이스 보안 시스템 및 방법
US9697372B2 (en) Methods and apparatuses for securing tethered data
US7694154B2 (en) Method and apparatus for securely executing a background process
KR102542213B1 (ko) 네트워크 기반 스토리지의 데이터 실시간 암복호화 보안 시스템 및 방법
US11283600B2 (en) Symmetrically encrypt a master passphrase key
KR20160114492A (ko) 데이터베이스 보안 관리를 위한 방법, 서버 및 컴퓨터-프로그램
KR20100040440A (ko) 이동형 저장 장치의 데이터 보호를 위한 보안 방법
CN112784321B (zh) 磁盘资安系统
CN110134339A (zh) 一种基于文件虚拟盘的数据保护方法及系统
TWI745784B (zh) 磁碟資安系統
Dolgunov Enabling optimal security for removable storage devices

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190321

Year of fee payment: 4