KR20130079607A - 데이터베이스 암호화 시스템과 방법 및 컴퓨터 판독가능 기록 매체 - Google Patents

데이터베이스 암호화 시스템과 방법 및 컴퓨터 판독가능 기록 매체 Download PDF

Info

Publication number
KR20130079607A
KR20130079607A KR20137013395A KR20137013395A KR20130079607A KR 20130079607 A KR20130079607 A KR 20130079607A KR 20137013395 A KR20137013395 A KR 20137013395A KR 20137013395 A KR20137013395 A KR 20137013395A KR 20130079607 A KR20130079607 A KR 20130079607A
Authority
KR
South Korea
Prior art keywords
database
data
encryption
information
column
Prior art date
Application number
KR20137013395A
Other languages
English (en)
Other versions
KR101388724B1 (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 닛본 덴끼 가부시끼가이샤
Publication of KR20130079607A publication Critical patent/KR20130079607A/ko
Application granted granted Critical
Publication of KR101388724B1 publication Critical patent/KR101388724B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • 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
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

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

Abstract

데이터베이스의 정보 누설을 억제해서 처리의 효율화를 도모하는 시스템을 제공한다. 데이터베이스 시스템(10)에 네트워크(30)를 통해 접속하는 유저 시스템(20)은, 암호화와 복호화를 위한 키 정보를 관리하는 수단(23, 24)과, 데이터 및/또는 메타데이터의 안전성 설정 정보를 기억하는 기억부(25)와, 데이터베이스 조작 명령에 대하여 암호화의 필요 유무를 판별하고, 암호화가 필요한 경우, 데이터 및/또는 메타데이터에 따른 암호화 알고리즘을 선택하여 암호화한 뒤에 데이터베이스 제어 수단(12)에 송신하여 데이터베이스(11)의 조작을 실행하고, 암호화가 불필요한 경우, 상기 데이터베이스 조작 명령을 데이터베이스 제어 수단(12)에 송신하여 데이터베이스 조작을 실행하고, 상기 데이터베이스 제어 수단으로부터 송신된 처리 결과를 수취하여, 상기 처리 결과의 데이터 및/또는 메타데이터의 복호화 또는 변환이 필요한 경우, 필요한 복호화 또는 변환을 행하여, 상기 데이터베이스 조작 명령의 응답으로서 돌려주는 어플리케이션 응답 수단(22)과, 데이터베이스에 저장하는 데이터의 안전성 정보를 설정하는 안전성 설정 수단(26)을 구비하고 있다.

Description

데이터베이스 암호화 시스템과 방법 및 프로그램{DATABASE ENCRYPTION SYSTEM, METHOD, AND PROGRAM}
본 발명은 일본 특허 출원: 출원 제2011-247908호(2011년 11월 11일 출원)에 기초하는 것이며, 동 출원의 전체 기재 내용은 인용으로써 본 출원에 포함되어 기재되어 있는 것으로 한다.
본 발명은 정보의 암호화 기술에 관한 것으로, 특히, 데이터베이스 암호화 시스템과 방법 및 프로그램에 관한 것이다.
최근, 클라이언트에 대하여 인터넷 경유로, 예를 들어 소프트웨어, 어플리케이션, 또는, OS(오퍼레이팅 시스템) 등의 인프라를 제공하는 클라우드 컴퓨팅의 이용이 확대되고 있다. 금후, 데이터베이스에 대해서도 클라우드 등에 아웃 소스(외부 위탁)하는 이용 형태가 늘어날 것으로 예상된다.
그런데, 데이터베이스의 클라우드 등에 대한 아웃 소스에서는, 데이터베이스로부터의 정보 누설의 방지가 특히 중요하다. 데이터베이스로부터의 정보 누설을 방지하기 위해서, 데이터베이스에 기록하는 데이터를 암호화하는 방법은 지금까지 다양하게 제안되어 있다. 특별히 제한되지 않지만, 이들 방법은 일례로서 이하와 같이 분류된다.
1. 데이터베이스에의 데이터 저장시에는, 해당 데이터를 암호화하여 저장하고, 데이터 취출시에는, 데이터를 복호하여 유저에게 돌려준다.
예를 들어 특허문헌 1에는, 데이터베이스 유저에 투과적으로 암호화를 데이터베이스 유저가 알아차리지 못하게, 자동으로 실행하는 자동 데이터베이스 암호화의 방법과 장치가 개시되어 있다. 클라이언트, 데이터베이스 서버, 데이터베이스를 구비하고, 데이터베이스 시스템의 칼럼에 데이터를 저장하는 리퀘스트를 수신함으로써 동작한다. 유저가 데이터베이스 시스템의 칼럼을 암호화 칼럼으로서 지정했을 경우, 암호화 기능을 사용하여 데이터를 자동으로 암호화한다. 암호화 기능은, 시큐리티 어드미니스트레이터에 의해 관리되는 키 파일에 보존된 키를 사용한다. 데이터를 암호화한 뒤, 시스템은, 데이터베이스 시스템의 저장 기능을 이용하여 데이터를 보존한다. 또한, 데이터베이스 시스템의 암호화된 칼럼으로부터 데이터를 취출하는 리퀘스트를 수신함으로써 동작한다. 시스템은 칼럼 ID의 메타데이터를 조사하여 해당 칼럼이 암호화되어 있는지 조사하고, 암호화되어 있는 경우, 데이터를 취출하는 리퀘스트가, 허가된 유저로부터 이루어진 것인 경우, 암호화 파라미터를 검색하고, 복호 키를 검색하여 데이터를 복호화하고, 복호화한 데이터를 클라이언트에게 돌려준다. 데이터를 취출하는 리퀘스트가, 허가된 유저로부터 이루어진 것이 아닐 경우, 암호화된 데이터의 복호화는 행하지 않는다. 이 특허문헌 1에 기재된 방법, 장치에 의하면, 암호화·복호의 키를 데이터베이스측에서 관리하고 있다. 이로 인해, 데이터베이스 시스템의 유저(데이터베이스 유저)는, 데이터베이스의 조회를 변경할 필요가 없다.
2. 암호문인 상태에서 처리 가능한 암호화 방식을 사용함으로써 키를 유저측에서 관리한다.
예를 들어 특허문헌 2에는, 암호화 데이터베이스에 축적된 문서를 암호화한 상태로 검색하는 검색 시스템에 적용 가능한 인덱스 작성 처리를 행하여, 검색 처리의 고속화를 도모하는 암호화 데이터베이스 검색 장치가 개시되어 있다. 검색 대상 데이터를 암호화 데이터와 동일한 암호 방식과 키로 암호화하여, 검색을 행한다. 이 시스템에서는, 데이터베이스측에서 정보 누설이 있어도 암호문밖에 누설되지 않는다.
또한, 유저측에서 키를 관리하여, 유저측의 단말기에 의해 데이터베이스에 보존하는 데이터의 암호화, 복호화를 행하는 시스템으로서, 예를 들어 특허문헌 3에는, 데이터베이스 액세스 시스템에 있어서, 유저 단말기가, 공개 키를 사용하여 비밀 키를 생성하는 비밀 키 생성 수단과, 비밀 키를 저장하는 저장 수단과, 공개 키에 기초하여 데이터를 암호화하는 암호화 수단과, 암호화된 데이터를 비밀 키를 사용하여 복호화하는 복호화 수단을 구비하고, 외부로부터 침입하는 제삼자, 데이터를 보관, 관리하는 관리자 등에 대해서도, 데이터의 누설을 적확하게 방지할 수 있도록 한 데이터베이스 액세스 시스템이 개시되어 있다.
3. 임의의 처리에 대하여 암호문인 상태로 처리한다.
비특허문헌 1에는, 완전 준동형 암호(Fully Homomorphic Encryption)를 사용함으로써 암호를 복호하지 않고, 암호화된 데이터에 대하여 임의의 논리 연산을 할 수 있는 것이 기재되어 있다.
일본 특허 공표 제2004-528615호 공보(국제 공개 제02/029577호) 일본 특허 공개 제2005-134990호 공보 일본 특허 공개 제2004-234344호 공보
Craig Gentry, "Fully Homomorphic Encryption Using Ideal Lattices", STOC'09 May 31-June 2, pp.169-178, 2009
상기한 관련 기술에 대하여 분석을 이하에 나타내었다.
1. 데이터베이스에 대한 저장시에는, 데이터를 암호화하여 저장하고, 데이터 취출시에는, 데이터를 복호하여 유저에게 돌려주는 방법은, 암호화·복호의 키를 데이터베이스측에 배치하고 있기 때문에, 데이터베이스 시스템에 대한 외부로부터의 침입이나, 데이터베이스 관리자(데이터베이스 어드미니스트레이터 등)의 부정·조작 실패 등에 의한 정보 누설의 가능성이 있다.
2. 암호문인 상태로 처리 가능한 암호화 방식을 사용함으로써 키를 유저측에서 관리할 수 있도록 하는 방법은, 일반적인 데이터베이스 조작(SQL: Structure Query Language) 중의 일부(예를 들어 검색 처리)에만 대응하고 있다.
3. 완전 준동형 암호를 사용하여 암호문인 상태로 처리 가능으로 한 방법은, 방대한 연산량을 필요로 한다. 예를 들어, 현행의 1조배나 되는 연산 처리가 필요한 것으로 추측되고 있다.
따라서, 본 발명은 상기 문제점을 감안하여 창안된 것으로, 그 주된 목적은, 데이터베이스 시스템의 정보 누설을 억제하여 처리의 효율화를 도모하는 시스템과 방법과 프로그램을 제공하는 데에 있다. 또한, 본 발명은, 상기 목적을, 예를 들어 데이터베이스 조작을 행하는 어플리케이션의 개조 등을 요하지 않고 실현 실시 가능하게 하는, 시스템과 방법과 프로그램을 제공하는 데에 있다.
본 발명에 따르면, 데이터베이스와, 데이터베이스 조작의 실행을 제어하는 데이터베이스 제어 수단을 구비한 데이터베이스 시스템과,
상기 데이터베이스 제어 수단에 네트워크를 통해 접속하는 유저 시스템,
을 구비하고, 상기 유저 시스템이,
암호화와 복호화를 위한 키 정보를 관리하는 키 이용 수단과,
상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하는 안전성 설정 수단과,
상기 안전성의 설정에 관한 정보를 기억하는 제1 기억부와,
상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령을 수취하여, 상기 제1 기억부의 정보를 참조해서, 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보에 의해 암호화한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행시키고,
상기 데이터베이스 제어 수단으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 수단의 키 정보에 의한 복호화를 행하여, 상기 데이터베이스 조작 명령의 응답으로서 발행원에게 돌려주는 어플리케이션 응답 수단을 구비하고 있는 데이터베이스 암호화 시스템이 제공된다.
본 발명의 다른 측면에 의하면, 데이터베이스 장치에 네트워크를 통해 접속하는 유저 장치가, 암호화와 복호화를 위한 키 정보를 관리하는 키 이용 수단과,
상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하는 안전성 설정 수단과,
상기 안전성의 설정에 관한 정보를 기억하는 제1 기억부와,
상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령을 수취하여, 상기 제1 기억부의 정보를 참조해서, 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보에 의해 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행시키고,
상기 데이터베이스 제어 수단으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 수단에 의한 복호화를 행하여, 상기 데이터베이스 조작 명령의 응답으로서 발행원에게 돌려주는 어플리케이션 응답 수단을 구비하고 있는 유저 장치가 제공된다.
본 발명의 또 다른 측면에 의하면, 데이터베이스 시스템에 네트워크를 통해 접속하는 유저 시스템에서, 암호화와 복호화를 위한 키 정보를 기억 관리하고,
또한, 상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하여 제1 기억부에 기억하고,
상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령에 대하여 상기 제1 기억부의 정보를 참조하여, 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 정보에 의해 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 시스템에 송신하여 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 시스템에 송신하여 데이터베이스 조작을 실행시키고,
상기 데이터베이스 시스템으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 정보에 의한 복호화를 행하여, 상기 데이터베이스 조작 명령의 응답으로서 발행원에게 돌려주는, 데이터베이스 암호화 방법이 제공된다.
본 발명의 또 다른 측면에 의하면, 데이터베이스 장치에 네트워크를 통해 접속하는 유저 장치의 컴퓨터에,
암호화와 복호화를 위한 키 정보를 관리하는 키 이용 처리와,
데이터베이스에 저장하는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하여 제1 기억부에 기억하는 안전성 설정 처리와,
상기 데이터베이스 장치를 향해 발행되는 데이터베이스 조작 명령을 수취하여, 상기 제1 기억부의 정보를 참조해서 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 처리에 의해 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 장치에 송신하여 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 장치에 송신하여 데이터베이스 조작을 실행시키고,
상기 데이터베이스 장치로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 처리에 의한 복호화를 행하여, 상기 데이터베이스 조작 명령의 응답으로서 발행원에게 돌려주는 어플리케이션 응답 처리 를 실행시키는 프로그램이 제공된다.
본 발명에 따르면, 데이터베이스 시스템의 정보 누설을 억제하여 처리의 효율화를 도모할 수 있다. 또한, 본 발명에 따르면, 데이터베이스 조작에 대응해서 어플리케이션을 개조하지 않고 실시 가능하게 하고 있다.
도 1은 본 발명의 일 실시 형태의 시스템 구성을 도시하는 도면이다.
도 2는 본 발명의 일 실시 형태의 전체의 동작예를 도시하는 도면이다.
도 3은 본 발명의 일 실시 형태에서의 데이터베이스 제어 수단의 구성의 일례를 나타내는 도면이다.
도 4는 본 발명의 일 실시 형태에서의 데이터베이스 제어 수단의 구성의 다른 예를 도시하는 도면이다.
도 5는 본 발명의 일 실시 형태에서의 암호 프로토콜 정보 기억부를 설명하는 도면이다.
도 6은 본 발명의 일 실시 형태에서의 안전성 설정 정보 기억부를 설명하는 도면이다.
도 7은 본 발명의 일 실시 형태에서의 암호문 테이블을 설명하는 도면이며, (A)는 암호화 전의 테이블, (B)는 암호문 테이블 정보표, (C)는 암호화 후의 테이블, (D) 내지 (F)는 암호문 테이블을 설명하는 도면이다.
도 8은 본 발명의 일 실시 형태에서의 어플리케이션 응답 수단의 구성의 일례를 나타내는 도면이다.
도 9는 본 발명의 일 실시 형태에서의 안전성 설정 정보 일시 기억부를 설명하는 도면이다.
도 10은 본 발명의 일 실시 형태에서의 키 정보 기억부의 일례를 나타내는 도면이다.
도 11은 본 발명의 일 실시 형태에서의 안전성 설정 수단의 처리 플로우를 나타내는 흐름도이다.
도 12는, 도 11의 설정 갱신 처리에 있어서 암호화 유(有)의 설정 처리를 설명하는 흐름도이다.
도 13은, 도 11의 설정 갱신 처리에 있어서 암호화 무(無)의 설정 처리를 설명하는 흐름도이다.
도 14는 도 11의 설정 갱신 처리에 있어서 기밀도의 설정 처리를 설명하는 흐름도이다.
도 15는 본 발명의 일 실시 형태의 어플리케이션 응답 수단에 있어서, 안전성 설정 수단으로부터 입력된 설정 대상, 설정 내용을 반영시키는 처리의 흐름을 설명하는 도면이다.
도 16은 본 발명의 일 실시 형태의 어플리케이션 응답 수단에 있어서, 데이터베이스 내의 이미 작성된 테이블에 데이터를 추가하는 처리를 설명하는 흐름도이다.
도 17은 본 발명의 일 실시 형태에서의 암호 프로토콜 정보 기억부의 일례를 설명하는 도면이다.
도 18은 본 발명의 일 실시 형태에서의 안정성 설정 정보 기억부의 일례를 설명하는 도면이다.
도 19는 본 발명의 일 실시 형태에서의 안정성 설정 정보 일시 기억부의 일례를 설명하는 도면이다.
도 20은 본 발명의 일 실시 형태에서의 칼럼 데이터의 암호화의 일례를 설명하는 도면이다.
도 21은 본 발명의 일 실시 형태에서의 데이터 기밀도의 설정 처리를 설명하는 도면이다.
도 22는 본 발명의 일 실시 형태에서의 데이터 기밀도의 설정 처리를 설명하는 도면이다.
도 23은 본 발명의 일 실시 형태에서의 데이터 조작 처리를 설명하는 도면이다.
도 24는 본 발명의 일 실시 형태에서의 데이터 조작 처리를 설명하는 도면이다.
도 25는 본 발명의 일 실시 형태에서의 데이터 조작 처리(암호 프로토콜 정보 기억부)를 설명하는 도면이다.
도 26은 본 발명의 일 실시 형태에서의 데이터베이스 제어 수단의 구성예를 도시하는 도면이다.
도 27은 본 발명의 일 실시 형태에서의 데이터베이스 제어 수단의 구성의 또 다른 예를 도시하는 도면이다.
도 28은 본 발명의 일 실시 형태에서의 기밀도의 설정 처리의 다른 예를 설명하는 흐름도이다.
먼저, 본 발명의 개요를 설명하고, 계속해서 실시 형태에 대하여 설명한다. 본 발명의 형태의 하나에 의하면, 데이터베이스(예를 들어 도 1의 11)와, 데이터베이스 조작의 실행을 제어하는 데이터베이스 제어 수단(예를 들어 도 1의 12)을 구비한 데이터베이스 시스템(예를 들어 도 1의 10)과, 상기 데이터베이스 제어 수단(12)에 네트워크(예를 들어 도 1의 30)를 통해 접속하는 유저 시스템(예를 들어 도 1의 20)이 설치된다. 상기 유저 시스템(20)은, 데이터 및/또는 메타데이터(데이터와 메타데이터 중 적어도 한쪽)의 암호화와 복호화를 위한 키 정보를 관리하는 키 이용 수단(예를 들어 도 1의 23)과, 상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하는 안전성 설정 수단(예를 들어 도 1의 26)과, 상기 안전성 설정 수단(26)으로 설정되는 정보를 기억하는 제1 기억부(예를 들어 도 1의 25)와, 어플리케이션 응답 수단(예를 들어 도 1의 22)을 구비하고 있다. 어플리케이션 응답 수단(22)은, 상기 데이터베이스 시스템(10)을 향해 발행되는 데이터베이스 조작 명령을 수취하여, 상기 제1 기억부(25)의 정보를 참조해서, 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고, 암호화가 필요한 경우, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단(23)의 키 정보에 의해 암호화한 암호화 데이터 및/또는 암호화 메타데이터를, 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터베이스 제어 수단(12)에 송신하여 데이터베이스 조작을 실행시킨다. 어플리케이션 응답 수단(22)은, 암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로(암호화하지 않고 평문인 상태로) 상기 데이터베이스 제어 수단(12)에 송신하여 데이터베이스 조작을 실행시킨다. 어플리케이션 응답 수단(22)은, 상기 데이터베이스 제어 수단(12)으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 수단의 키 정보에 의한 복호화를 행하고, 상기 데이터베이스 조작 명령의 응답으로서, 상기 데이터베이스 조작 명령의 발행원(예를 들어 도 1의 21)에게 돌려준다.
본 발명의 형태의 하나에 의하면, 상기 안전성 설정 수단(26)은, 상기 데이터베이스(11)에 저장되는, 메타데이터의 암호화의 유무의 설정 또는 변경, 데이터의 암호화의 유무의 설정 또는 변경, 데이터의 안전성의 정도를 나타내는 기밀도 정보의 설정 또는 변경 중 적어도 한쪽을 행한다. 상기 메타데이터는, 테이블의 테이블명, 칼럼명을 포함한다. 상기 제1 기억부(25)는, 상기 데이터베이스에 저장되는, 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보 중 적어도 한쪽을 유지하는 구성으로 해도 된다.
본 발명의 형태의 하나에 의하면, 상기 제1 기억부(25)는, 상기 데이터베이스에 저장되는 상기 테이블명, 칼럼명을 포함하는 상기 메타데이터가 암호화되어 있는 경우, 암호화된 테이블명, 칼럼명 외에, 암호화 전의 평문의 테이블명, 평문의 칼럼명을, 복호 후 테이블명, 복호 후 칼럼명으로서 기억 유지한다.
상기 어플리케이션 응답 수단(22)은, 입력된 상기 데이터베이스 조작 명령으로 지정되는 상기 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화가 필요하고, 상기 제1 기억부(25)에 암호화된 테이블명, 칼럼명으로서 기억 유지되어 있는 경우, 상기 제1 기억부(25)에 암호화된 테이블명, 칼럼명을 암호화 메타데이터로서 취득한다(이 경우, 키 이용 수단에 의한 복호화는 행하지 않는다).
또한, 상기 어플리케이션 응답 수단(22)은, 상기 데이터베이스 제어 수단(12)으로부터 송신된 상기 데이터베이스 처리 결과의 메타데이터 중, 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우, 상기 제1 기억부의 상기 복호 후 테이블명과 상기 복호 후 칼럼명의 평문의 테이블명과 평문 칼럼명 중 적어도 한쪽을 취득하여(이 경우, 키 이용 수단에 의한 복호화는 행하지 않는다), 상기 데이터베이스 조작 명령의 응답으로서 발행원에게 돌려주는 구성으로 해도 된다.
본 발명의 형태의 하나에 의하면, 상기 어플리케이션 응답 수단(22)은, 상기 데이터베이스 조작 명령으로 지정된 테이블명, 칼럼명이 암호화되어 있는지의 여부를, 상기 제1 및/또는 제2 기억부를 참조하여 판별하고, 상기 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우에는, 평문의 테이블명과 칼럼명 중 적어도 한쪽을, 암호문으로 치환하는 구성으로 해도 된다.
본 발명의 형태의 하나에 의하면, 상기 데이터베이스 시스템(10)은, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 기억 유지하는 제2 기억부(14)와, 상기 데이터베이스 조작 명령의 처리 내용과, 기밀도 정보와, 암호 알고리즘을 관련짓는 암호 프로토콜 식별 정보를 적어도 기억 유지하는 제3 기억부(13)를 구비한 구성으로 해도 된다.
본 발명의 형태의 하나에 의하면, 상기 데이터베이스(11)가, 상기 제2 및/또는 제3 기억부(14, 13) 중 적어도 한쪽의 기억부로서 기능하고, 상기 제2 및/또는 제3 기억부에 기억되는 정보를 상기 데이터베이스 내의 테이블로서 유지하는 정보가, 상기 데이터베이스에 테이블로서 저장되는 구성으로 해도 된다.
본 발명에 따르면, 데이터의 암호화, 복호화에 사용하는 키 정보를, 데이터베이스의 이용자인 유저 시스템(20)에서 관리하고, 유저 시스템(20)측에서, 데이터/메타데이터를 암호화한 뒤에, 데이터베이스 시스템(10)에 송신하여 데이터베이스(11)에 저장한다.
또한, 데이터베이스 조작 명령(예를 들어 SQL(Structured Query Language))을 발행하는 이용자측의 데이터베이스 이용 어플리케이션(21)에 있어서, 데이터베이스 조작을 투과적(transparent)으로 하여, 상기 어플리케이션에서는 데이터의 암호화를 의식하지 않고, 통상의 데이터베이스 조작 명령을 사용하여 데이터베이스 조작을 행할 수 있도록 하고 있다. 이로 인해, 데이터베이스 이용 어플리케이션에 있어서, 암호화에 따른 변경, 개조 등은 불필요하게 된다(단, 데이터베이스 이용 어플리케이션의 변경, 개조 등을 금하는 것은 아니다).
<A. 정보 누설의 방지>
데이터의 암호화, 복호화를 위한 키 정보를 기억하는 기억부(24)와, 키 정보를 관리하는 키 이용 수단(23)을 유저 시스템(10)측에 구비함으로써, 데이터베이스 시스템에 대한 외부로부터의 침입이나, 데이터베이스 관리자 등에 의한 부정·조작 실패 등에 의한 정보 누설을 방지할 수 있다.
<B. 효율적인 처리>
데이터베이스 이용 어플리케이션(도 1의 21)으로부터 입력된 데이터베이스 조작 명령의 조작 대상 데이터에 대하여 구해지는 안전성의 정도(기밀도)에 대응한 처리(암호 알고리즘)를 선택하여 실행한다. 예를 들어, 구해지는 안전성이 낮은 데이터는, 상대적으로 고속이지만, 안전성이 상대적으로 높지 않은 암호 알고리즘을 사용한다. 또한, 안전성(기밀성)이 요구되지 않는 데이터는, 암호화의 대상에서 제외함으로써, 효율적인 처리를 가능하게 하고 있다.
<C: 임의의 데이터베이스 조작에 대응 가능>
데이터베이스 이용 어플리케이션(도 1의 21)으로부터 입력된 데이터베이스 조작 명령에 응답하여, 데이터베이스에 저장된 암호화 데이터에 대해 암호화된 상태에서 연산 처리(가산 또는 승산 등)를 실행한다.
잘 알려져 있는 바와 같이, 예를 들어 Paillier 암호 등의 가법 준동형 암호에서는, 평문 m1의 암호문 E(m1)와 평문 m2의 암호문 E(m2)에 대하여, m1+m2의 암호문 E(m1+m2)로서,
E(m1)+E(m2)=E(m1+m2)
가 성립한다. 즉, 평문 m1과 평문 m2의 합 m2+m2의 암호문 E(m1+m2)는 m1의 암호문과 m2의 암호문의 합으로부터 직접 구할 수 있다. 또한, RSA 암호, Elgamall 암호 등의 승법 준동형 암호에서는, 평문 m1과 m2의 곱 m1×m2의 암호문 E(m1×m2)에 대해서,
E(m1×m2)=E(m1)×E(m2)
가 성립하여, 평문 m1×m2의 암호문 E(m1×m2)는 평문 m1의 암호문과 평문 m2의 암호문의 곱으로부터 직접 구할 수 있다.
암호화된 데이터인 상태에서의 연산은, 암호 알고리즘이 상기한 준동형 암호인 경우에는, 가산 또는 승산 등에 대응 가능하지만, 가감승제의 복잡한 연산이나 논리 연산 등에는 대응하지 않는다. 따라서, 데이터베이스 조작 명령의 연산을 데이터베이스에 저장된 암호화 데이터를 그대로 연산하는 것으로 구할 수 없는 경우, 데이터베이스에 기록된 암호화된 데이터를 판독하여 유저 시스템측에 돌려주어, 유저 시스템측에서 평문으로 복호화한 뒤에 연산 처리를 행하고, 평문으로의 연산 결과를, 해당 데이터베이스 조작 명령의 발행원의 데이터베이스 이용 어플리케이션에 돌려준다. 또는, 보다 복잡한 처리가 필요한 경우, 유저 시스템측에서 평문으로 복호화한 뒤에 연산 처리를 행하여 얻어진 평문의 연산 결과를 다시 암호화하여 데이터베이스측에 송신하고, 데이터베이스측에서 암호화된 데이터로의 연산 처리를 계속해서 실행하는 것처럼, 데이터베이스측에서의 암호화 데이터로의 처리와 유저 시스템측에서의 평문으로의 처리를 복수 조합한 처리를 행하도록 해도 된다. 이와 같이, 암호 데이터로의 연산과, 평문으로의 연산 처리를 조합함으로써, 임의의 데이터베이스 조작에 대응 가능하게 하고 있다.
<D. 기밀도의 설정>
유저 시스템측에서 데이터베이스에 저장하는 정보의 암호화의 유무를, 예를 들어 테이블, 칼럼, 칼럼 데이터 단위로 설정 가능하게 함과 함께, 데이터의 조작 내용과, 구해지는 안전성(기밀도)에 따른 처리 수순(암호 알고리즘)을 선택 가능하게 하고 있다. 이에 의해, 처리의 효율화를 실현 가능하게 하고 있다.
<E. 어플리케이션의 개조의 회피>
본 발명의 실시에 있어서, 데이터베이스 조작 명령(예를 들어 SQL 명령 등)의 구문의 변경 등이 불필요하여, 데이터베이스 이용 어플리케이션(도 1의 21)에서는, 데이터베이스 조작 명령을 그대로(명령의 구문 및 명령으로 지정하는 테이블명, 칼럼명, 데이터 등 모두 평문인 상태) 발행하면 된다. 데이터베이스 이용 어플리케이션(도 1의 21)에서 테이블(표) 작성, 칼럼 추가, 행 추가, 데이터의 연산 등의 데이터베이스 조작 명령을 발행하면, 어플리케이션 응답 수단(도 1의 22)에 입력된다. 어플리케이션 응답 수단(도 1의 22)에서는, 데이터의 안전성에 대응한 암호 알고리즘의 선택이 행해지고, 상기 암호 알고리즘으로 암호화를 행한 뒤에, 데이터베이스 시스템(10)에 송신된다. 그리고, 데이터베이스(11)에 저장하는 데이터의 안전성 설정을 행하는 안전성 설정 수단(26)을 데이터베이스 이용 어플리케이션(21)과는 별도로 준비함으로써, 데이터베이스를 이용하는 기존 어플리케이션의 개조 등을 필요로 하지 않고 있다. 즉, 본 발명의 실시에 있어서, 어플리케이션에서, 데이터의 암호화, 복호, 안전성의 설정 등을 행하는 것은 불필요하여, 데이터베이스 조작 명령을 발행하는 기존의 임의의 어플리케이션에 대응 가능하다(기존의 어플리케이션을 그대로 이용하는 것이 가능하다).
또한, 유저 단말기가, 공개 키를 사용하여 비밀 키를 생성하는 비밀 키 생성 수단과, 비밀 키를 저장하는 저장 수단과, 공개 키에 기초하여 데이터를 암호화하는 암호화 수단과, 암호화된 데이터를 비밀 키를 사용하여 복호화하는 복호화 수단을 구비하고, 외부로부터 침입하는 제삼자, 데이터를 보관, 관리하는 관리자 등에 대해서도, 데이터의 누설을 적확하게 방지할 수 있도록 한 데이터베이스 액세스 시스템을 개시한 특허문헌 3은, 상기 A의 정보 누설의 방지를 실현하는 것인데, 특허문헌 3에는, 상기 B 내지 E는 개시되어 있지 않다.
<실시 형태>
이하 첨부 도면을 참조하여 실시 형태를 설명한다.
<시스템 구성예>
도 1은, 본 발명의 일 실시 형태를 설명하는 도면이다. 도 1을 참조하면, 데이터베이스 시스템(10)과, 유저 시스템(유저 장치)(20)은, 예를 들어 LAN(Local Area Network), WAN(Wide Area Network), 또는 인터넷 등의 네트워크(30)를 통해 접속되어 있다. 데이터베이스 시스템(10)은, 데이터베이스(11)와, 데이터베이스 제어 수단(12)과, 암호 프로토콜 정보 기억부(13)와, 안전성 설정 정보 기억부(14)를 구비하고 있다.
유저 시스템(20)은, 데이터베이스 이용 어플리케이션(21)과, 어플리케이션 응답 수단(22)과, 키 이용 수단(23)과, 키 정보 기억부(24)와, 안전성 설정 정보 일시 기억부(25)와, 안전성 설정 수단(26)과, 입력/출력 장치(27)를 구비하고 있다. 특별히 제한되지 않지만, 유저 시스템(20)은, 예를 들어 네트워크(30)에 접속해서 데이터베이스 시스템(10)에 통신 접속하는 기능을 구비한 데이터 처리 장치(CPU, 프로세서)에 실장된다. 이 경우, 데이터베이스 이용 어플리케이션(21)은, 데이터 처리 장치상에서 동작하는 어플리케이션 프로그램이다. 또한, 특별히 제한되지 않지만, 어플리케이션 응답 수단(22), 키 이용 수단(23), 안전성 설정 수단(26)도, 데이터 처리 장치상에서 동작하는 프로그램(제어 프로그램 등)으로 실현해도 된다. 또는 신 클라이언트 방식 등에 실장하는 경우, 서버에 가상화 기술을 도입하여, 서버상의 가상 머신상에 유저 시스템을 실장하고, 신 클라이언트 단말기로부터, 상기 서버상의 가상 머신상의 데이터베이스 이용 어플리케이션에 대한 입력을 행하도록 해도 된다.
또한, 도 1에서는, 유저 시스템(20)을 구성하는 각 수단은 1개의 블록 내에 배치되어 있지만, 이들은, 예를 들어 근거리 네트워크 등의 통신망을 통해 별도의 장치로서 구성해도 된다. 마찬가지로, 데이터베이스 시스템(10)에서도, 데이터베이스(11)와 데이터베이스 제어 수단(12)이 1개의 블록 내에 배치되어 있지만, 별도로 배치해도 됨은 물론이다.
또한, 도 1에서는, 단순히 설명의 간단화를 위하여, 유저 시스템(20)을 1개 구비한 예가 나타나 있지만, 데이터베이스 시스템(10)에 네트워크(30)를 통해 접속되는 유저 시스템(20)은 복수대이어도 되는 것은 물론이다. 또한, 복수대의 유저 시스템(20)에 대하여 데이터베이스 시스템(10)과 통신 접속하는 어플리케이션 응답 수단(22)을 공통으로 1개 구비한 구성으로 해도 된다. 이 경우, 복수대의 유저 시스템(20) 각각은, 유저마다 키 이용 수단(23)과 키 정보 기억부(24)를 구비하여, 유저측에서 키 정보를 기억 관리하고, 또한 안전성 설정 수단(26)을 구비하여, 공통의 어플리케이션 응답 수단(22)을 통해, 데이터베이스 시스템(10)에 접속하는 구성이 된다. 안전성 설정 정보 일시 기억부(25)는, 복수대의 유저 시스템(20)에 대하여 1개의 스토리지 장치(시스템)에 통합화해서 배치해도 되고, 개개의 유저 시스템(20)에 분산 배치하도록 해도 된다.
<데이터베이스 시스템>
이어서, 데이터베이스 시스템(10)의 요소에 대하여 그 개략을 설명한다. 데이터베이스 제어 수단(12)은, 데이터베이스(11)에 대한 조작(데이터베이스 조작 명령에 의한 데이터베이스 조작)을 행하는 기능과, 암호 프로토콜을 실행하는 기능을 구비하고 있다.
안전성 설정 정보 기억부(14)는, 데이터베이스(11) 내에 저장되는 데이터의 안전성 설정을 위한 정보로서, 예를 들어 암호화에 사용되는 암호 알고리즘의 정보 등을 기억 유지한다. 안전성 설정 정보 기억부(14)는, 예를 들어,
·데이터베이스(11)에 저장되는 테이블명, 칼럼명을 포함하는 메타데이터의 암호화의 유무,
·데이터의 암호화의 유무,
·데이터의 안전성의 정도를 나타내는 기밀도 정보,
·데이터의 암호화를 행하는 경우의 암호 알고리즘을 식별하는 암호 알고리즘 식별 정보 등을 기억 유지한다.
암호 프로토콜 정보 기억부(13)는, 데이터베이스(11)의 데이터의 암호화를 위한 암호 프로토콜 정보를 기억한다. 예를 들어,
·데이터베이스 조작 명령의 처리 내용(단순 일치, 가산 등)과, 데이터에 요구되는 안전성의 정도(기밀도)에 대응하는 암호 알고리즘의 식별 정보와,
·암호 프로토콜의 식별 정보를 기억 유지한다. 암호 프로토콜 정보 기억부(13)에는, 데이터베이스(11) 내의 데이터를 암호문인 상태로 가산하는 연산 처리에는, 해당 처리 내용에 따라, 가법성 준동형 암호 알고리즘을 선택하기 위한 정보가 기억된다.
데이터베이스 제어 수단(12)은, 어플리케이션 응답 수단(22)으로부터 송신된 데이터베이스 조작 명령(평문 데이터로의 데이터베이스 조작), 또는, 암호 프로토콜 실행의 지시를 받아, 평문 데이터로의 데이터베이스 조작, 또는 암호 프로토콜을 실행하고, 처리 결과를 어플리케이션 응답 수단(22)에 송신한다. 데이터베이스 제어 수단(12)은, 유저 시스템(10)을 클라이언트로 하는 데이터베이스 서버로서 실장해도 된다.
<유저 시스템>
이어서, 유저 시스템(20)의 각 요소에 대하여 그 개략을 설명한다. 데이터베이스 이용 어플리케이션(21)은, 데이터베이스 조작 명령을 발행한다. 또한, 특별히 제한되지 않지만, 데이터베이스 이용 어플리케이션(21)은, 데이터베이스 조작을 실행하기 위한 데이터베이스 조작 명령(SQL(Structured Query Language) 명령)을 발행하는 어플리케이션 프로그램으로 이루어진다. 또는, 데이터베이스 이용 어플리케이션(21)에서는, 데이터베이스 시스템(10)의 데이터베이스 제어 수단(12)에 어플리케이션 응답 수단(22)을 통해, 화면상에서 테이블 정의, 데이터 추가, 검색, 연산 등의 조작을 행하는 GUI(Graphical User Interface) 환경으로서 실장해도 된다. 이 경우, 유저가 화면상에서 선택한 조작은, 대응하는 SQL 명령으로 변환되어, 어플리케이션 응답 수단(22)에 입력된다. 데이터베이스 이용 어플리케이션(21)은, 기존의 어플리케이션을 그대로 사용하는 것이 가능하다. 이것은, 데이터베이스 이용 어플리케이션(21)을 새롭게 개발해서는 않된다는 것을 의미하는 것이 아니라, 데이터베이스 이용 어플리케이션(21)을 새롭게 개발 또는 개조, 개판함에 있어서, 데이터의 암호화, 복호화, 데이터의 안전성 설정을 위한 정보의 설정을, 해당 데이터베이스 이용 어플리케이션(21)에서 행하지 않아도 되는 것을 의미하고 있다.
안전성 설정 수단(26)은, 데이터의 안전성의 정보의 설정을 행한다.
키 이용 수단(23)은, 키 정보 기억부(24)를 참조하여, 데이터의 암호화·복호 등 각종 암호 프로토콜의 실행에 필요한 키의 생성 등을 행한다.
입력/출력 장치(27)는, 키보드, 마우스, 또는 터치 패널 등의 입력 장치와, 표시 장치 또는 파일 장치(프린터) 등의 출력 장치로 이루어지고, 데이터베이스의 이용자(유저)의 정보 입력, 출력 정보의 표시 또는 출력을 행한다. 또한, 도 1에서는, 터치 패널/타블렛·디스플레이 등, 입력·출력 일체형 장치, 또는, 입력과 출력이 개별적인 장치도 포함하여, 입력/출력 장치(27)로 하고 있다.
안전성 설정 정보 일시 기억부(25)는, 안전성 설정 정보 기억부(14)에 저장되어 있는 정보와, 조작 대상 데이터를 특정하기 위한 정보를 저장한다. 예를 들어 데이터베이스(11) 내의 데이터를 특정하는 정보인 메타데이터(예를 들어, 테이블명이나 칼럼명 등)에 대해서, 상기 메타데이터가 암호화되어 있는 경우, 암호화된 메타데이터와, 복호된 메타데이터(평문 메타데이터)를 대응시켜서 기억 유지한다.
어플리케이션 응답 수단(22)은, 데이터베이스 이용 어플리케이션(21)으로부터 데이터베이스 조작 명령이 입력되면, 안전성 설정 정보 일시 기억부(25), 안전성 설정 정보 기억부(14), 암호 프로토콜 정보 기억부(13)를 참조하여,
·테이블명·칼럼명 등 메타데이터의 암호문 메타데이터로의 치환이나,
·데이터베이스 조작의 내용(처리 내용)에 따른 암호 프로토콜, 또는,
·통상의 데이터베이스 조작을, 데이터베이스 제어 수단(12)이나 키 이용 수단(23)과 협조하여 실행한다.
예를 들어, 데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령이 테이블의 신규 작성 등이며, 데이터의 안전성을 동적으로 설정·변경할 필요가 발생한 경우에는, 어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)을 호출하여, 안전성 설정 정보의 설정을 행한 뒤에, 데이터베이스 제어 수단(12)을 통해 데이터베이스(11) 내에 테이블을 작성한다.
그때, 안전성 설정 수단(26)은, 유저에, 안전성 설정 정보의 입력을 독촉하는 화면 표시를 행하도록 해도 된다. 신규로 테이블을 작성하는 경우의 안전성 설정 정보의 입력은, 상기 이외에도 각종 형태가 가능하다. 예를 들어 데이터베이스 이용 어플리케이션(21)에 의한 데이터베이스 조작 명령의 발행에 앞서, 해당 신규로 작성하는 테이블명에 관한 암호화의 유무 등의 안전성 설정 정보를, 안전성 설정 수단(26)에서 사전에 설정해 두어도 된다. 또는, 데이터베이스(11)에 신규로 작성되는 테이블에 관해서, 테이블명의 일부를 와일드 카드 등으로 치환한 테이블명의 템플릿에 대하여, 기밀도, 암호 프로토콜 식별 정보(디폴트 정보)를 설정해 두고, 신규로 작성하는 테이블이 해당 와일드 카드를 포함하는 테이블명과 일치하는 경우, 디폴트의 기밀도에 대응한 암호 프로토콜로 암호화를 행하도록 해도 된다.
어플리케이션 응답 수단(22)은 데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령의 조작 대상의 데이터의 암호화가 필요할 경우, 데이터의 암호화 등을 행한다. 그때, 어플리케이션 응답 수단(22)은, 키 정보를 사용해서 암호화를 행하여, 데이터베이스 제어 수단(12)에 송신한다. 어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)으로부터 반송된 데이터베이스 조작 결과(처리 결과)를 데이터베이스 이용 어플리케이션(21)에 돌려준다. 특별히 제한되지 않지만, 데이터베이스 이용 어플리케이션(21)은, 입력/출력 장치(27)에 데이터베이스 조작 결과를 출력한다.
<동작 개략 설명>
도 1에 도시한 시스템의 동작예를 개략적으로 설명한다. 데이터베이스 제어 수단(12)은, 데이터베이스 이용 어플리케이션(21)으로부터 입력되어, 어플리케이션 응답 수단(22)을 통해 전송된 데이터베이스 조작 명령이, 예를 들어 검색(Query) 등, 암호문인 상태로 처리 가능한 암호 프로토콜이 존재하는 조작일 경우, 암호문인 상태로 처리(검색 등)를 행한다. 데이터베이스 제어 수단(12)은, 데이터베이스(11) 내의 암호문의 처리 결과를, 암호문인 상태로 어플리케이션 응답 수단(22)에 돌려준다. 어플리케이션 응답 수단(22)은, 암호문을 키 이용 수단(23)에서 평문으로 복호한 결과를 수취하여, 데이터베이스 이용 어플리케이션(21)에, 평문의 데이터베이스 조작 결과를 돌려준다.
데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령이, 암호문인 상태로는 데이터베이스에서의 처리가 어려운 조작(예를 들어, 가감승제 등의 복합 산술 연산, 논리 연산 등)인 경우, 데이터베이스 제어 수단(12)은, 조작 대상의 데이터를, 데이터베이스(11)로부터 암호문인 상태로 취출하여, 연산 조작은 행하지 않고 어플리케이션 응답 수단(22)에 보낸다. 어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)으로부터 보내진, 암호화된 데이터를, 키 이용 수단(23)의 복호용의 키를 사용해서 복호하고, 얻어진 평문에 대하여 상기 데이터베이스 조작 명령으로 지정된 조작을 행하여, 조작 결과를, 데이터베이스 이용 어플리케이션(21)에 돌려준다.
또한, 평균 연산 등, 복합 산술 연산 중 일부 연산이, 암호문인 상태로 처리가 가능한 경우에는, 데이터베이스 제어 수단(12)은, 암호문에 의한 부분 연산을 행한 연산 결과(암호문)를 어플리케이션 응답 수단(22)에 돌려준다. 어플리케이션 응답 수단(22)에서는, 암호문으로의 연산 결과를, 키 이용 수단(23)에서 평문으로 복호화하고, 상기 복합 산술 연산의 나머지 연산을 평문으로 행하도록 해도 된다. 이렇게 함으로써, 개개의 데이터를 전부 복호하고 나서 복합 산출 연산을 행하는 경우보다 처리를 효율화하고 있다.
어플리케이션 응답 수단(22)은, 데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령에 대하여 안전성 설정 정보 기억부(14)를 참조함으로써, 입력된 데이터베이스 조작 명령의 조작 대상으로 되어 있는 데이터베이스(11) 내의 데이터가, 암호화에 의한 보호가 필요한지 여부(암호화의 필요 여부)를 확인한다. 암호화가 불필요한 경우에는, 통상의 데이터베이스 조작과 동일한 처리가 행해진다. 또한, 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)를 참조함으로써, 데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령의 조작 대상으로 되어 있는 데이터의 메타데이터(예를 들어, SQL에서는 테이블명이나 칼럼명 등)가 암호화되어 있는 경우에도, 조작 대상의 데이터를 특정할 수 있다.
상기한 바와 같이, 본 실시 형태에 따르면, 어플리케이션 응답 수단(22)은, 입력된 데이터베이스 조작 명령에 대하여 안전성 설정 정보를 참조함으로써, 조작 대상으로 되어 있는 데이터베이스(11)에 요구되는 안전성의 정도에 따른 처리를 결정할 수 있다. 이에 의해, 요구되는 안전성이 낮은 데이터는, 상대적으로 고속이지만, 안전성이 높지 않은 암호 알고리즘을 사용함으로써, 효율적인 처리를 가능하게 하고 있다.
본 실시 형태에 따르면, 데이터베이스(11)에 기록되는 데이터 중 안전성이 요구되는 데이터는 암호화되어 있기 때문에, 해당 데이터에 대하여 정보 누설을 방지할 수 있다. 또한, 어플리케이션 응답 수단(22)과 협동함으로써, 입력된 임의의 데이터베이스 조작 명령에 대하여 대응이 가능하게 된다.
도 2의 (A), (B)는 각각, 본 실시 형태에서의 어플리케이션 응답 수단(22)과 데이터베이스 제어 수단(12)의 처리 동작을 설명하기 위한 흐름도이다.
<어플리케이션 응답 수단의 동작>
어플리케이션 응답 수단(22)의 처리 동작을 설명한다. 도 2의 (A)를 참조하면, 어플리케이션 응답 수단(22)은 이하의 스텝을 실행한다.
스텝 1: 데이터베이스 이용 어플리케이션(21)으로부터 데이터베이스 조작 명령(SQL)을 입력한다.
스텝 2: 안전성 설정 정보 일시 기억부(25)를 참조함으로써, 데이터베이스 조작 명령으로 조작 대상으로 지정된 테이블명이나 칼럼명 등의 메타데이터의 암호화의 유무를 판정한다.
스텝 3: 테이블명이나 칼럼명 등의 메타데이터를 암호화하여 데이터베이스에 저장할 경우, 데이터베이스 조작 명령으로 조작 대상으로 지정된 메타데이터를 암호문으로 치환하는 치환 처리를 행한다.
스텝 4: 안전성 설정 정보 기억부(14)를 참조하여, 데이터베이스 조작 명령으로 조작 대상으로 지정된 데이터의 암호화의 필요 여부를 결정한다.
스텝 5: 데이터 암호화가 불필요한 경우, 데이터베이스 조작 명령을 데이터베이스 제어 수단(12)에 송신한다.
스텝 6: 데이터베이스 제어 수단(12)으로부터의 데이터베이스 조작 결과를 수신한다.
스텝 7: 데이터베이스 조작 결과의 변환의 필요 여부를 판정한다. 이 스텝(7)의 판정은, 데이터베이스 제어 수단(12)으로부터의 조작 결과가 암호문으로 되돌려지는 경우가 있기 때문에 행해진다.
스텝 8: 데이터베이스 조작 결과의 변환(또는 복호화)이 필요한 경우, 키 이용 수단(23)의 복호 키를 사용하여 변환을 행한다. 이 변환 처리(복호화)에 있어서, 키 이용 수단(23)의 복호 키를 사용한 변환이나, 후술되는 안전성 설정 정보 일시 기억부(25)의 복호 후 테이블명, 복호 후 칼럼명을 참조한 변환을 행한다.
스텝 14: 조작 결과(또는 변환 결과)를 데이터베이스 이용 어플리케이션(21)에 출력한다.
한편, 스텝 4에서 데이터 암호화가 필요한 경우, 어플리케이션 응답 수단(22)은 이하의 처리를 행한다.
스텝 9: 암호 프로토콜 정보 기억부(13)를 참조하여, 해당하는 암호 알고리즘으로 암호화 처리를 행한다.
스텝 10: 어플리케이션 응답 수단(22)은, 암호 프로토콜의 실행 지시(암호 프로토콜 처리 실행의 의뢰)를 데이터베이스 제어 수단(12)에 송신한다.
스텝 11: 데이터베이스 제어 수단(12)에서 암호 프로토콜을 실행한다.
스텝 12: 데이터베이스 제어 수단(12)으로부터 암호 프로토콜의 실행 결과를 수신한다.
스텝 11, 12에서, 어플리케이션 응답 수단(22)에 의한, 데이터베이스 제어 수단(12)으로부터의 암호문의 연산 결과를 복호화하여 평문으로 하고, 평문으로의 부분 연산과, 상기 부분 연산 결과를 암호화한 뒤에 데이터베이스 제어 수단(12)에 대한 송신, 데이터베이스 제어 수단(12)에 의한 암호문으로의 연산을 협동하여 실행하도록 해도 된다.
스텝 13: 암호 프로토콜의 실행 결과를 키 이용 수단(23)의 키 정보를 사용하여 복호화하는 변환 처리를 행한다. 암호 프로토콜의 실행 결과에 대하여 키 이용 수단(23)의 키 정보를 사용한 복호화, 또는, 안전성 설정 정보 일시 기억부(25)의 복호 후 테이블명, 복호 후 칼럼명을 참조한 복호화에 의한 변환 처리를 행한다.
스텝 14: 변환 결과를 데이터베이스 이용 어플리케이션(21)에 출력한다.
<데이터베이스 제어 수단의 동작>
도 2의 (B)를 참조하면, 데이터베이스 제어 수단(12)에서는,
스텝 1: 어플리케이션 응답 수단(22)으로부터의 지시의 수신을 대기한다.
스텝 2: 어플리케이션 응답 수단(22)으로부터 데이터베이스 조작 명령을 수신한 경우, 데이터베이스 조작 명령을 실행한다.
스텝 3: 데이터베이스 조작 결과를 어플리케이션 응답 수단(22)에 돌려준다.
스텝 4: 어플리케이션 응답 수단(22)으로부터 암호 프로토콜 처리 의뢰를 수신한 경우, 암호 프로토콜을 실행한다(도 2의 (A)의 스텝 11에 대응).
스텝 5: 암호 프로토콜 실행 처리 결과를 어플리케이션 응답 수단(2)에 돌려준다.
<실시 형태의 작용 효과>
도 2에 도시한 바와 같이, 데이터베이스 제어 수단(12)과 어플리케이션 응답 수단(22)의 협동에 의해, 데이터베이스 시스템(10)에서의 정보 누설을 방지함과 함께, 임의의 데이터베이스 조작에 대한 대응, 효율적인 처리 실행을 실현하고 있다.
유저 시스템(20)에서는, 암호화, 복호화를 위한 키 정보의 관리를 행하고, 데이터베이스(11) 내의 암호화된 데이터를 유저 시스템(20)에 전송하고, 유저 시스템(11)측에서 복호 처리를 행한다. 이로 인해, 데이터베이스 시스템(10)에서의 정보 누설의 가능성의 증대를 억제하고 있다.
데이터베이스(11) 내의 데이터에 대하여 암호화의 유무나 요구되는 안전성의 정도의 정보를 기억하는 안전성 설정 정보 기억부(14)를 구비하고, 어플리케이션 응답 수단(22)은, 데이터베이스 조작 명령을 입력했을 때에, 안전성 설정 정보 기억부(14)를 참조하여, 조작 대상의 데이터의 암호화의 필요 여부를 판단하여, 데이터의 암호화가 불필요한 경우(통상의 데이터베이스 조작의 경우)에는, 암호화 처리를 행하지 않는다(도 2의 (A)의 스텝 5, 6). 이와 같이, 기밀성이 요구되지 않는 데이터를 암호화의 대상에서 제외함으로써, 모든 데이터베이스 조작을 암호화하는 경우에 발생하는, 처리 성능에 대한 영향을 억제하고 있다.
또한, 데이터베이스 내의 데이터를 특정하기 위한 메타데이터(예를 들어 SQL에서는, 테이블명이나 칼럼명)에 관해서, 암호화된 메타데이터와, 복호된 메타데이터의 대응 정보를 유저 시스템(20)에서 유지한다. 이로 인해, 데이터베이스(11)에 있어서, 메타데이터가 암호화되어 있는 경우에도, 조작 대상의 데이터를 용이하게 특정할 수 있다. 메타데이터의 암호화에 의한 처리 성능에 대한 영향을 회피 가능하게 하고 있다.
<데이터베이스 제어 수단의 구성>
이어서, 상기한 데이터베이스 제어 수단(12)에 대하여 상세하게 설명한다. 도 3은, 도 1의 데이터베이스 제어 수단(12)의 구성의 일례를 나타내는 도면이다. 도 3을 참조하면, 데이터베이스 제어 수단(12)은, 데이터베이스 조작부(121)와, 암호 프로토콜 처리 실행부(122)와, 처리·통신 제어부(125)와, 암호 프로토콜 정보 조작부(123)와, 안전성 설정 정보 조작부(124)를 구비하고 있다.
암호 프로토콜 처리 실행부(122)는, 암호문인 상태로 데이터베이스(11)의 검색이나 가산 등을 실행한다.
데이터베이스 조작부(121)는, 데이터베이스(11)에 대한 데이터베이스 조작(테이블 작성, 데이터의 추가·삭제, 데이터 검색, 데이터 연산 등)을 실행한다. 또한, 어플리케이션 응답 수단(22)으로부터 평문 데이터의 데이터베이스(11)에 대한 저장, 추가, 삭제, 갱신 등을 행하는 데이터베이스 조작 명령을 처리·통신 제어부(125)에서 수신한 경우, 평문 데이터는, 처리·통신 제어부(125)로부터 데이터베이스 조작부(121)에 그대로 전송되고, 데이터베이스 조작부(121)는 평문 데이터로의 데이터베이스 조작을 행한다.
또한, 암호 프로토콜 처리 실행부(122)는, 데이터를 암호문 상태 그대로 조작을 행하는데, 데이터베이스(11)에 대한 액세스는, 데이터베이스 조작부(121)를 통해 행한다. 예를 들어, 데이터베이스(11) 내의 테이블 A로부터 칼럼 B, C를 취득하는 경우의 명령, SQL의 검색문 SELECT B, C FROM A에 관해서, 데이터베이스(11) 내의 테이블명 A에서의 칼럼 B, C가 암호화되어 있는 경우, 데이터베이스 조작부(121)에서는, 칼럼 B, C를 암호화된 상태 그대로 검색 처리하여, 암호 프로토콜 처리 실행부(122)에 검색 결과를 돌려준다.
처리·통신 제어부(125)는, 네트워크(30)를 통한 어플리케이션 응답 수단(22)과의 통신이나 데이터베이스 제어 수단(12) 내부의 각 부의 제어를 행한다.
암호 프로토콜 정보 조작부(123)는, 암호 프로토콜 정보 기억부(13)에 대하여 암호 프로토콜 정보의 판독이나 기입을 행한다. 암호 프로토콜 정보 조작부(123)는, 어플리케이션 응답 수단(22)으로부터의 암호 프로토콜 정보 기억부(13)에 대한 액세스 요구(판독 요구)에 대하여 암호 프로토콜 정보 기억부(13)를 액세스하여, 판독한 암호 프로토콜 정보를, 처리·통신 제어부(125)를 통해 어플리케이션 응답 수단(22)에 돌려준다.
안전성 설정 정보 조작부(124)는, 안전성 설정 정보 기억부(14)로부터의 안전 설정 정보의 판독이나 안전성 설정 정보 기억부(14)에 대한 기입을 행한다. 안전성 설정 정보 조작부(124)는, 어플리케이션 응답 수단(22)으로부터의 안전성 설정 정보 기억부(14)에 대한 액세스 요구(판독 요구)에 대하여 안전성 설정 정보 기억부(14)에 액세스하여, 안전성 설정 정보 기억부(14)로부터 판독한 안전 설정 정보를, 처리·통신 제어부(125)를 통해 어플리케이션 응답 수단(22)에 돌려준다.
<데이터베이스 제어 수단의 변형예 1>
도 4는, 도 3의 변형예를 도시하는 도면이다. 도 4에 도시하는 예에서는, 암호 프로토콜 정보와, 안전성 설정 정보는 데이터베이스(11) 내에, 암호 프로토콜 정보 테이블(111)과, 안전성 설정 정보 테이블(112)로서 저장되어 있다. 도 4의 암호 프로토콜 정보 조작부(123)는, 데이터베이스 조작부(121)에, 데이터베이스 조작 명령(테이블명을 암호 프로토콜 정보 테이블로서 지정한 SQL 명령 등)을 발행함으로써, 데이터베이스(11) 내의 암호 프로토콜 정보 테이블(111)의 정보에 액세스한다. 마찬가지로, 안전성 설정 정보 조작부(124)는, 데이터베이스 조작부(121)를 통해 데이터베이스(11) 내의 안전성 설정 정보 테이블(112)의 정보에 액세스한다.
<데이터베이스 제어 수단의 변형예 2>
도 26은, 도 1의 데이터베이스 제어 수단(12)의 또 다른 구성예를 도시하는 도면이다. 도 26을 참조하면, 데이터베이스 제어 수단(12)은, 데이터베이스 조작부(121)와, 암호 프로토콜 처리 실행부(122)와, 처리·통신 제어부(125)와, 암호 프로토콜 정보 조작부(123)와, 안전성 설정 정보 조작부(124)와, 암호 연산부(126)를 구비하고 있다. 도 3과는, 암호 연산부(126)를 구비한 점이 상이하다. 데이터베이스 조작부(121)와, 암호 프로토콜 처리 실행부(122)와, 처리·통신 제어부(125)와, 암호 프로토콜 정보 조작부(123)와, 안전성 설정 정보 조작부(124)는, 도 3과 마찬가지이기 때문에 설명은 생략한다.
어플리케이션 응답 수단(22)은, 암호화 알고리즘이 공개 키 암호인 경우, 암호화에 사용하는 공개 키를, 데이터베이스 제어 수단(12)에 송신하고, 데이터베이스 제어 수단(12)의 암호 연산부(126)에서 암호화한다. 예를 들어 데이터베이스(11)에 저장되어 있는 데이터를 암호화하여 저장하는 경우에, 도 3의 구성에서는, 암호화 대상의 데이터를 데이터베이스 시스템(10)측으로부터 유저 시스템(20)측에 송부하여, 유저 시스템(20)측에서 암호화하고, 암호문 데이터를, 유저 시스템(20)으로부터 데이터베이스 시스템(10)에 송신할 필요가 있다. 도 26의 구성에 의하면, 데이터베이스(11)에 저장되어 있는 데이터를 암호화하여 저장하는 경우에, 암호화 대상의 데이터를 암호 연산부(126)에서 암호화한다. 이로 인해, 데이터베이스 시스템(10)측으로부터 유저 시스템(20)측에 송부할 필요가 없다. 그 결과, 데이터베이스 시스템(10)과 유저 시스템(20)의 사이의 통신량의 증가를 억제하는 효과를 기대할 수 있다.
<데이터베이스 제어 수단의 변형예 3>
도 27은, 도 1의 데이터베이스 제어 수단(12)의 구성의 다른 예를 도시하는 도면이다. 도 27을 참조하면, 본 실시 형태는, 도 26의 구성에서, 도 4와 마찬가지로, 암호 프로토콜 정보 테이블(111), 안전성 설정 정보 테이블(112)을 데이터베이스(11) 내에 구비하고 있다. 암호 연산부(126)는, 도 26과 마찬가지이기 때문에, 설명은 생략한다.
<암호 프로토콜 정보 기억부의 일례>
도 5는, 도 1의 암호 프로토콜 정보 기억부(13)의 예를 설명하기 위한 도면이다. 도 5에서, 처리 내용 식별자는, 데이터베이스 조작의 처리 내용을 식별하는 정보이다. 특별히 제한되지 않지만, 도 5에서는, "단순 일치"(지정된 문자열과 일치하는지를 단순하게 대조), "가산" 등의 데이터베이스 조작의 식별 코드가 설정된다.
기밀도는, 데이터의 안전성(기밀성)의 정도를 나타내고 있어, 특별히 제한되지 않지만, 이 예에서는, "고", "중", "저" 중 어느 하나가 설정된다. 기밀도는, 수치화해도 된다.
암호 알고리즘 식별자는, 데이터의 암호화에 사용되는 암호 알고리즘을 나타내고 있다. 암호 프로토콜 식별자는, 처리 내용 식별자, 기밀도, 암호 알고리즘 식별자의 각 정보에 대하여 기밀성을 유지하고, 실행 가능한 암호 프로토콜의 식별자가 저장된다.
기밀도가 "중"이고, 암호 알고리즘이 예를 들어 "SE1"로 암호화되는 데이터에 대하여 "단순 일치"의 처리를 행하는 경우, 데이터베이스 제어 수단(12)의 암호 프로토콜 처리 실행부(122)에서는, 도 5의 3행째의 "SE1_SS_M"의 암호 프로토콜이 실행된다. "SE1_SS_M"의 SS(Simple-Search)는 단순 일치, M은 기밀도가 Middle(중)을 나타내고 있다.
암호 프로토콜 정보 조작부(123)는, 암호 프로토콜 정보 기억부(13)로부터 암호 프로토콜 식별자를 판독하여, 처리 내용 식별자, 기밀도, 암호 알고리즘 식별자를 디코드함으로써, 데이터의 처리 내용, 기밀도, 암호 알고리즘이 도출된다.
또한, AES(Advance Encryption Standard)는, 미국에서 새 규격으로서 규격화된 공통 키 암호 방식이다. HE1은, 준동형 암호(HE: Homomorphic Encryption)의 하나를 나타내고 있다(이 경우, 가법성 준동형 암호의 Paillier 암호). SE1은, 공개 키 방식의 검색 가능한 암호(SE: Searchable Encryption)의 하나를 나타내고 있다.
또한, 도 5에 도시한 바와 같이, 처리 내용이 동일한 가산이어도, 준동형 암호가 아닌(암호문인 상태로 가산 연산 등을 할 수 없는) 암호 알고리즘 AES가 설정되는 경우도 있다. 이 경우, 데이터베이스(11)의 암호문은, 어플리케이션 응답 수단(22)에 송신되고, 어플리케이션 응답 수단(22)에서는, 키 이용 수단(23)에서 암호 알고리즘 AES로 복호하여 평문으로 한 데이터에 대해 가산 연산을 행한다.
<안전성 설정 정보 기억부의 일례>
도 6은, 도 1의 안전성 설정 정보 기억부(14)의 일례를 나타내는 도면이다. 도 6을 참조하면, 안전성 설정 정보 기억부(14)는, 데이터베이스(11)에 작성된 테이블명, 상기 테이블명이 암호화되어 있는지의 여부(테이블명 암호화 유무), 칼럼명, 상기 칼럼명이 암호화되어 있는지의 여부(칼럼명 암호화 유무), 칼럼 데이터가 암호화되어 있는지의 여부(칼럼 데이터 암호화 유무), 칼럼 데이터의 기밀도, 칼럼 데이터의 암호화에 사용되는 암호 알고리즘의 식별자(칼럼 데이터 암호화 알고리즘 식별자)의 란을 포함한다.
도 6의 안전성 설정 정보 기억부(14)에 있어서, 예를 들어 1행째의 "사원표"의 테이블명은 암호화되어 있지 않고, 칼럼명 "근무지"는 암호화되어 있지 않고, 칼럼 데이터는 암호화되어 있고, 칼럼 데이터의 기밀도는 "중"이며, 암호 알고리즘 식별자는 "SE1"이다. "사원표"의 테이블명에 관해서 3행째는 칼럼명이 암호화되어 있고, 칼럼 데이터는 암호화되어 있고, 칼럼 데이터의 기밀도는 "고"이며, 암호 알고리즘 식별자는 "AES"이다. 4행째의 테이블명은 암호화되어 있고, 칼럼명, 칼럼 데이터는 암호화되어 있지 않다(해당 란에 NULL이 설정되어 있음). 한편, 5행째의 테이블명은 암호화되어 있지 않고, 칼럼명은 암호화되어 있고, 칼럼 데이터는 암호화되어 있지 않다.
테이블명, 칼럼명 등의 메타데이터의 암호화는 칼럼 데이터를 암호화하는 암호 알고리즘과 동일한 암호 알고리즘으로 암호화해도 된다. 안전성 설정 정보 기억부(14)에서, 동일한 암호 알고리즘으로 암호화되는 테이블명, 칼럼명, 칼럼 데이터는 서로 관련지어져, 1개의 엔트리를 구성하고 있다. 또는, 테이블명, 칼럼명의 암호화에 사용되는 암호 알고리즘은, 칼럼 데이터의 암호화에 사용되는 암호 알고리즘과는 다른 암호 알고리즘을 사용해도 된다. 또는, 테이블명, 칼럼명의 암호화에 사용되는 암호 알고리즘을, 복수의 테이블명, 칼럼명에 대하여 공통으로 정해진 특정한 암호 알고리즘으로 해도 된다.
안전성 설정 정보 기억부(14)는, 예를 들어 데이터베이스(11)에 등록되어 있는 모든 테이블에 관한 안전성 설정 정보를 유지한다. 또한, 안전성 설정 정보 기억부(14)의 각 란의 설정 내용은, 유저 시스템(20)의 안전성 설정 수단(26)에 있어서, 유저(유저 시스템(20)의 관리자 등)에 의해 설정된 정보에 기초한다.
<데이터베이스 내의 테이블의 예>
도 7은, 데이터베이스(11) 내의 테이블 정보를 설명하기 위한 도면이다. 상술한 도 6에 나타낸 안전성 설정 정보 기억부(14)에서의 칼럼 "근무지"와 같이, 데이터가 복수의 암호 알고리즘으로 암호화되는 경우가 있다. 따라서, 복수의 암호 알고리즘으로 암호화되는 암호문의 본체는, 별도의 테이블에서 관리한다.
도 7의 (B)의 암호문 테이블 정보표에, 테이블명, 칼럼명, 암호 알고리즘에 대하여, 암호문 본체를 저장한 테이블인 암호문 테이블의 이름(암호문 테이블명)과, 암호 알고리즘과, 파라미터(암호 알고리즘에 부여하는 파라미터)를 대응시켜서 유지한다.
암호 알고리즘의 파라미터로서, 도 7의 (B)의 암호 알고리즘 SE1(Searchable Encryption: 공개 키)에서는, 키 생성 알고리즘(공개 키, 비밀 키를 출력)에서 사용되는 시큐리티 파라미터가 있다. 암호 알고리즘 AES의 파라미터로는, 예를 들어 키 길이, 평문 블록 길이, 라운드 수 등이 있다(도 7의 (B)에서는 AES의 파라미터는 설정되어 있지 않다. 이 경우, 디폴트 값이 사용된다).
도 7의 (B)의 암호문 테이블 정보표의 1행째의 테이블명 "사원표"에 있어서,
칼럼명은 "근무지",
암호 알고리즘은 "AES",
파라미터는 "Null"(무),
암호문 테이블명은 "암호문_AES_1"이다.
도 7의 (B)의 암호문 테이블 정보표의 2행째의 테이블명이 "사원표"에 있어서,
칼럼명은 "근무지",
암호 알고리즘은 "SE1",
파라미터는 "0x16a…"(0x는 헥사데시멀 표시를 나타냄),
암호문 테이블명은 "암호문_SE1_1"이다. 암호문 테이블명이 "암호문_AES_1", "암호문_SE1_1"의 표는, 도 7의 (D), (E)에 각각 나타난다.
암호화 전의 평문 데이터가 저장된 표(도 7의 (A)의 사원표)의 칼럼에, 일련 번호(통번)를 평문으로 저장한다. 도 7의 (A)의 테이블 "사원표"의 칼럼 "근무지"의 데이터 "본사", "타마가와" 등에 대하여 1, 2, …와 같이 일련 번호를 붙인다.
또한 도 7의 (C)에 도시한 바와 같이, 암호화 후의 사원표에서는, 칼럼명 "직무"는, 암호화되어 "0xa638…"이 되고, 칼럼명 "근무지" 및 칼럼명 "0xa638…"에서의 일련 번호 1, 2, …은, 암호화된 내용을 지시하는 ID에 대응한다.
도 7의 (D)의 암호 알고리즘 AES로 암호화한 암호문_AES_1 표에서는, ID=1, 2의 암호문 "0x3d8…", "0x962…"는, 칼럼명 "근무지"를 AES로 암호화한 "0xa638…"에 관한, 일련 번호 ID=1, 2의 데이터의 암호문(도 7의 (A)의 "본사", "타마가와"의 암호화 데이터)이다.
도 7의 (E)의 암호 알고리즘 AES로 암호화한 암호문_AES_2 표에서는, ID=1, 2의 암호문 "0x61b…", "0xa53…"은, 칼럼명 "직무"를 암호화한 "0xa638…"에 대한 일련 번호 ID=1, 2의 데이터의 암호문(도 7의 (A)의 "과장", "주임"의 암호화 데이터)이다.
도 7의 (F)의 암호 알고리즘 SE1로 암호화한 암호문_SE1_1 표에서는, ID=1, 2의 암호문 "0x8ec…", "0xA7c0…"은, 칼럼명 "직무"를 암호화한 "0xa638…"에 대한 일련 번호 ID=1, 2의 데이터의 암호문(도 7의 (A)의 "과장", "주임"의 암호화 데이터)이다.
상기와 같이, 도 7의 (A)의 사원표의 칼럼명 "근무지"의 데이터 "본사", "타마가와", …는, 암호화 후, 도 7의 (C)에 도시한 바와 같이, "근무지"의 란에 각각, 일련 번호 ID=1, 2, …가 부여된다. 암호화한 데이터를 저장하는 암호문 테이블은, 도 7의 (D) 내지 (F) 등에 도시한 바와 같은 형식, 즉, 일련 번호 ID=1, 2, …에 대하여 각각 대응하는 암호문을 저장한 형식으로 데이터베이스(11)에 저장된다.
이와 같이, 본 실시 형태에서는, 암호문 테이블 정보표(도 7의 (B))에서,
·암호문 본체를 저장한 테이블을 특정하기 위한 정보와,
·암호 알고리즘의 파라미터를 관리하고 있다. 암호문 테이블 정보표(도 7의 (B))는, 안전성 설정 정보 기억부(14) 내에 저장하도록 해도 된다. 또는, 암호문 테이블 정보표(도 7의 (B))는 안전성 설정 정보 기억부(14)와는 별도의 기억부에서 관리하도록 해도 된다.
<어플리케이션 응답 수단의 구성예>
도 8은, 도 1의 어플리케이션 응답 수단(22), 안전성 설정 수단(26), 키 이용 수단(23)의 구성의 일례를 나타내는 도면이다. 도 8을 참조하면, 어플리케이션 응답 수단(22)은, 처리·통신 제어부(221)와, 암호 프로토콜 처리 실행부(222)와, 데이터베이스 조작 변환 처리부(223)와, 암호 연산부(224)와, 안전성 설정 정보 조작부(225)를 구비하고 있다.
안전성 설정 수단(26)은, 설정 표시부(261)와 설정 입력부(262)를 구비하고 있다. 설정 표시부(261)와 설정 입력부(262)는, 도 1의 입력/출력 장치(27)에 대한 출력 및 입력을 행한다. 구체적으로는, 입력/출력 장치(27)를 구성하는 표시 장치에 대한 조작 화면(메뉴)의 표시, 메뉴 선택, 입력 정보의 입력을 행한다.
키 이용 수단(23)은, 암호 연산부(231)와 키 정보 관리부(232)를 구비하고 있다.
처리·통신 제어부(221)는, 데이터베이스 이용 어플리케이션(21), 안전성 설정 수단(26), 키 이용 수단(23), 데이터베이스 시스템(10)의 데이터베이스 제어 수단(12)과의 통신이나, 어플리케이션 응답 수단(22) 내부의 각 부의 제어 등을 행한다.
암호 연산부(224)는, 예를 들어 공개 키 암호에 의한 암호화 연산 등, 키 정보 중 비밀이 아닌 정보를 사용한 암호 연산을 행한다.
데이터베이스 조작 변환 처리부(223)는, 데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령에 대하여, 조작 대상의 데이터의 기밀도 등에 따라, 암호 프로토콜 처리, 또는, 통상의 데이터베이스 조작으로 할지를 판정하고, 암호화할 경우, 암호 프로토콜에 대한 변환 처리를 행한다(도 2의 (A)의 스텝 4, 9의 처리에 대응).
데이터베이스 조작 변환 처리부(223)는, 데이터베이스 제어 수단(12)으로부터 암호 프로토콜 처리, 또는 통상의 데이터베이스 조작으로 얻어진 처리 결과를, 입력된 통상의 데이터베이스 조작 명령에 대응한 처리 결과로 변환한다(도 2의 (A)의 스텝 7, 8, 13의 처리에 대응).
암호 프로토콜 처리 실행부(222)는, 데이터베이스(11)에 액세스하는 데이터베이스 제어 수단(12)에서의 암호문인 상태로의 검색, 또는, 가산, 또는, 승산 등의 암호 프로토콜 처리를, 처리 내용에 따라 데이터베이스 제어 수단(12)과 통신하여 실행한다(도 2의 (A)의 스텝 11의 처리에 대응).
안전성 설정 정보 조작부(225)는, 데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14)에 저장되어 있는 정보(메타데이터의 암호화의 유무 등의 정보를 포함함)를, 처리·통신 제어부(221)를 통해 취득하여, 조작 대상 데이터를 특정하기 위한 보조 정보를 작성한다. 안전성 설정 정보 조작부(225)는, 안전성 설정 정보 일시 기억부(25)에 대하여 정보의 판독, 기록을 행한다.
데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14)에 유지되는 정보를, 유저 시스템(20)의 안전성 설정 정보 일시 기억부(25)에 유지함으로써(캐시함으로써), 어플리케이션 응답 수단(22)으로부터 데이터베이스 시스템(10)에 대한 조회(트래픽)를 저감시켜, 유저 시스템(20)의 어플리케이션 응답 수단(22)에서의 처리를 고속화한다.
안전성 설정 수단(26)에 있어서, 설정 표시부(261)는, 어플리케이션 응답 수단(22)을 통해 데이터베이스(11)에 저장된 데이터에 대하여 설정되어 있는 기밀도 정보 등의 안전성 설정 정보를, 출력 장치(도 1의 27)에 표시 출력한다. 설정 입력부(262)는, 유저로부터, 입력 장치(27)를 통해 데이터의 기밀도 정보에 관한 입력 정보를 수취하여, 어플리케이션 응답 수단(22)을 통해, 입력 설정 정보를 안전성 설정 정보 일시 기억부(25)에 반영시키고, 데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14)에도 반영시킨다. 그때, 입력 설정 정보를, 안전성 설정 정보 일시 기억부(25)와 안전성 설정 정보 기억부(14)에 동시에 기입하도록 해도 되고, 안전성 설정 정보 일시 기억부(25)에만 기입하고, 그 후, 안전성 설정 정보 기억부(14)에 기입하도록 해도 된다.
키 이용 수단(23)에 있어서, 암호 연산부(231)는, 키 정보 관리부(232)를 통해 판독한 키 정보(비밀 키)를 사용하여 암호문의 복호 처리 등의 암호 연산을 행한다.
키 정보 관리부(232)는, 데이터베이스 조작 대상의 데이터와 그 안전성 설정 정보에 대응하는 키 정보를, 해당 키 정보의 소유자인 유저(예를 들어, 데이터베이스 이용 어플리케이션(21)의 유저, 또는, 유저 시스템측의 시스템 관리자)의 인증을 거친 뒤에 키 정보 기억부(24)로부터 판독한다. 키 정보 관리부(232)는, 키 정보를 키 정보 기억부(24)에 기입한다.
<안전성 설정 정보 일시 기억부의 일례>
도 9는, 도 1의 유저 시스템(20)측의 안전성 설정 정보 일시 기억부(25)의 내용의 일례를 모식적으로 도시하는 도이다. 안전성 설정 정보 일시 기억부(25)는, 도 6에 나타낸 데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14)의 내용에, 데이터베이스 조작 대상을 특정하기 위한 보조 정보로서, "복호 후 테이블명"과 "복호 후 칼럼명"이 추가되어 있다. 그 밖의 정보는, 도 6의 안전성 설정 정보 기억부(14)의 내용과 동일하다.
도 9의 테이블명 "사원표"에 있어서, 예를 들어 암호화된 칼럼명 "0xa638…"은, "복호 후 칼럼명 "으로부터, 복호한 평문의 칼럼명이 "직무"인 것을 나타내고 있다. 이것은, 도 7의 (A)의 테이블 "사원표" 내의 칼럼 "직무"와, 도 7의 (C)의 암호화한 칼럼명 "0xa638…"의 대응 관계를 나타내고 있다.
도 9에서, 예를 들어 데이터베이스(11) 내의 테이블명 "××표"를 참조하는 데이터베이스 조회를 실행하는 경우, 데이터베이스(11)에 있어서, 암호화된 테이블명 "0x30c8a4…"를 참조할 필요가 있다.
안전성 설정 정보 조작부(225)는, 데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령에 테이블명 "××표"가 포함되는 경우(예를 들어 SQL 명령: select 열명, from "××표"), 안전성 설정 정보 일시 기억부(25)로부터 "××표"에 대응하는 암호화된 테이블명 "0x30c8a4…"를 취출하여, 암호 프로토콜 처리 실행부(222), 처리·통신 제어부(221)를 통해, 암호화된 테이블명 "0x30c8a4…"에 관한 데이터베이스 조작 명령(select 열명, from "0x30c8a4…")을 처리·통신 제어부(221)를 통해 데이터베이스 제어 수단(12)에 송신한다.
<키 정보 기억부의 일례>
도 10은, 키 정보 기억부(24)의 일례를 나타내는 도이다. 키 정보 기억부(24)는, 암호 알고리즘 식별자와 키 정보를 포함한다. 도 9에 나타내는 예에서는, 데이터를 암호 알고리즘 "AES"로 암호화나 복호할 때에 사용하는 키 정보는 "0x51a4…"이다. 또한, 공개 키 암호인 암호 알고리즘 HE1의 키 정보는 "0xb316…"이며, 키 정보에는, 암호화나 준동형 연산 처리에 사용하는 공개 키 정보와, 복호에 사용하는 비밀 키 정보가 포함되어 있다.
<안전성 설정 수단의 처리>
이하에서는, 도 1, 도 8을 참조하여 설명한 안전성 설정 수단(26)의 처리 수순을 상세하게 설명한다. 유저 시스템(20)에 있어서, 안전성 설정 수단(26)은 데이터베이스(11)의 데이터에 관한 안전성 정보를 설정한다.
도 11은, 안전성 설정 수단(26)의 처리 수순의 일례를 나타내는 흐름도이다. 데이터베이스 이용 어플리케이션(21)으로는, 예를 들어 기존의 어플리케이션이 사용된다. 본 실시 형태에서는, 기존의 어플리케이션에 대한 개조를 피하기 위해서, 데이터에 대하여 기밀도 등을 설정하는 처리는, 안전성 설정 수단(26)에 있어서 기밀도를 입력함으로써 실현한다. 도 11을 참조하여, 안전성 설정 수단(26)의 처리 플로우를 설명한다.
스텝 1. 안전성 설정 정보 취득:
어플리케이션 응답 수단(22)에 대하여 데이터베이스(11)의 현재의 안전성 설정 정보를 요구하여 안전성 설정 정보를 취득한다. 어플리케이션 응답 수단(22)은, 데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14) 또는 유저 시스템(20)의 안전성 설정 정보 일시 기억부(25)를 참조하여, 데이터베이스 조작 대상의 데이터 등에 해당하는 안전성 설정 정보를 취득하여, 안전성 설정 수단(26)에 돌려준다.
어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)로부터 안전성 설정 정보(도 9 참조)를 취득한 경우, 안전성 설정 정보 일시 기억부(25)의 데이터 형식(도 6 참조)을 작성하여 회신한다. 즉, 안전성 설정 정보 기억부(14)로부터 취득한 안전성 설정 정보(도 6 참조)에 있어서, 메타데이터(테이블명이나 칼럼명)의 암호화가 "유"로 되어 있는 부분에 대해서는, 암호화된 메타데이터를 키 이용 수단(23)을 사용해서 복호하여, 평문의 메타데이터를 작성하고, 안전성 설정 수단(26)에 돌려준다. 또는, 안전성 설정 정보 기억부(14)로부터 취득한 안전성 설정 정보(도 9 참조)에 있어서, 메타데이터(테이블명이나 칼럼명)의 암호화가 "유"로 되어 있는 부분에 대해서는, 복호 후 테이블명, 칼럼명 란의 정보(평문 메타데이터)를 안전성 설정 수단(26)에 돌려준다.
스텝 1의 안전성 설정 정보의 취득은, 데이터베이스(11)의 전체가 아니라, 테이블명에 관한 정보, 또는, 특정한 테이블에 관한 정보를, 선택적(부분적)으로 단계적으로 취득해서 표시하도록 해도 된다.
스텝 2. 안전성 설정 정보 표시:
안전성 설정 수단(26)의 설정 표시부(261)는, 어플리케이션 응답 수단(22)으로부터 회신된 안전성 설정 정보를 입력/출력 장치(27)에 표시한다.
스텝 3. 설정 대상 및 설정 내용 입력:
안전성 설정 수단(26)의 설정 입력부(262)는, 데이터베이스의 유저(이용자)가 입력/출력 장치(27)로부터 입력한, 설정의 대상(예를 들어 테이블명, 칼럼명)과 설정 내용(예를 들어 테이블명의 암호화 유무, 칼럼명의 암호화 유무, 칼럼 데이터의 기밀도)을 접수한다.
스텝 4. 설정 갱신 처리:
안전성 설정 수단(26)의 설정 입력부(262)는, 어플리케이션 응답 수단(22)에 대하여, 입력된 설정 대상, 설정 내용을 송신하고, 설정 변경(갱신)을 의뢰한다. 안전성 설정의 변경은, 데이터베이스 제어 수단(12)의 안전성 설정 정보 조작부(124), 어플리케이션 응답 수단(22)의 안전성 설정 정보 조작부(225)에 의해, 안전성 설정 정보 기억부(14), 안전성 설정 정보 일시 기억부(25)에 각각 기록된다.
또한, 도 11에 도시한 안전성 설정 수단(26)의 처리 수순의 실행 타이밍에 관해서, 데이터베이스(11)에 대한 테이블의 신규 작성의 경우, 데이터베이스 이용 어플리케이션(21)이 테이블 작성 명령을 발행하기 전에, 사전에, 유저가 설정하도록 해도 된다. 또는, 데이터베이스 이용 어플리케이션(21)에서 테이블 작성 명령을 발행했을 때, 안전성 설정 정보 기억부(14), 안전성 설정 정보 일시 기억부(25)에 해당하는 테이블명 등이 등록되어 있지 않을 경우, 테이블명, 칼럼명과, 테이블명의 암호화 유무, 칼럼명의 암호화 유무, 칼럼 데이터의 기밀도 등의 정보의 입력 독촉을, 안전성 설정 수단(26)이 화면 표시하거나 하여, 유저에 입력을 재촉하도록 해도 된다. 유저가, 데이터베이스(11) 내에 작성된 테이블 등에 대하여 안전성 설정을 변경하는 경우에는, 안전성 설정 수단(26)을 통해 설정을 변경한다. 그때, 안전성 설정 수단(26)에 있어서, 입력/출력 장치(27)에 대한 GUI(Graphical User Interface)는 임의이지만, 예를 들어 조작 메뉴로서, 테이블 일람 표시 커맨드 등을 선택 실행하여, 테이블명의 전체 또는 부분의 일람을 화면 표시하여(테이블명이 암호화되어 있는 경우, 안전성 설정 정보 일시 기억부(25)의 복호 후 테이블명을 참조하거나 해서 평문 테이블명으로 표시함), 유저가 해당 테이블을 선택해서 설정 조작을 선택함으로써, 설정 정보를 갱신하도록 해도 된다.
<설정 갱신 처리(암호화 유로의 변경)>
도 12는, 도 11의 스텝 4의 설정 갱신 처리의 상세한 처리를 설명하는 흐름도이다. 여기에서는, 메타데이터(테이블명, 칼럼명)의 암호화를 "유"로 설정하는 처리에 대하여 설명한다. 여기에서는, 안전성 설정 정보 기억부(14), 안전성 설정 정보 일시 기억부(25)에 있어서, 해당 메타데이터(테이블명, 칼럼명)의 암호화가 "무"로 설정되어 있는 것으로 한다.
스텝 0:
안전성 설정 수단(26)은, 설정 대상의 메타데이터(테이블명, 칼럼명)와 설정 내용(암호화 "유")을 입력/출력 장치(27)로부터 수취한다.
스텝 1. 대상 메타데이터의 암호문을 작성:
안전성 설정 수단(26)으로부터의 설정 갱신 의뢰를 받은 어플리케이션 응답 수단(22)은, 키 이용 수단(23)을 사용하여, 설정 대상의 메타데이터(테이블명, 및/또는 칼럼명)의 암호문을 작성한다. 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25), 또는 안전성 설정 정보 기억부(14)를 참조하여, 해당 메타데이터에 대응하는 암호 알고리즘 정보를 취득하고, 암호 연산부(231)에서 메타데이터(테이블명, 및/또는 칼럼명)를 암호화하여, 암호문 메타데이터를 작성한다.
스텝 2. 데이터베이스의 평문 메타데이터를 암호문 메타데이터로 변경:
안전성 설정 수단(26)으로부터의 설정 변경의 지시를 받은 어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여, 데이터베이스(11) 내의 설정 대상의 메타데이터를, 상기 스텝 1에서 작성한 암호문 메타데이터로 치환하도록 의뢰한다. 데이터베이스 제어 수단(12)은, 데이터베이스(11) 내의 평문 메타데이터를 암호문 메타데이터로 치환한다. 실장 고유(Implementation Specific)로 본 발명을 특별히 제한하는 것은 아니지만, 테이블명을 암호문으로 변경하는 경우, 예를 들어 어플리케이션 응답 수단(22)에 있어서, 예를 들어 SQL 명령
ALTER TABLE 변경 전 테이블 RENAME TO 변경 후 테이블명
에 있어서, 변경 후 테이블명을 암호문 테이블명으로 한 SQL문을 자동 생성하여, 데이터 제어 수단(12)의 데이터베이스 조작부(121)(도 4)에 발행하도록 해도 된다. 또한, 칼럼명을 암호문으로 변경하는 경우, 예를 들어 SQL 명령
ALTER TABLE 테이블명 RENAME COLUMN 변경 전 칼럼명 TO 변경 후 칼럼명
에 있어서, 변경 후 칼럼명을 암호문 칼럼명으로 한 SQL문을, 어플리케이션 응답 수단(22)에서 자동 생성하여, 데이터베이스 조작부(121)(도 4)에 발행하도록 해도 된다.
스텝 3. 안전성 설정 정보를 변경:
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여, 안전성 설정 정보 기억부(14)(도 6 참조)에 있어서, 마찬가지로, 설정 대상의 평문의 테이블명 또는 칼럼명을 암호문 테이블명 또는 암호문 칼럼명으로 치환하는 동시에, 테이블명 암호화 유무 또는 칼럼명 암호화 유무)의 란의 "유"로의 변경을 행하도록 의뢰하여, 데이터베이스 제어 수단(12)의 안전성 설정 정보 조작부(124)가, 안전성 설정 정보 기억부(14)의 안전성 설정 정보를 변경한다. 또한, 암호문 테이블 정보표(도 7의 (B))의 테이블명의 해당 테이블명, 칼럼명을 암호문 테이블명, 암호문 칼럼명으로 치환한다.
스텝 4. 안전성 설정 정보 일시 기억부를 변경:
어플리케이션 응답 수단(22)의 안전성 설정 정보 조작부(225)는, 안전성 설정 정보 일시 기억부(25)(도 9 참조)에 있어서, 설정 대상 하의 평문의 테이블명 또는 칼럼명을, 복호 후 테이블명 또는 복호 후 칼럼명의 란에 기입하고, 테이블명 또는 칼럼명을 암호문 테이블명 또는 암호문 칼럼명으로 치환하여, 테이블명 암호화 유무 또는 칼럼명 암호화 유무)의 란을 "유"로 변경한다.
스텝 5. 변경 완료를 회신:
어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)에 대하여, 설정 변경(설정 갱신 처리)의 완료를 회신한다. 안전성 설정 수단(26)은, 입력/출력 장치(27)에 완료를 표시한다. 그때, 안전성 설정 정보 일시 기억부(25)의 변경 후의 내용을 화면 표시하여 변경 완료를 유저에게 제시하도록 해도 된다.
또한, 안전성 설정 수단(26)에 있어서, 테이블명, 칼럼명을 동시에 암호화 "유"로 변경해도 되고, 또는, 테이블명, 칼럼명을 개별적으로 변경해도 된다. 또는, 복수의 테이블, 또는 복수의 칼럼을 통합하여 암호화 "유"로 변경해도 된다. 이 경우, 상기 스텝 1 내지 4의 처리가, 각 테이블/칼럼에 대하여 실행된다.
<설정 갱신 처리(암호화 무로의 변경)>
이어서, 도 11의 스텝 4의 설정 갱신 처리의 상세한 처리 수순으로서, 암호화 "무"로의 변경 처리를 설명한다. 도 13은, 도 11의 설정 갱신 처리(4)의 처리의 다른 예를 설명하는 흐름도이다. 도 13에는, 메타데이터(테이블명, 칼럼명)의 암호화를 "유"에서 "무"로 변경하는 처리의 수순이 나타나 있다. 여기에서는, 메타데이터(테이블명, 칼럼명)의 암호화가 이미 "유"로 설정되어 있는 것으로 한다.
스텝 0: 안전성 설정 수단(26)은 설정 대상의 메타데이터(테이블명, 칼럼명)와 설정 내용(암호화 "무")을 입력/출력 장치(27)로부터 수취한다.
스텝 1. 대상의 메타데이터의 (평문, 암호문)의 쌍을 취득:
안전성 설정 수단(26)으로부터의 설정 변경의 지시를 받은 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)(도 9 참조)를 참조하여, 설정 대상의 메타데이터(테이블명 또는 칼럼명)에 대해서, 데이터베이스(11) 중에서의 암호문 메타데이터를 취득하여, 복호 후 테이블명 또는 복호 후 칼럼명의 란으로부터, 대응하는 평문의 테이블명 또는 평문의 칼럼명을 취득한다.
스텝 2. 데이터베이스(11)의 암호문 메타데이터를 평문 메타데이터로 변경:
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여, 암호문 메타데이터(테이블명 또는 칼럼명)를, 대응하는 평문 메타데이터로 치환하도록 의뢰하여, 데이터베이스(11) 내의 테이블명/칼럼명을 평문의 테이블명/칼럼명으로 치환한다. 테이블명을 변경하는 경우, 데이터베이스 제어 수단(12)에 있어서, 예를 들어 SQL 명령
ALTER TABLE 변경 전 테이블명 RENAME TO 변경 후 테이블명
에 있어서, 변경 전 테이블명을 암호문으로 하고, 변경 후 테이블명을 평문 테이블명으로 해서, 데이터베이스 조작부(121)(도 4)에 발행하도록 해도 된다. 또한, 칼럼명을 암호문으로 변경하는 경우, 예를 들어 SQL 명령
ALTER TABLE 테이블명 RENAME COLUMN 변경 전 칼럼명 TO 변경 후 칼럼명
에 있어서, 변경 전 칼럼명을 암호문, 변경 후 칼럼명을 평문으로 해서, 데이터베이스 조작부(121)(도 4)에 발행하도록 해도 된다. 또한, 암호문 테이블 정보표(도 7의 (B))의 테이블명의 해당 테이블명, 칼럼명을 평문 테이블명, 평문 칼럼명으로 치환한다.
스텝 3. 안전성 설정 정보를 변경:
데이터베이스 제어 수단(12)에 대하여, 안전성 설정 정보 기억부(14)(도 6 참조)에 대해서도, 암호문 테이블명 또는 암호문 칼럼명의 란을, 평문 테이블명 또는 평문 칼럼명으로 치환한다. 또한, 테이블명 암호화 유무 또는 칼럼명의 암호화 유무의 란을 "무"로 변경을 행하도록 의뢰하고, 데이터베이스 제어 수단(12)의 안전성 설정 정보 조작부(124)는 안전성 설정 정보를 변경한다.
스텝 4. 안전성 설정 정보 일시 기억부를 변경:
어플리케이션 응답 수단(22)의 안전성 설정 정보 조작부(225)는, 안전성 설정 정보 일시 기억부(25)(도 9 참조)에 있어서, 암호문 테이블명 또는 암호문 칼럼명을, 대응하는 평문 테이블명 또는 평문 칼럼명으로 치환하고, 복호 후의 테이블명 또는 복호 후 칼럼명의 란을 "NULL"로 변경하고, 테이블명 암호화 유무 또는 칼럼명 암호화 유무의 란을 "무"로 변경한다.
스텝 5. 변경 완료를 회신:
어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)에 변경 완료를 회신한다.
또한, 안전성 설정 수단(26)에 있어서, 테이블명, 칼럼명을 동시에 암호화 "무"로 변경해도 되고, 또는 테이블명, 칼럼명을 개별적으로 변경해도 된다. 또는, 복수의 테이블, 또는 복수의 칼럼을 통합하여 암호화 "무"로 변경해도 된다. 이 경우, 상기 스텝 1 내지 4의 처리가, 각 테이블/칼럼에 대하여 실행된다.
<기밀도 설정 처리>
본 실시 형태에서는, 기존의 데이터베이스 이용 어플리케이션(21)에 대한 개조를 피하기(필요로 하지 않기) 때문에, 데이터의 기밀도를 설정하는 조작은, 안전성 설정 수단(26)을 통해 행한다. 안전성 설정 수단(26)은, 어플리케이션 응답 수단(22)에 대하여, 현재의 안전성 설정 정보 기억부(14)의 내용과, 데이터베이스(11)의 내용을 조회한다. 안전성 설정 수단(26)은, 한번에 모든 정보를 조회하는 것이 아니라, 전체 테이블명의 일람, 계속해서, 어떤 한 테이블의 칼럼명과 안전성 설정의 일람과 같이, 부분적·단계적으로 조회를 행하도록 해도 된다.
어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)의 내용을 판독하여, 메타데이터가 암호화되어 있는 경우에는, 키 이용 수단(23)에 의해, 암호화된 메타데이터를 복호한 뒤에 안전성 설정 수단(26)에 보낸다.
본 실시 형태에 따르면, 안전성 설정 정보 일시 기억부(25)에 유지되어 있는 정보를 이용함으로써 처리의 효율화를 가능하게 하고 있다.
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)을 통해 데이터베이스(11)의 내용을 판독하여, 메타데이터(테이블명, 칼럼명)나 칼럼 데이터가 암호화되어 있는 경우에는, 키 이용 수단(23)에 의해 복호한 뒤에, 안전성 설정 수단(26)에 보내고, 안전성 설정 수단(26)은, 안전성 설정 정보나 데이터베이스 정보를 표시한다.
데이터베이스 이용자는, 메타데이터에 대한 암호화 유무의 지정이나, 칼럼 데이터의 기밀도(예를 들어, "저", "중", "고"의 3단계)의 지정을 입력/출력 장치(27)로부터 안전성 설정 수단(26)에 입력한다.
안전성 설정 수단(26)은, 입력된 기밀도 정보를, 어플리케이션 응답 수단(22)에 송신한다. 어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)으로부터 송신된 기밀도 정보를, 안전성 설정 정보 일시 기억부(25)에 반영시키고, 또한 데이터베이스 제어 수단(12)을 통해 안전성 설정 정보 기억부(14)에, 데이터베이스(11)의 내용을 변경한다.
<기밀도의 설정 1>
도 14는, 데이터베이스(11)의 저장된 평문의 칼럼 데이터에 기밀도를 설정하는 (평문의 칼럼 데이터를 암호화하는) 처리 수순을 설명하는 흐름도이다.
스텝 0. 설정 대상과 설정 내용(기밀도) 수신:
어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)으로부터 설정 대상의 테이블명, 칼럼명과, 설정 내용(기밀도)을 수신한다.
스텝 1. 암호 알고리즘을 선택:
어플리케이션 응답 수단(22)은, 암호 프로토콜 정보 기억부(13)(도 5 참조)를 참조하여, 입력된 기밀도(고, 중, 저)에 대응하는 암호 알고리즘 식별자의 일람을 취득하고, 그 중에서 1개를 선택한다. 동일한 기밀도에 대응하여 암호 알고리즘 식별자의 일람 중에서 1개를 선택하는 경우, 처리 효율이 좋은 것으로 알려져 있는 것을 선택한다. 어플리케이션 응답 수단(22)에서, 암호 알고리즘 식별자를 자동으로 선택해도 되고, 안전성 설정 수단(26)을 통해 암호 알고리즘 식별자의 일람을 화면 표시하여, 기밀도의 변경 작업을 행하는 유저가 선택하도록 해도 된다.
스텝 2. 안전성 설정 정보를 변경:
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)의 안전성 설정 정보 조작부(124)에, 안전성 설정 정보 기억부(14)(도 6 참조)에 설정 대상의 테이블명, 칼럼명의 칼럼 데이터 기밀도의 란을, 입력된 기밀도로 변경을 의뢰함과 함께, 칼럼 데이터 암호 알고리즘 식별자의 란을, 스텝 1에서 선택한 것으로 변경하도록 의뢰하여, 안전성 설정 정보 기억부(14)의 안전성 설정 정보를 갱신한다. 설정 대상의 테이블명, 칼럼명이 암호화되어 있는 경우, 어플리케이션 응답 수단(22)은 안전성 설정 정보 일시 기억부(25)의 복호 후 테이블명 또는 복호 후 칼럼명으로부터, 안전성 설정 수단(26)으로부터 입력된 평문 테이블명 또는 평문 칼럼명에 일치하는 이름을 검출하고, 대응하는 암호문 테이블명 또는 암호문 칼럼명을 취득하여, 안전성 설정 정보 기억부(14)(도 6 참조)에 있어서, 설정 대상의 암호문 테이블명, 암호문 칼럼명을 특정한다.
스텝 3. 안전성 설정 정보 일시 기억부를 변경;
어플리케이션 응답 수단(22)의 안전성 설정 정보 조작부(225)는, 안전성 설정 정보 일시 기억부(25)에 대하여 설정 대상의 테이블명, 칼럼명의 칼럼 데이터 기밀도의 란을 Null에서, 입력된 기밀도로 변경하는 동시에, 칼럼 데이터 암호 알고리즘 식별자의 란을, 스텝 1에서 선택한 것으로 변경한다.
스텝 4. 설정 대상의 칼럼 데이터를 취득:
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여, 설정 대상의 테이블명, 칼럼명의 칼럼 데이터의 취득을 의뢰하여, 칼럼 데이터를 취득한다. 상술한 바와 같이, 칼럼 데이터는, 데이터베이스(11) 중에, 암호문 테이블(도 7의 (B)의 암호문 테이블명에서 참조됨)로서 저장되어 있다. 데이터베이스에 해당하는 칼럼의 칼럼 데이터가 없으면, 스텝 9로 제어를 이동한다.
스텝 5. 칼럼 데이터의 암호화, 일련 번호, 평문, 암호문의 작성:
어플리케이션 응답 수단(22)은, 취득한 칼럼 데이터(평문 칼럼 데이터)와, 스텝 1에서 선택한 암호 알고리즘 식별자를 키 이용 수단(23)에 보내어, 칼럼 데이터의 암호화를 의뢰한다. 어플리케이션 응답 수단(22)은, 얻어진 암호문의 칼럼 데이터에 일련 번호를 붙여,
[일련 번호, 평문 칼럼 데이터, 암호문 칼럼 데이터]
의 조의 일람을 작성한다.
스텝 6. 암호문 테이블의 작성:
어플리케이션 응답 수단(22)은 스텝 5에서 작성한
[일련 번호, 암호문 칼럼 데이터]
의 조의 일람을 저장하는 테이블의 작성을 데이터베이스 제어 수단(12)에 의뢰하고, 데이터베이스(11)에 암호문 테이블(암호문 테이블명은, 도 7의 (B)에 도시한 바와 같이, 암호문_암호 알고리즘 식별자)을 작성한다.
스텝 7. 암호문 테이블 정보표의 갱신:
어플리케이션 응답 수단(22)은, 암호문 테이블 정보표(도 7의 (B) 참조)에,
[설정 대상의 테이블명, 설정 대상의 칼럼명, 스텝 1에서 선택된 암호 알고리즘 식별자, 작성한 암호문 테이블의 이름]
의 조를 추가하도록, 데이터베이스 제어 수단(12)에 의뢰한다. 데이터베이스 제어 수단(12)은, 암호문 테이블 정보표(도 7의 (B) 참조)에,
[테이블명, 칼럼명, 암호 알고리즘 식별자, 암호문 테이블명]
의 조를 추가한다.
스텝 8. 평문 칼럼 데이터의 치환:
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여, 데이터베이스 조작 대상 칼럼의 평문 칼럼 데이터(예를 들어 도 7의 (A)의 칼럼명의 "근무지"의 데이터)를, 스텝 5에서 작성한
[일련 번호, 평문 칼럼 데이터, 암호문 칼럼 데이터]
의 조로 대응지어진, 일련 번호로 치환하도록 의뢰한다(도 7의 (C) 참조). 데이터베이스 제어 수단(12)은, 암호문 테이블에 있어서, ID=1, 2, …의 각각에 대하여, 스텝 5에서 암호화된 암호문 칼럼 데이터를 대응시켜서 저장한다(도 7의 (D) 내지 (F))의 저장 형식 참조).
스텝 9. 변경 완료를 회신:
어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)에 변경 완료를 회신한다.
또한, 도 14의 수순은, 데이터베이스(11)에 이미 저장되어 있는 평문의 칼럼 데이터를 기밀도에 대응한 암호 알고리즘으로 암호화해서 데이터베이스(11)에 저장하는 경우 외에, 어플리케이션 응답 수단(22)에 입력된 데이터베이스 조작 명령으로 평문 칼럼 데이터를 데이터베이스(11)에 저장하는 경우(예를 들어, 신규로 등록하는 칼럼 데이터에 대하여, 안전성 설정 수단(26)에 의해 기밀도가 설정되었지만, 암호 알고리즘의 선택 등은 행해지지 않은 경우 등)에도 적용 가능하다.
<기밀도의 설정 2>
상술한 도 14의 기밀도 설정 수순은, 데이터베이스 제어 수단(12)이 도 3 또는 도 4의 구성인 경우에서의, 데이터베이스(11)에 저장된 평문의 칼럼 데이터에 기밀도를 설정하는 처리 수순이다. 도 28은, 데이터베이스 제어 수단(12)이 도 26 또는 도 27인 구성의 경우에서의, 데이터베이스(11)에 저장된 평문의 칼럼 데이터에 기밀도를 설정하는 처리 수순을 설명하는 흐름도이다. 도 28에서, 스텝 1 내지 9는 도 14의 스텝 1 내지 9와 동일하다. 도 28에서, 스텝 1에서 선택한 암호 알고리즘이, HE1 등의 공개 키 암호인 경우, 스텝 3 후에, 스텝 10으로 분기한다.
스텝 10: 어플리케이션 응답 수단(22)은, 스텝 1에서 선택된 암호 알고리즘이 HE1 등의 공개 키 암호인 경우, 키 이용 수단(23)을 통해 공개 키 정보를 취득하고, 취득한 공개 키 정보를, 대응하는 암호 알고리즘 식별자와 함께, 데이터베이스 제어 수단(12)에 송신하여, 평문의 칼럼 데이터의 암호화를 의뢰한다.
스텝 11: 데이터베이스 제어 수단(12)은, 설정 대상의 평문 칼럼 데이터를 데이터베이스(11)로부터 취득한다. 만약 해당하는 칼럼 데이터가 없으면, 스텝 16으로 분기한다.
스텝 12: 데이터베이스 제어 수단(12)은, 어플리케이션 응답 수단(22)으로부터 수신한 암호 알고리즘 식별자, 공개 키 정보를 사용하여, 암호 연산부(126)에서 칼럼 데이터를 암호화한다. 얻어진 암호문의 칼럼 데이터에 일련 번호를 붙여서,
[일련 번호, 평문 칼럼 데이터, 암호문 칼럼 데이터]
의 조의 일람을 작성한다.
스텝 13: 데이터베이스 제어 수단(12)은,
[일련 번호, 암호문 칼럼 데이터]
의 조의 일람을 저장하는 암호문 테이블(도 7의 (D) 내지 (F) 참조)을 작성한다.
스텝 14: 데이터베이스 제어 수단(12)은, 암호문 테이블 정보표(도 7의 (B) 참조)에,
[설정 대상의 테이블명, 설정 대상의 칼럼명, 스텝 1에서 선택된 암호 알고리즘 식별자, 스텝 12에서 작성한 암호문 테이블의 이름]
의 조를 추가한다.
스텝 15: 데이터베이스 제어 수단(12)은, 조작 대상의 칼럼의 평문 칼럼 데이터를, 스텝 12에서 작성한,
[일련 번호, 평문 칼럼 데이터, 암호문 칼럼 데이터]
의 조로서 대응지어진 일련 번호로 치환하여, 데이터베이스(11)에 저장한다.
스텝 16: 데이터베이스 제어 수단(12)은, 평문의 칼럼 데이터의 암호화가 완료된 것을, 어플리케이션 응답 수단(22)에 회신한다. 어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)에 변경 완료를 회신한다(스텝 9).
<기밀도의 변경>
칼럼 데이터의 기밀도의 지정을 안전성 설정 정보 기억부(14), 안전성 설정 정보 일시 기억부(25), 데이터베이스(11)에 반영하는 처리에 있어서, 기밀도가 이미 설정되어 있는 경우에 대하여 이하에 설명한다.
어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)를 참조하여, 지정된 칼럼에 설정되어 있는 칼럼 데이터 기밀도 정보를 취득하여, 새롭게 지정된 기밀도와 비교해서, 기밀도가 동일한 경우에는 특별히 처리는 행하지 않는다. 새롭게 지정된 기밀도가, 안전성 설정 정보 기억부(14)에 설정되어 있는 칼럼 데이터 기밀도보다 낮은 경우, 안전성 설정 정보의 칼럼 데이터 기밀도의 란을 새롭게 지정된 기밀도로 변경한다.
안전성 설정 수단(26)에서 지정된 기밀도가, 안전성 설정 정보 기억부(14)에 설정되어 있는 칼럼 데이터 기밀도보다 높은 경우, 도 15의 스텝 4 이하의 처리를 행한다.
도 15는, 어플리케이션 응답 수단(22)에 있어서, 안전성 설정 수단(26)으로부터 입력된 설정 대상, 설정 내용을 반영시키는 처리의 흐름을 설명하는 도면이다. 도 15를 참조하여, 설정되어 있는 기밀도를 변경하는(보다 높은 값으로 변경하는) 처리(어플리케이션 응답 수단(22)의 처리)에 대하여 설명한다.
스텝 0. 설정 대상과 설정 내용(기밀도) 수신:
어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)으로부터 설정 대상의 테이블명, 칼럼명과, 설정 내용(기밀도의 변경)을 수신한다.
스텝 1. 설정 완료된 암호 알고리즘 식별자 일람을 취득:
어플리케이션 응답 수단(22)은, 데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14)(도 6 참조)로부터, 입력된 설정 대상 테이블명, 칼럼명으로 지정되어 있는 칼럼 데이터의 암호화에 사용되고 있는 암호 알고리즘 식별자의 일람을 취득한다. 또한, 설정 대상의 테이블명, 칼럼명이 암호화되어 있는 경우, 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)의 복호 후 테이블명 또는 복호 후 칼럼명으로부터, 안전성 설정 수단(26)으로부터 입력된 평문 테이블명 또는 평문 칼럼명에 일치하는 이름을 검출하고, 대응하는 암호문 테이블명 또는 암호문 칼럼명을 취득하여, 안전성 설정 정보 기억부(14)(도 6 참조)에 있어서, 설정 대상의 암호문 테이블명, 암호문 칼럼명을 특정한다.
스텝 2. 지정된 기밀도에 대응하는 암호 알고리즘 식별자의 일람을 취득:
어플리케이션 응답 수단(22)은, 데이터베이스 시스템(10)의 암호 프로토콜 정보 기억부(13)(도 5)를 참조하여, 새롭게 입력된 기밀도에 대응하는 암호 알고리즘 식별자의 일람을 취득한다.
스텝 3. 암호 알고리즘 식별자의 비교:
어플리케이션 응답 수단(22)은, 스텝 1에서 얻어진 암호 알고리즘 식별자의 일람과, 스텝 2에서 얻어진 새로운 기밀도에 대응하는 암호 알고리즘 식별자의 일람을 비교 대조한다.
스텝 4. 새로운 암호문 테이블의 작성:
어플리케이션 응답 수단(22)은, 스텝 3에서 비교 대조한 결과, 스텝 1에서 얻어진 암호 알고리즘 식별자의 일람과, 스텝 2에서 얻어진 새로운 기밀도에 대응하는 암호 알고리즘 식별자의 일람에, 공통의 암호 알고리즘 식별자가 존재하지 않는 경우, 이하의 수순으로 새롭게 암호문 테이블을 작성한다. 공통의 암호 알고리즘 식별자가 존재하는 경우, 동일한 기밀도의 암호 알고리즘으로 암호화되어 있는 데이터가 존재하기 때문에, 이하의 기밀도의 변경 처리(새로운 기밀도 정보에 대응하는 암호 알고리즘으로 데이터를 재암호화하여 암호문 테이블을 작성해서 암호문 테이블 정보를 갱신)는 행하지 않는다.
스텝 5. 기존의 암호문 테이블로부터 모든 암호문을 취득:
어플리케이션 응답 수단(22)은, 스텝 1에서 취득한 암호 알고리즘 식별자 일람에 복수의 암호 알고리즘 식별자가 포함되는 경우, 그 중에서 암호 알고리즘 식별자를 1개 선택하여(1개밖에 포함되지 않는 경우, 해당 1개의 암호 알고리즘 식별자가 선택된다), 데이터베이스 제어 수단(12)에, 선택한 암호 알고리즘 식별자에 대응하는 암호문 테이블의 내용을 데이터베이스(11)로부터 취득하도록 의뢰한다. 데이터베이스 제어 수단(12)은, 암호문 테이블 정보표(도 7의 (B) 참조)를 참조하여, 선택한 암호 알고리즘 식별자에 대응하는 암호문 테이블명을 특정하고, 특정한 암호문 테이블의 내용(ID와 암호문의 쌍 형식으로 저장됨)을 취득하여, 어플리케이션 응답 수단(22)에 송신한다.
스텝 6. 암호문을 복호:
어플리케이션 응답 수단(22)은, 스텝 5에서 선택한 암호 알고리즘 식별자와 취득한 암호문을 키 이용 수단(23)에 송신하고, 평문에 대한 복호를 의뢰한다.
스텝 7. 새로운 식별자의 암호 알고리즘에 의한 암호문 작성:
어플리케이션 응답 수단(22)은, 스텝 2에서 얻어진 기밀도에 대응하는 암호 알고리즘 식별자의 일람에만 포함되는 암호 알고리즘 식별자가 복수 존재하는 경우(스텝 1에서 취득한 암호 알고리즘 식별자 일람에 포함되지 않음), 그 중에서 암호 알고리즘 식별자를 1개 선택하여(스텝 2에서 얻어진 기밀도에 대응하는 암호 알고리즘 식별자의 일람에 1개의 암호 알고리즘 식별자밖에 포함되지 않는 경우, 해당 1개의 암호 알고리즘 식별자가 선택된다), 스텝 6에서 얻은 평문과 함께, 키 이용 수단(23)에 송신하고, 새로운 식별자의 암호 알고리즘에 의한 암호화를 의뢰한다. 그리고, 새로운
[일련 번호, 평문, 암호문]
의 조의 일람을 작성한다.
스텝 8. 암호문 테이블의 작성:
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여
[일련 번호, 암호문]
의 조의 일람을 저장하는 암호문 테이블의 작성을 의뢰하여, 암호문 테이블(도 7의 (D) 내지 (F)의 저장 형식 참조)을 작성한다.
스텝 9. 암호문 테이블 정보표의 갱신:
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여 암호 테이블 정보표(도 7의 (B) 참조)에, 새로운 테이블을 추가하기 위해서,
[대상 테이블명, 대상 칼럼명, 새로운 암호 알고리즘 식별자, 스텝 8에서 작성된 암호문 테이블명]
의 조를 추가하도록 의뢰한다.
스텝 10. 지정된 기밀도를 만족하지 않는 암호 테이블의 삭제:
스텝 1에만 포함되는 암호 알고리즘 식별자에 대해서, 암호문 테이블 정보표(도 7의 (B) 참조)를 참조하여, 대응하는 암호문 테이블명을 특정하고, 데이터베이스(11)로부터, 해당하는 암호문 테이블과, 암호문 테이블 정보표의 대응 부분(삭제 대상의 암호문 테이블의 테이블명을 포함하는 행(엔트리))을 삭제하도록, 데이터베이스 제어 수단(12)에 의뢰한다. 이 조작에 의해, 기밀도의 변경이 지정된 칼럼 데이터에 관해서, 새롭게 지정된 기밀도보다 낮은 기밀도의 암호 알고리즘으로 암호화된 암호 칼럼 데이터가 데이터베이스(11)로부터 삭제된다.
안전성 설정 수단(26)에서 칼럼 데이터 기밀도를 현재 설정되어 있는 기밀도보다 낮은 값으로 설정할 경우도, 상기와 같이 하여 행해진다. 새롭게 지정된 기밀도와 동일한 기밀도의 암호 알고리즘으로 암호화되어 있는 데이터가 존재하는 경우, 새롭게 지정된 기밀도에 대응하는 암호 알고리즘으로 재암호화하고, 암호문 테이블을 작성하는 처리는 행하지 않는다.
<데이터 추가 처리>
이어서, 데이터베이스(11)에 칼럼 데이터를 새롭게 추가하는 경우의 처리 수순의 일례를 설명한다. 도 16은, 어플리케이션 응답 수단(22)에 있어서, 데이터베이스(11) 내에서 이미 작성된 테이블에, 데이터를 추가하는 처리를 설명하는 흐름도이다.
스텝 0. 데이터 추가 지시를 수신:
어플리케이션 응답 수단(22)에 있어서, 데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령이, 예를 들어 SQL의
INSERT문(INSERT INTO (열명 1, 열명 2…) VALUES (값 1, 값 2…)
등의 데이터 추가 지시인 것을 인식한다.
스텝 1. 메타데이터 암호화의 유무의 확인:
어플리케이션 응답 수단(22)은, 데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14)나 안전성 설정 정보 일시 기억부(25)를 참조하여, 추가 대상의 테이블명이나 칼럼명이 데이터베이스(11)에서 암호화되어 있는지 여부를 확인한다.
스텝 2. 평문 메타데이터의 암호문으로의 치환:
데이터 추가 지시의 데이터베이스 조작 명령으로 지정된 테이블명, 칼럼명이 암호화되어 있는 경우, 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)에 복호 후 테이블명, 복호 후 칼럼명의 란의 평문의 테이블명, 칼럼명에 대응하는 암호문의 테이블명, 칼럼명을 취득하고, 상기 INSERT문 등의 데이터 추가 지시에 포함되어 있는 평문의 테이블명, 평문의 칼럼명을, 취득한 암호문 테이블명, 암호문 칼럼명으로 치환한다.
어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14) 또는 안전성 설정 정보 일시 기억부(25)를 참조하여, 추가 대상의 칼럼에 대해서, 칼럼 데이터 기밀도와, 암호 알고리즘 식별자를 취득한다.
스텝 3. 설정 완료 기밀도의 확인:
어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14) 또는 안전성 설정 정보 일시 기억부(25)에 있어서, 해당하는 테이블명, 칼럼명의 칼럼 데이터 기밀도가 Null인 경우(기밀도가 설정되어 있지 않은 경우), 스텝 8로 제어를 이동한다. 한편, 칼럼 데이터 기밀도가 설정되어 있는 경우, 어플리케이션 응답 수단(22)은 다음 스텝 4를 실행한다.
스텝 4. 설정 완료 기밀도에 따른 암호 데이터의 작성:
어플리케이션 응답 수단(22)은, 칼럼 데이터 기밀도와 암호 알고리즘 식별자가 설정되어 있는 경우, 설정되어 있는 모든 암호 알고리즘 식별자에 대해서, 추가하는 평문 데이터와, 암호 알고리즘 식별자를 키 이용 수단(23)에 보내고, 평문 데이터를, 설정된 암호 알고리즘으로 암호화한
[암호 알고리즘 식별자, 암호 데이터]
의 조의 리스트를 작성한다.
스텝 5. 암호 알고리즘 식별자와 암호 데이터를 포함하는 데이터 추가 의뢰:
어플리케이션 응답 수단(22)은,
추가 대상의 테이블명, 칼럼명,
스텝 4에서 얻어진 [암호 알고리즘 식별자, 암호 데이터]
를 데이터베이스 제어 수단(12)에 송신하고, 데이터베이스(11)에 대한 추가를 의뢰한다.
스텝 6. 암호문 테이블에 대한 암호 데이터 추가:
데이터베이스 제어 수단(12)은, 추가 대상의 칼럼에 저장되어 있는 일련 번호의 최대값을 취득하여, 일련 번호의 최대값+1을 추가용 ID의 개시 번호 IDx로 한다.
데이터베이스 제어 수단(12)은, 스텝 4에서 얻어진 모든
[암호 알고리즘 식별자, 암호 데이터]
에 대해서, 암호문 테이블 정보표(도 7의 (B))를 참조하여, 추가 대상의 테이블, 칼럼의 지정된 암호 알고리즘 식별자에 대응하는 암호문 테이블명을 취득한다.
그리고, 데이터베이스 제어 수단(12)은, 얻어진 암호문 테이블에,
[추가용 ID, 암호 데이터]
의 조를 추가한다. 암호문 테이블은, 도 7의 (D) 내지 (F) 등에 도시한 바와 같이, ID와 암호 데이터의 쌍 정보를 기억한다. 따라서,
[추가용 ID, 암호문 데이터]
는 암호문 테이블의 마지막 끝에 추가된다. 추가하는 데이터가 복수인 경우, 추가용 ID는 그 개시 번호 IDx에서부터 순서대로, IDx+1, IDx+2, …로 인크리먼트된다.
스텝 7. 대상 테이블의 칼럼에 추가용 ID를 추가:
추가 대상의 테이블의 칼럼에, 칼럼의 데이터로서, 스텝 6에서 얻어진 추가용 ID를 추가한다. 예를 들어, 도 7의 (C)의 테이블(암호화 후)의 칼럼의 마지막 끝에 추가용 ID를 추가한다. 추가하는 데이터가 N개인 경우, IDx, IDx+1, IDx+2, …, IDx+N-1이 도 7의 (C)의 테이블(암호화 후)의 칼럼의 마지막 끝에 추가되어, ID의 최대값은 IDx+N-1로 갱신된다.
이상, 스텝 4 내지 7은, 기밀도가 설정되어 있는 경우의 데이터 추가 처리이다.
스텝 3에서, 기밀도가 설정되어 있지 않은 경우, 이하의 처리를 행한다.
스텝 8. 대상 테이블에의 데이터 추가 의뢰:
어플리케이션 응답 수단(22)은, 스텝 2에서 얻어진 추가 대상의 테이블명, 칼럼명의 암호문으로의 치환이 행해진 후의 데이터의 추가 지시를, 데이터베이스 제어 수단(12)에 송신하고, 데이터베이스(11)에 대한 데이터의 추가를 의뢰한다.
스텝 9. 대상 테이블에 대한 데이터 추가:
데이터베이스 제어 수단(12)은, 어플리케이션 응답 수단(22)으로부터 송신된 데이터 추가 지시에 따라서 데이터베이스(11)에 데이터를 추가한다.
이상, 본 실시 형태에서의, 안전성 정보 설정으로서, 암호화의 유무의 설정 및 기밀도의 설정의 처리 수순, 데이터베이스 조작의 일례로서 칼럼 데이터의 추가 조작의 처리 수순에 대해서, 각각 흐름도를 참조하여 설명하였다. 이하에서는, 본 실시 형태의 시스템의 몇 가지 대표적인 처리를 설명한다(단, 처리에 기본적으로 분지 등이 없기 때문에, 흐름도는 참조하지 않는다).
<어플리케이션 응답 수단의 기동 후의 초기 동작>
도 1에서, 어플리케이션 응답 수단(22)을 기동한 후의 초기 동작에 대하여 설명한다. 어플리케이션 응답 수단의 초기 동작에서는, 이후의 처리를 효율화하기 위해서, 기동 후의 초기 동작으로서, 데이터베이스 시스템(10)에 놓여져 있는 정보의 일부를 유저 시스템(20)측에 판독하는 처리와, 보조적인 정보를 생성하는 처리를 행한다.
어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)을 통해 데이터베이스 시스템(10)의 안전성 설정 정보 기억부(14)의 내용을 판독하여, 안전성 설정 정보 일시 기억부(25)에 저장한다.
데이터베이스(11)의 메타데이터(테이블명, 칼럼명)가 암호화되어 있는 경우, 어플리케이션 응답 수단(22)은, 키 이용 수단(23)을 통해 그것들의 암호화된 메타데이터를 복호하여, 안전성 설정 정보 일시 기억부(25)의 복호 후 테이블명, 복호 후 칼럼명의 란에 저장한다. 또한, 데이터베이스 시스템(10)의 암호 프로토콜 정보 기억부(13)의 내용에 대해서도, 어플리케이션 응답 수단(22)의 초기 동작시에, 유저 시스템(20)측에 판독하여, 기억부에 기억 유지하도록 해도 된다.
<메타데이터에 관한 조작의 처리>
데이터베이스(11)에 새로운 테이블을 추가하거나, 기존의 테이블명이나 칼럼명을 변경하는 조작(메타데이터에 관한 조작)에 대하여 설명한다. 데이터베이스(11)에 새로운 테이블을 추가하는 경우에, 상술한 바와 같이, 안전성 설정 수단(26)에 의해 안전성 정보의 설정이 행해진다.
어플리케이션 응답 수단(22)은, 데이터베이스 이용 어플리케이션(21)으로부터 테이블 추가의 데이터베이스 조작 명령이 입력되면, 안전성 설정 수단(26)에 통지한다. 안전성 설정 수단(26)은, 테이블 추가 명령의 내용을 화면에 표시하고, 데이터베이스 이용자에 대하여 추가되는 테이블의 안전성 설정 정보(테이블명, 칼럼명의 암호화의 유무, 칼럼 데이터의 기밀도)를 입력하도록 재촉한다. 안전성 설정 수단(26)은, 데이터베이스 이용자로부터 입력된 안전성 설정 정보를, 어플리케이션 응답 수단(22)에 송신한다.
어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)으로부터 송신된 안전성 설정 정보에 따라서 테이블명, 칼럼명을 암호화한 뒤에, 테이블 추가의 데이터베이스 조작 명령을 데이터베이스 제어 수단(12)에 송신하고, 데이터베이스(11)에 테이블을 작성한다.
어플리케이션 응답 수단(22)은, 안전성 설정 정보를 데이터베이스 제어 수단(12)에 송신하고, 안전성 설정 정보 기억부(14)에 저장한다. 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)에, 안전성 설정 정보 기억부(14)에 저장하는 안전성 설정 정보와 동일한 안전성 설정 정보를, 안전성 설정 정보 일시 기억부(25)에 저장한다. 테이블명, 칼럼명을 암호화했을 경우, 복호 후 테이블명, 칼럼명에 암호화 전의 테이블명, 칼럼명을 저장한다.
<테이블명, 칼럼명의 변경>
데이터베이스(11)에 저장한 테이블의 테이블명이나 칼럼명 등의 메타데이터의 설정 내용의 변경(암호화 "유"로의 변경, 암호화 "무"로의 변경)은, 이미 도 12, 도 13을 참조하여 설명하였다. 이하에서는, 테이블명, 칼럼명의 변경에 대하여 설명한다.
데이터베이스(11)에 저장 완료의 기존의 테이블명이나 칼럼명을 변경하는 경우, 테이블명이나 칼럼명이 암호화되어 있는지 여부로 처리를 바꿀 필요가 있다.
어플리케이션 응답 수단(22)은, 테이블명이나 칼럼명을 변경하는 데이터베이스 조작 명령이 입력되면, 안전성 설정 정보 일시 기억부(25)를 검색하여, 변경 대상이 되는 테이블명이나 칼럼명의 암호화 유무의 설정이 "유"인지 여부를 확인한다.
암호화 유무의 설정이 "무"이면, 그대로 통상의 데이터베이스 조작 명령으로서 데이터베이스 제어 수단(12)에 송신하여, 데이터베이스 조작을 실행한다. 또한, 안전성 설정 정보 기억부(14), 안전성 설정 정보 일시 기억부(25)에 저장되어 있는 테이블명이나 칼럼명도 함께 변경한다. 암호화 유무의 설정이 "유"이면, 이하의 처리를 행한다.
스텝 1: 어플리케이션 응답 수단(22)은, 지정된 변경 후의 평문의 테이블명이나 칼럼명을, 키 이용 수단(23)에 의해 암호화하고, 변경 후의 테이블명이나 칼럼명에 관해서,
[평문의 테이블명이나 칼럼명, 암호문의 테이블명이나 칼럼명]
의 조를 작성한다.
스텝 2: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)를 참조하여, 지정된 변경 대상의 평문의 테이블명이나 칼럼명에 대응하는, 암호문의 테이블명이나 칼럼명을 검색하고, 데이터베이스(11)에 등록되어 있는 암호문의 테이블명이나 칼럼명을 특정한다.
스텝 3: 어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여, 스텝 2에서 특정한, 현재, 데이터베이스(11)에 등록되어 있는 암호문의 테이블명이나 칼럼명을, 스텝 1에서 작성한 변경 후의 암호문의 테이블명이나 칼럼명으로 치환하도록, 데이터베이스 조작 명령을 송신하여 데이터베이스(11)의 테이블명이나 칼럼명의 변경을 실행한다.
스텝 4: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14), 안전성 설정 정보 일시 기억부(25)에 기록되어 있는, 스텝 2에서 특정한, 암호문의 테이블명이나 칼럼명을, 스텝 1에서 작성한, 암호문의 테이블명이나 칼럼명으로 치환한다. 또한, 안전성 설정 정보 일시 기억부(25)에 기록되어 있는, 대응하는 평문의 테이블명이나 칼럼명(복호 후 테이블명이나 칼럼명)을 지정된 변경 후의 평문의 테이블명이나 칼럼명으로 치환한다.
<기존 테이블에 대한 데이터의 추가>
데이터베이스(11)에 저장 완료의 기존 테이블의 칼럼에 대한 데이터의 추가는, 도 16을 참조하여 설명하였다. 추가 데이터를 암호화하고, 지정된 테이블의 지정 칼럼의 데이터로서, 현재의 테이블의 행수(일련 번호의 최대값)에 +1한 수치(추가용 ID)를 추가하고, 암호문 테이블 정보표(도 7의 (B))를 참조하여, 추가 데이터에 대응하는 암호 알고리즘의 암호문 테이블(암호 알고리즘이 복수 존재하는 경우, 복수의 암호 알고리즘에 각각 대응한 복수의 암호문 테이블)에, 추가용 ID와 암호문의 쌍을 추가한다.
<기존 테이블의 데이터의 변경>
데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령이 데이터 변경인 경우의 어플리케이션 응답 수단(22), 데이터베이스 제어 수단(12)의 처리를 설명한다. 데이터 변경은, 예를 들어 SQL 명령(UPDATE 테이블명 SET <열>=<값>) 등에 대응한다.
스텝 1: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)(또는 안전성 설정 정보 일시 기억부(25))를 참조하여, 추가 변경 대상의 테이블명, 칼럼명이 암호화되어 있는지 여부를 확인한다.
스텝 2: 추가 변경 대상의 테이블명, 칼럼명이 암호화되어 있는 경우, 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)를 참조하여, 데이터베이스(11) 상에서의 암호문의 테이블명이나 칼럼명을 취득하고, 어플리케이션 응답 수단(22)에 입력된 데이터베이스 조작 명령의 대응하는 (평문의) 테이블명이나 칼럼명을 취득한 암호문의 테이블명이나 칼럼명으로 치환한다.
스텝 3: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)(또는 안전성 설정 정보 일시 기억부(25))를 참조하여, 변경 대상의 칼럼 데이터에 기밀도가 설정되어 있는지 여부를 확인한다.
스텝 4: 안전성 설정 정보 기억부(14)(또는 안전성 설정 정보 일시 기억부(25))의 해당 테이블명, 해당 칼럼명의 칼럼 데이터 기밀도가 Null인 경우(기밀도가 설정되어 있지 않은 경우), 상술한 테이블명이나 칼럼명의 치환만을 행한 데이터베이스 조작 명령을 데이터베이스 제어 수단(12)에 송신하여 변경을 실행한다.
안전성 설정 정보 기억부(14)(또는 안전성 설정 정보 일시 기억부(25))의 해당 테이블명, 해당 칼럼명의 칼럼 데이터 기밀도가 설정되어 있는 경우, 이하의 처리를 행한다.
스텝 5: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)(또는 안전성 설정 정보 일시 기억부(25))를 참조하여, 대상의 칼럼의 암호 알고리즘 식별자를 전부 취득한다.
스텝 6: 어플리케이션 응답 수단(22)은, 변경 대상의 평문의 데이터를, 취득한 모든 식별자의 암호 알고리즘으로 암호화한다.
스텝 7: 어플리케이션 응답 수단(22)은, 데이터베이스 제어 수단(12)에 대하여, 변경 대상의 테이블명이나 칼럼명, 변경 대상행의 지정, 작성한 모든
[암호 알고리즘 식별자, 암호문]
의 조를 송신한다.
스텝 8: 데이터베이스 제어 수단(12)은, 변경 대상의 테이블·칼럼을 참조하여 변경 대상의 행에 저장된 일련 번호를 취득한다.
스텝 9: 데이터베이스 제어 수단(12)은, 암호문 테이블 정보를 참조하여 암호 알고리즘마다의 암호문 테이블을 특정하고, 스텝 4에서 취득한 일련 번호에 대응하는 행의 암호문을 스텝 7에서 수신한 암호문으로 재기입한다.
<기존 테이블로부터의 데이터의 삭제>
데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령이 데이터베이스(11)로부터의 데이터 삭제의 경우에서의 어플리케이션 응답 수단(22)과 데이터베이스 제어 수단(12)의 처리를 설명한다.
스텝 1: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)(또는 안전성 설정 정보 일시 기억부(25))를 참조하여, 조작 대상의 테이블명이 암호화되어 있는지 여부를 확인한다.
스텝 2: 조작 대상의 테이블명이 암호화되어 있지 않은 경우, 어플리케이션 응답 수단(22)은, 그대로 통상의 데이터베이스 조작 명령으로서 데이터베이스 제어 수단(12)에 송신한다.
스텝 3: 조작 대상의 테이블명이 암호화되어 있는 경우, 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)를 참조하여, 데이터베이스(11) 상에서의 암호문의 테이블명을 취득하고, 조작 대상의 테이블명을, 취득한 암호문의 테이블명으로 치환한 뒤에 데이터베이스 제어 수단(12)에 송신한다.
스텝 4: 데이터베이스 제어 수단(12)은, 어플리케이션 응답 수단(22)으로부터의 데이터베이스 조작 명령에 따라 데이터의 삭제를 행한다. 이때, 삭제 대상의 테이블에, 데이터의 암호화가 행해지고 있는 칼럼이 존재하는지 여부를 확인하고, 암호화가 행해지고 있는 칼럼이 존재하는 경우에는, 대응하는 암호문 테이블의 데이터도 삭제한다.
<기존 테이블의 데이터에 대한 검색이나 연산>
데이터베이스 조작 명령이 데이터베이스(11) 내의 기존 테이블의 데이터에 대한 검색이나 연산일 경우의 처리를 이하에 설명한다.
스텝 1: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)(또는 안전성 설정 정보 일시 기억부(25))를 참조하여, 조작 대상의 테이블명, 칼럼명이 암호화되어 있는지 여부를 확인한다.
스텝 2: 조작 대상의 테이블명이나 칼럼명이 암호화되어 있는 경우, 어플리케이션 응답 수단(22)은, 안전성 설정 정보 일시 기억부(25)를 참조하여 데이터베이스(11) 상에서의 암호문의 테이블명이나 칼럼명을 취득하고, 어플리케이션 응답 수단(22)에 입력된 데이터베이스 조작 명령의 대응하는 평문의 테이블명이나 칼럼명을, 취득한 암호문의 테이블명이나 칼럼명으로 치환한다.
스텝 3: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14) 또는 안전성 설정 정보 일시 기억부(25)를 참조하여, 조작 대상의 칼럼의 데이터에, 칼럼 데이터 기밀도가 설정되어 있는지 여부를 확인한다.
조작 대상의 칼럼에 기밀도가 설정되어 있지 않은 경우(칼럼 데이터는 암호화되어 있지 않음), 이하의 스텝 4 내지 6의 처리를 행한다.
스텝 4: 어플리케이션 응답 수단(22)은, 상술한 테이블명이나 칼럼명의 치환을 행한 데이터베이스 조작 명령(검색이나 연산)을 데이터베이스 제어 수단(12)에 송신한다.
스텝 5: 데이터베이스 제어 수단(12)은, 어플리케이션 응답 수단(22)으로부터 수신한 데이터베이스 조작(검색이나 연산)을 실행하고, 실행 결과를 어플리케이션 응답 수단(22)에 회신한다.
스텝 6: 데이터베이스 제어 수단(12)은, 데이터베이스 조작 명령(검색이나 연산)에 포함되는 테이블명이나 칼럼명이 암호문으로 치환되어 있을 경우, 데이터베이스 조작의 실행 결과에 포함되는 테이블명이나 칼럼명을, 대응하는 평문의 테이블명이나 칼럼명으로 다시 치환한 뒤에, 어플리케이션 응답 수단(22)에 보낸다.
조작 대상의 칼럼의 칼럼 데이터 기밀도가 설정되어 있는 경우의 데이터베이스(11) 내의 기존 테이블의 데이터에 대한 검색이나 연산에 대하여 이하에 설명한다.
스텝 7: 어플리케이션 응답 수단(22)은, 안전성 설정 정보 기억부(14)를 참조하여, 조작 대상의 칼럼의 암호화에 사용되고 있는 암호 알고리즘의 식별자를 취득한다.
스텝 8: 어플리케이션 응답 수단(22)은, 암호 프로토콜 정보 기억부(13)를 참조하여,
[처리 내용, 조작 대상의 칼럼에 설정되어 있는 기밀도, 조작 대상의 칼럼의 암호화에 사용되고 있는 암호 알고리즘 식별자]
의 3개 조(triplet)에 대응하는 암호 프로토콜 식별자(도 5 참조)를 취득한다.
스텝 9: 어플리케이션 응답 수단(22)의 암호 프로토콜 처리 실행부(222)에,
[암호 프로토콜 식별자와, 조작 대상 칼럼, 처리 내용]
을 입력한다.
스텝 10: 어플리케이션 응답 수단(22)의 암호 프로토콜 처리 실행부(222)는, 입력된 암호 프로토콜 식별자에 따라, 데이터베이스 제어 수단(12)과 통신을 행하여 데이터베이스 조작을 실행하고, 실행 결과를 얻는다. 또한, 암호 프로토콜 처리의 구체적인 내용은, 암호 프로토콜에 따라 다르다.
스텝 11: 데이터베이스 제어 수단(12)은, 데이터베이스 조작 명령에 포함되는 테이블명이나 칼럼명의 치환을 행하고 있으면, 얻어진 실행 결과가 포함되는 암호문의 테이블명이나 칼럼명을, 평문의 테이블명이나 칼럼명으로 다시 치환한 뒤에, 실행 결과를 어플리케이션에 보낸다.
<데이터에 기밀도를 설정하는 처리의 동작예>
이어서, 본 실시 형태에서 데이터베이스(11) 내의 테이블에, "사원표"의 칼럼과 "근무지"의 칼럼을, 기밀도 "중"을 설정하는 경우에 대하여 설명한다.
스텝 1. 암호 알고리즘의 선택:
어플리케이션 응답 수단(22)은, 안전성 설정 수단(26)에서 유저로부터 지정된 기밀도에 대응하는 암호 알고리즘을 선택한다. 도 17에 도시한 바와 같이, 암호 프로토콜 정보 기억부(13)를 참조하여, 기밀도 "중"에 대응하는 암호 알고리즘 식별자의 일람("SE1", "AES", "HE1")을 취득한다. 암호 알고리즘 식별자의 일람("SE1", "AES", "HE1") 중에서 1개 알고리즘을 선택한다. 여기에서는, 암호문 작성의 효율성을 중시하여 "AES"를 선택하는 것으로 한다.
스텝 2. 안전성 설정 정보 기억부의 변경:
데이터베이스 시스템(10)의 안전성 설정 정보 조작부(124)는, 도 18에 도시한 바와 같이, 안전성 설정 정보 기억부(14)의 테이블명 "사원표", 칼럼명 "근무지"의 정보를 저장하고 있는 행에 대해서,
"칼럼 데이터 암호화 유무"의 란을 "무"에서 "유"로,
"칼럼 데이터 기밀도"의 란을 "NULL"에서 "중"으로,
"칼럼 데이터 암호 알고리즘 식별자"의 란을 "NULL"에서 "AES"로 변경한다.
스텝 3. 안전성 설정 정보 일시 기억부(25)의 변경:
어플리케이션 응답 수단(22)의 안전성 설정 정보 조작부(225)는, 안전성 설정 정보 일시 기억부(25)의 테이블명 "사원표", 칼럼명 "근무지"의 정보를 저장하고 있는 행에 대해서, 안전성 설정 정보 기억부(14)와 마찬가지로 변경한다. 즉, 도 19에 도시한 바와 같이, 테이블명 "사원표"에 대해서, 칼럼명 "근무지"의 정보를 저장하고 있는 행에 대해서,
"칼럼 데이터 암호화 유무"의 란을 "무"에서 "유"로,
"칼럼 데이터 기밀도"의 란을 "NULL"에서 "중"으로,
"칼럼 데이터 암호 알고리즘 식별자"의 란을 "NULL"에서 "AES"로 변경한다.
스텝 4. 대상 칼럼 데이터의 취득:
테이블 "사원표"는, 도 20의 (A)에 나타내는 것으로 한다. 데이터베이스 제어 수단(12)은, 테이블 "사원표"로부터 칼럼 "근무지"의 데이터의 일람을 취득하고, 어플리케이션 응답 수단(22)에 송신한다. 이때, 테이블 "사원표"의 열을 일의적으로 식별하는 주 키의 칼럼에 대해서도 함께 취득한다. 여기에서는, "사원 번호"를 주 키로 한다.
스텝 5. 취득한 칼럼 데이터의 암호화:
어플리케이션 응답 수단(22)은, "근무지"의 칼럼의 데이터를 키 이용 수단(23)에 의해 암호화하고, 암호문을, 원래의 평문, 사원 번호와 대응시켜, 도 20의 (B)에 도시한 바와 같이, 일련 번호 1, 2, 3, …을 붙인 리스트를 만든다. 또한, 이 리스트는, 어플리케이션 응답 수단(22) 내의 기억부에서 유지한다.
스텝 6. 암호문 테이블의 작성:
데이터베이스 제어 수단(12)에, 스텝 5에서 작성된 리스트(도 21의 (A)) 중 암호문(평문 "본사"의 암호문 "0x3d8…", 평문 "타마가와"의 암호문 "0x962…")과, 일련 번호(1, 2, …)의 조의 리스트를 송부하여, 암호문 테이블을 작성해서 저장한다. 도 21의 (B)에 도시한 바와 같이, 암호문 테이블명은, "암호문_AES_1"로 한다. 암호문 테이블은, 일련 번호와 암호문의 쌍으로 이루어진다.
스텝 7. 암호문 테이블 정보표의 갱신:
도 21의 (C)에 도시한 바와 같이, 암호문 테이블 정보표에, 테이블명 "사원표", 칼럼명 "근무지", 암호 알고리즘 "AES", 암호문 테이블명 "암호문_AES_1"을 저장한다.
스텝 8. 평문의 칼럼 데이터의 치환:
스텝 5에서 작성된, 사원 번호와 일련 번호의 조의 리스트(도 22의 (A))를 데이터베이스 제어 수단(12)에 송부하고, 도 22의 (B)에 도시한 바와 같이, 테이블 "사원표"의 칼럼 "근무지"의 값을, 일련 번호(1, 2, …)로 치환한다. 일련 번호로의 치환이 완료하면, 스텝 5에서 작성된 리스트(도 22의 (A))는 삭제한다. 도 22의 (C), (D)의 암호문 테이블, 암호문 테이블 정보표는, 도 21의 (B), (C)의 암호문 테이블, 암호문 테이블 정보표와 동일하다.
<평균값 연산>
이어서, 데이터베이스(11)에 기억된 암호화 데이터의 평균값을 구하는 연산 조작의 일례에 대하여 설명한다. 도 23은, 이 예에서 참조하는 안전성 설정 정보 일시 기억부(25)의 예를 나타내는 도면이다. 데이터베이스(11)에 기억되어 있는 테이블명 "근무 시간 관리표"의 칼럼명 "잔업 시간"의 데이터가 암호화되어 있을 때, 그 평균값을 구하는 처리에 대하여 설명한다.
테이블명 "근무 시간 관리표"에서, 칼럼 "근무 시간"의 칼럼 데이터와 제1 칼럼 "잔업 시간"의 칼럼 데이터는, 칼럼 데이터 기밀도가 모두 "중"으로 설정되어 있고, 식별자 "AES"의 암호 알고리즘으로 암호화되어 있다. 또한, 제2 칼럼 "잔업 시간"의 칼럼 데이터는, 식별자 "HE1"의 암호 알고리즘으로 암호화되어 있다. 또한, 데이터베이스 시스템(10)측의 안전성 설정 정보 기억부(14)는, 도 23의 안전성 설정 정보 일시 기억부(25)에서, "복호 후 테이블명"과 "복호 후 칼럼명"을 제외한 것이 된다.
테이블명 "근무 시간 관리표"의 본체는, 예를 들어 도 24의 (A)에 도시한 바와 같은 내용으로 한다. 또한, "근무 시간", "잔업 시간"의 일련 번호(ID) 1, 2, 3…은, 암호문 테이블에 있어서, 암호문과 쌍으로 저장되는 일련 번호(ID) 1, 2, 3…이다. "근무 시간"의 암호 데이터를 저장하는 암호문 테이블 "암호문_AES_1", "잔업 시간"의 암호 데이터를 저장하는 암호문 테이블 "암호문_AES_2", "암호문_HE1_1"표의 예는, 도 24의 (C), (D), (E)와 같은 것이 되고, 이것들의 대응 관계를 규정하는 암호문 테이블 정보표는, 예를 들어 도 24의 (B)에 도시한 바와 같은 것이 된다.
암호 프로토콜 정보 기억부(13)는, 도 25와 같이 되어 있는 것으로 한다. 암호 알고리즘 식별자 OPE1은, Oder Preserving Symmetric Encryption(순서 보존 대칭 암호) 알고리즘(공통 키 방식)의 하나를 나타내고 있다. 또한 HE1은, 준동형 암호(Homomorphic Encryption)의 하나, SE1은 SearchableEncryption의 하나를 나타내고 있다.
데이터베이스 이용 어플리케이션(21)으로부터 입력된 데이터베이스 조작 명령이, 평균값 연산 조작(예를 들어 SQL문: SELECT AVG(칼럼명) FROM 테이블명)일 경우, 어플리케이션 응답 수단(22)은, 메타데이터(테이블명, 칼럼명)의 암호화의 유무를 판정한다. 어플리케이션 응답 수단(22)은, 도 23의 안전성 설정 정보 일시 기억부(25)를 참조하여, 테이블명 "근무 시간 관리표"의 칼럼명 "잔업 시간"에 대응하는 정보를 취득한다. "테이블명 암호화 유무", "칼럼명 암호화 유무"의 란을 참조하여, 모두 암호화가 "무"로 설정되어 있는 것을 확인한다. 어플리케이션 응답 수단(22)은, 이 경우, 메타데이터의 치환 처리는 행하지 않는다.
이어서, 어플리케이션 응답 수단(22)은, 도 23의 안전성 설정 정보 일시 기억부(25)의 테이블명 "근무 시간 관리표"의 칼럼명 "잔업 시간"의 "칼럼 데이터 기밀도"의 란을 참조하여, 칼럼 데이터 기밀도가 "중"으로 설정되어 있는 것을 확인한다. 따라서, 암호 프로토콜 처리를 수반한 처리를 행한다.
어플리케이션 응답 수단(22)은, 도 23의 안전성 설정 정보 일시 기억부(25)의 테이블명 "근무 시간 관리표"의 "칼럼 데이터 암호 알고리즘 식별자"의 란을 확인하고, 암호화에 사용되고 있는 암호 알고리즘 식별자 "AES"와 "HE1"을 취득한다.
어플리케이션 응답 수단(22)은, 암호 프로토콜 정보 기억부(13)(도 25 참조)를 참조하여, 기밀도 "중"이고 처리 내용 "평균"에 대응하는 암호 프로토콜 식별자를, 암호 알고리즘 "AES", "HE1" 각각에 대하여 검색한다.
어플리케이션 응답 수단(22)은, 검색의 결과, 암호 알고리즘 "HE1"에 대해서, 암호 프로토콜 식별자 "HE1_AVG_M"을 얻는다.
어플리케이션 응답 수단(22)의 암호 프로토콜 처리 실행부(222)에 대하여,
암호 프로토콜 식별자: "HE1_AVG_M",
테이블명: "근무 시간 관리표",
칼럼명: "잔업 시간",
암호 알고리즘: "HE1",
처리 내용: "평균"을 입력한다.
암호 프로토콜 처리 실행부(222)는, 입력된 암호 프로토콜 식별자에 따라, 데이터베이스 제어 수단(12)의 암호 프로토콜 처리 실행부(122)와 주고받기하여 암호 프로토콜 처리를 행한다. 구체적인 동작은, 암호 프로토콜이나 그 실장 여하에 따라 다양하다(특별히 제한되지 않지만, 이하에 동작의 일례를 든다). 암호 프로토콜 처리 실행부(222)에서의 실행 결과를 데이터베이스 이용 어플리케이션(21)에 돌려준다.
유저 시스템(20)측의 암호 프로토콜 처리 실행부(222)는, 조작 대상의 테이블명 "근무 시간 관리표", 칼럼명 "잔업 시간", 암호 알고리즘 식별자 "HE1", 암호 프로토콜 식별자 "HE1_AVG_M"의 4개를, 데이터베이스 제어 수단(12)의 암호 프로토콜 처리 실행부(122)에 송부한다.
암호 프로토콜 처리 실행부(122)는, 수신한 암호 프로토콜 식별자 "HE_AVG_M"으로 지정되는 처리 수순에 따라, 이하와 같이 동작한다.
암호 프로토콜 처리 실행부(122)는, 암호문 테이블 정보표(도 24의 (B))를 참조하여, 테이블 "근무 시간 관리표"의 칼럼 "근무 시간"에 대해서, 암호 알고리즘 "HE1"로 암호화된 데이터가 저장되어 있는 테이블명 "암호문_HE1_1"을 취득한다.
암호 프로토콜 처리 실행부(122)는, 계속해서, "암호문_HE1_1"의 칼럼 "암호문"에 저장된 암호문 데이터의 모두와 데이터수를 취득한다.
암호 프로토콜 처리 실행부(122)는, 얻어진 암호문 데이터를 복호하지 않고, 평문의 총합의 암호문을 계산한다. Paillier 암호 등의 가법 준동형 암호에서는, 예를 들어 평문 m1의 암호문 E(m1)와 평문 m2의 암호문 E(m2)에 관하여, m1+m2의 암호문 E(m1+m2)는 E(m1)+E(m)=E(m1+m2)가 성립한다. 따라서, 총합의 암호문 E(Σmi)는 ΣE(mi)로 계산된다.
데이터베이스 제어 수단(12)의 암호 프로토콜 처리 실행부(122)는, 얻어진 총합의 암호문과 데이터수를, 처리·통신 제어부(125)(도 3 참조)를 통해, 유저 시스템(20)측의 암호 프로토콜 처리 실행부(222)(도 8 참조)에 송부한다. 또한, 상술한 RSA 암호나 Elgamal 암호는, 승법 준동형이다. 따라서, 연산 조작(처리 내용 식별자)에 대응하여 암호 알고리즘이 설정된다. 예를 들어, 도 25의 암호 프로토콜 정보 기억부(13)의 예에서는, "평균"의 처리 내용 연산자에 대하여 준동형 암호 알고리즘 HE1(이 경우, HE1은 Paillier 암호 등)이 설정되어 있다.
유저 시스템(20)측의 암호 프로토콜 처리 실행부(222)에서는, 데이터베이스 제어 수단(12)으로부터 수신한 총합의 암호문과, 암호 알고리즘 식별자 "HE1"을 키 이용 수단(23)에 송부하고, 총합의 암호문을 복호하여, 총합의 평문을 얻는다. 그리고, 암호 프로토콜 처리 실행부(222)는, 총합(평문)을 데이터수(평문)로 제산함으로써 평균값(평문)을 구한다. 구한 평균값을, 데이터베이스 조작 명령(평균값)의 발행원의 데이터베이스 이용 어플리케이션(21)에 돌려준다.
상기 평균값 이외에도, 가산 또는 승산 등 복합 산술 연산의 일부 연산이, 가법 준동형 암호 알고리즘, 또는, 승법 준동형 암호 알고리즘을 사용하여, 암호문인 상태로 연산 처리가 가능한 경우에는, 데이터베이스 제어 수단(12)의 암호 프로토콜 처리 실행부(122)에서는, 암호문인 상태로 연산을 행한 결과(암호문)를, 어플리케이션 응답 수단(22)의 암호 프로토콜 처리 실행부(222)에 돌려주고, 어플리케이션 응답 수단(22)에서는, 처리 결과의 암호문을, 키 이용 수단(23)에서 평문으로 복호화하고, 상기 복합 산술 연산의 나머지 연산을, 평문으로 행하여, 연산 결과를, 데이터베이스 이용 어플리케이션(21)에 돌려준다. 이러한 구성에 의해, 처리를 효율화하고 있다. 또한, 데이터베이스 제어 수단(12)에 있어서, 데이터베이스 조작 명령의 연산이, 가산, 또는 승산 이외의 연산인 경우(예를 들어, 가감승제 등의 복호 연산, 대소 비교 연산이나, 논리 연산 등), 암호문인 상태로의 연산 처리가 불가능할 경우, 데이터베이스(11)의 연산 대상 데이터를, 암호문인 상태로 어플리케이션 응답 수단(22)에 송신한다. 어플리케이션 응답 수단(22)에서는, 키 이용 수단(23)을 사용하여 연산 대상 암호 데이터를 평문으로 복호화하고, 상기 평문의 데이터에 대하여 상기 연산을 행하여, 연산 결과를, 데이터베이스 이용 어플리케이션(21)에 돌려준다. 이러한 구성에 의해 임의의 연산에 대응 가능하게 하고 있다.
상기 실시 형태에서는, 데이터베이스 조작 명령의 일례로서 SQL 명령을 예시했지만, 데이터베이스 조작 명령은 SQL 명령에 한정되는 것이 아님은 물론이다.
상기한 실시 형태의 적어도 일부는 예를 들어 이하와 같이 부기된다(단, 이하에 한정되지 않음).
(부기 1)
데이터베이스와, 데이터베이스 조작의 실행을 제어하는 데이터베이스 제어 수단을 구비한 데이터베이스 시스템과,
상기 데이터베이스 제어 수단에 네트워크를 통해 접속하는 유저 시스템,
을 구비하고,
상기 유저 시스템이,
암호화와 복호화를 위한 키 정보를 관리하는 키 이용 수단과,
상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하는 안전성 설정 수단과,
상기 안전성의 설정에 관한 정보를 기억하는 제1 기억부와,
상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령을 수취하고, 상기 제1 기억부의 정보를 참조하여, 상기 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터에 대하여 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보에 의해 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 제어 수단에 송신하여 상기 데이터베이스 제어 수단에 상기 데이터베이스 조작을 실행시키고,
상기 데이터베이스 제어 수단으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우에는, 상기 변환, 또는 상기 키 이용 수단의 키 정보에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 어플리케이션 응답 수단,
을 구비하고 있는, 것을 특징으로 하는 데이터베이스 암호화 시스템.
(부기 2)
상기 안전성 설정 수단은,
상기 메타데이터의 암호화의 유무의 설정 또는 변경,
상기 데이터의 암호화의 유무의 설정 또는 변경,
상기 안전성의 정도를 나타내는 기밀도 정보의 설정 또는 변경 중 적어도 하나를 행하는 것을 특징으로 하는 부기 1에 기재된 데이터베이스 암호화 시스템.
(부기 3)
상기 제1 기억부는, 상기 메타데이터의 암호화의 유무, 상기 데이터의 암호화의 유무, 상기 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 유지하는 것을 특징으로 하는 부기 2에 기재된 데이터베이스 암호화 시스템.
(부기 4)
상기 제1 기억부는, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터가 암호화될 경우, 암호화한 테이블명, 칼럼명을 유지함과 함께, 암호화 전의 평문의 테이블명, 평문의 칼럼명을, 복호 후 테이블명, 복호 후 칼럼명으로서 각각 기억 유지하는 것을 특징으로 하는 부기 3에 기재된 데이터베이스 암호화 시스템.
(부기 5)
상기 어플리케이션 응답 수단은, 상기 데이터베이스 처리 결과의 메타데이터 중 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우,
상기 제1 기억부의 상기 복호 후 테이블명과 상기 복호 후 칼럼명에 유지된 평문의 테이블명과 평문의 칼럼명 중 적어도 한쪽을 취득하는 것을 특징으로 하는 부기 4에 기재된 데이터베이스 암호화 시스템.
(부기 6)
상기 데이터베이스 제어 수단은, 상기 어플리케이션 응답 수단으로부터 송신된 상기 데이터베이스 조작 명령을 받고, 상기 데이터베이스에 대하여 암호화된 데이터에 대한 암호 프로토콜을 사용한 데이터베이스 조작, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 돌려주는 것을 특징으로 하는 부기 1 내지 5 중 어느 하나에 기재된 데이터베이스 암호화 시스템.
(부기 7)
상기 데이터베이스 제어 수단은, 상기 데이터베이스 조작 명령의 미리 정해진 소정의 조작과 연산에 대해서, 상기 데이터베이스에 저장된 암호문의 데이터를 암호문인 상태로 조작 또는 연산을 행하고, 암호문의 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 송신하는 것을 특징으로 하는 부기 6에 기재된 데이터베이스 암호화 시스템.
(부기 8)
상기 데이터베이스 시스템은, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 기억 유지하는 제2 기억부와,
상기 데이터베이스 조작 명령의 처리 내용과, 기밀도 정보와, 암호 알고리즘을 관련짓는 암호 프로토콜 식별 정보를 적어도 기억 유지하는 제3 기억부
를 구비한 것을 특징으로 하는 부기 4 내지 7 중 어느 하나에 기재된 데이터베이스 암호화 시스템.
(부기 9)
상기 데이터베이스가, 상기 제2 및/또는 제3 기억부로서 기능하고,
상기 제2 및/또는 제3 기억부에 기억되는 정보를 상기 데이터베이스 내의 테이블로서 유지하는 것을 특징으로 하는 부기 8에 기재된 데이터베이스 암호화 시스템.
(부기 10)
상기 어플리케이션 응답 수단은, 상기 제1 내지 제3 기억부 중 적어도 1개를 참조하여, 상기 데이터에 대응하는 기밀도 정보에 대응하는 암호 알고리즘을 선택하고, 선택한 암호 알고리즘과 상기 키 이용 수단의 키 정보를 사용하여 데이터를 암호화해서 상기 데이터베이스 제어 수단에 송신하는 것을 특징으로 하는 부기 8 또는 9에 기재된 데이터베이스 암호화 시스템.
(부기 11)
상기 어플리케이션 응답 수단은, 상기 데이터베이스 조작 명령으로 지정된 테이블명, 칼럼명의 암호화의 유무를, 상기 제1 및/또는 제2 기억부를 참조하여 판별하고, 상기 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우에는, 상기 데이터베이스 조작 명령의 테이블명과 칼럼명 중 적어도 한쪽을 암호문으로 치환한 뒤에 상기 데이터베이스 제어 수단에 송신하는 것을 특징으로 하는 부기 10에 기재된 데이터베이스 암호화 시스템.
(부기 12)
상기 데이터베이스 제어 수단은, 상기 기밀도 정보에 대응한 암호 알고리즘으로 암호화되는 데이터에 대하여 상기 제3 기억부의 암호 프로토콜 식별 정보에 기초하여, 상기 데이터베이스 조작 명령에 대응한 처리 내용의 암호 프로토콜 처리를 실행하는 암호 프로토콜 처리 실행부를 구비하고 있는 것을 특징으로 하는 부기 10에 기재된 데이터베이스 암호화 시스템.
(부기 13)
상기 데이터베이스 제어 수단은, 상기 데이터베이스 조작 명령의 연산 조작에 대해서, 상기 데이터베이스에 암호문으로 저장되어 있는 조작 대상의 데이터가, 미리 정해진 소정의 준동형 연산에 대응한 암호 알고리즘으로 암호화되어 있고, 또한, 상기 데이터베이스 조작 명령의 상기 연산 조작이 상기 소정의 준동형 연산을 포함하는 경우, 상기 조작 대상의 암호화된 데이터에 대하여 암호문인 상태로 상기 연산 조작을 행하여, 암호문의 연산 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 송신하고,
상기 어플리케이션 응답 수단에서는,
(A) 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호한 평문의 연산 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주거나,
(B) 상기 데이터베이스 조작 명령의 연산 조작이, 또한 평문으로의 연산을 필요로 하는 것인 경우에는, 또한 상기 평문으로의 연산을 행하여, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주고,
또는,
상기 어플리케이션 응답 수단은,
(C) 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용해서 복호하고, 얻어진 평문의 연산 결과에 대하여 또한 평문으로의 연산을 행하고,
(D) 상기 평문의 연산 결과를, 상기 키 이용 수단의 키 정보를 사용하여 암호화한 뒤에, 상기 데이터베이스 제어 수단에 송신하고, 상기 데이터베이스 제어 수단으로 암호문인 상태로 연산 조작을 행하고,
(E) 상기 데이터베이스 제어 수단으로부터 송신된 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용해서 복호하여 평문으로 하고,
(F) 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주거나, 상기 평문의 연산 결과에 대하여 더 연산을 행하고, 또는, (D)와 (E)의 처리를 적어도 1회 더 반복한 뒤에, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 부기 1 내지 12 중 어느 하나에 기재된 데이터베이스 암호화 시스템.
(부기 14)
상기 데이터베이스 제어 수단은, 상기 데이터베이스에, 암호문으로 저장되어 있는 조작 대상의 데이터가 암호문인 상태로는 상기 데이터베이스 조작 명령의 연산 조작을 행할 수 없는 암호 알고리즘으로 암호화되어 있는 경우, 상기 연산 조작 대상의 암호문의 데이터를, 상기 어플리케이션 응답 수단에 송신하고,
상기 어플리케이션 응답 수단에서는, 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 데이터를 상기 키 이용 수단의 키 정보를 사용하여 복호하고, 얻어진 평문의 데이터에 대하여 상기 데이터베이스 조작 명령의 연산 조작을 행하고, 상기 연산 조작 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 부기 1 내지 12 중 어느 하나에 기재된 데이터베이스 암호화 시스템.
(부기 15)
상기 안정성 설정 수단의 입력에 의해, 상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화할 경우,
상기 데이터베이스 제어 수단은, 상기 데이터베이스로부터 칼럼 데이터를 판독하고,
상기 어플리케이션 응답 수단은, 상기 제1 및/또는 제2 기억부를 참조하여, 상기 데이터베이스로부터 판독이 행하여진 상기 칼럼 데이터에 대하여, 설정된 기밀도 정보에 대응하는 암호 알고리즘으로 상기 키 이용 수단의 키 정보를 사용해서 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
상기 데이터베이스 제어 수단은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
상기 데이터베이스 제어 수단은, 상기 암호문 테이블의 관리를 위해서,
테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는 부기 8 또는 9에 기재된 데이터베이스 암호화 시스템.
(부기 16)
상기 데이터베이스 제어 수단이, 상기 어플리케이션 응답 수단으로부터 송신된 공개 키를 사용하여 데이터 및/또는 메타데이터를 암호화하는 암호 연산부를 구비한 것을 특징으로 하는 부기 1 내지 14 중 어느 하나에 기재된 데이터베이스 암호화 시스템.
(부기 17)
상기 안정성 설정 수단의 입력에 의해, 상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화할 경우,
상기 데이터베이스 제어 수단은, 상기 데이터베이스로부터 칼럼 데이터를 판독하고, 상기 어플리케이션 응답 수단으로부터 공개 키 정보를 취득하여, 상기 암호 연산부에서 상기 칼럼 데이터에 대하여 암호화를 행하고,
상기 데이터베이스 제어 수단은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
상기 데이터베이스 제어 수단은, 상기 암호문 테이블의 관리를 위해서,
테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는 부기 16에 기재된 데이터베이스 암호화 시스템.
(부기 18)
상기 어플리케이션 응답 수단이, 칼럼 데이터를 추가하는 데이터베이스 조작 명령을 입력하고, 상기 칼럼 데이터의 암호화가 필요한 경우, 상기 칼럼 데이터에 대응하는 암호 알고리즘으로 상기 추가 데이터를 상기 키 이용 수단의 키 정보를 사용해서 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
상기 데이터베이스 제어 수단은, 상기 데이터베이스의 상기 암호문 테이블의 말미에 갱신한 일련 번호와 암호문의 쌍을 추가하는 것을 특징으로 하는 부기 15에 기재된 데이터베이스 암호화 시스템.
(부기 19)
상기 안전성 설정 수단으로부터, 상기 데이터베이스에 기억되어 있는 데이터의 기밀도 정보의 변경 지시를 받으면, 상기 어플리케이션 응답 수단은, 상기 데이터베이스에 저장된, 암호화된 데이터에 대해서, 일단, 상기 키 이용 수단의 키 정보를 사용하여 평문으로 복호화하고, 상기 평문을, 변경된 상기 기밀도 정보에 대응하는 암호 알고리즘으로 재암호화한 뒤에 상기 데이터베이스 제어 수단에 송신하고, 상기 데이터베이스에 재암호화한 데이터를 저장하여, 상기 제1 기억부의 기밀도 정보와 암호 알고리즘 식별 정보를 갱신하는 것을 특징으로 하는 부기 3에 기재된 데이터베이스 암호화 시스템.
(부기 20)
상기 안전성 설정 수단은, 상기 데이터베이스에 기억되어 있는 데이터의 기밀도 정보를 변경함에 있어서, 테이블명, 칼럼명, 변경 후의 기밀도 정보를 지정하고,
상기 어플리케이션 응답 수단은, 상기 제2 기억부로부터 상기 데이터베이스에 기억되어 있는 상기 테이블명, 칼럼명의 상기 데이터의 암호화에 사용되고 있는 암호 알고리즘 식별자의 제1 집합을 취득하고, 입력된 기밀도 정보에 대응하는 암호 알고리즘 식별자의 제2 집합을 취득하고,
상기 제1, 제2 집합에 공통인 암호 알고리즘 식별자가 존재하지 않는 경우, 상기 제1 집합 중 1개의 암호 알고리즘 식별자의 암호 알고리즘으로 암호화되어 있는, 상기 테이블명, 칼럼명의 상기 데이터의 암호문을, 상기 키 이용 수단의 키 정보를 사용하여 평문으로 복호하고, 상기 평문을, 상기 제2 집합의 상기 입력된 기밀도 정보에 대응하는 암호 알고리즘으로 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
상기 데이터베이스 제어 수단은, 암호문 테이블에 일련 번호, 암호문의 쌍을 저장한 뒤에 상기 암호문 테이블 정보표를 갱신하고, 상기 기밀도 정보의 변경이 지정된 데이터에 관해서, 지정된 기밀도 정보에 대응하지 않는 암호문 테이블을 삭제하는 것을 특징으로 하는 부기 19에 기재된 데이터베이스 암호화 시스템.
(부기 21)
상기 유저 시스템은, 상기 데이터베이스에 대한 데이터베이스 조작 명령을 발행하고, 상기 데이터베이스 조작 명령의 처리 결과를 수취하는 데이터베이스 이용 어플리케이션 프로그램을 실행하고,
상기 어플리케이션 응답 수단은, 상기 데이터베이스 이용 어플리케이션 프로그램으로부터의 데이터베이스 조작 명령을 수취하고, 상기 데이터베이스 조작 명령의 처리 결과를, 상기 데이터베이스 이용 어플리케이션 프로그램에 돌려주는 것을 특징으로 하는 부기 1 내지 20 중 어느 하나에 기재된 데이터베이스 암호화 시스템.
(부기 22)
데이터베이스 장치에 네트워크를 통해 접속하는 유저 장치가,
암호화와 복호화를 위한 키 정보를 관리하는 키 이용 수단과,
데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하는 안전성 설정 수단과,
상기 안전성 설정 수단에서 설정되는 정보를 기억하는 제1 기억부와,
상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령을 수취하고, 상기 제1 기억부의 정보를 참조하여, 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터에 관하여 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보에 의한 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 제어 수단에 송신하고, 상기 데이터베이스 제어 수단에 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행하고,
상기 데이터베이스 제어 수단으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 수단의 키 정보에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 어플리케이션 응답 수단
을 구비하고 있는 것을 특징으로 하는 유저 장치.
(부기 23)
상기 안전성 설정 수단은, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화의 유무의 설정 또는 변경, 상기 데이터의 암호화의 유무의 설정 또는 변경, 데이터의 안전성의 정도를 나타내는 기밀도 정보의 설정 또는 변경 중 적어도 하나를 행하는 것을 특징으로 하는 부기 22에 기재된 유저 장치.
(부기 24)
상기 제1 기억부는, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 유지하고,
상기 테이블명, 칼럼명이 암호화되어 있는 경우,
암호화된 테이블명, 칼럼명 외에,
암호화 전의 평문의 테이블명, 평문의 칼럼명을, 복호 후 테이블명, 칼럼명으로서 기억 유지하는 것을 특징으로 하는 부기 23에 기재된 유저 장치.
(부기 25)
상기 어플리케이션 응답 수단은, 상기 데이터베이스 조작 명령으로 지정된 테이블명, 칼럼명이 암호화되어 있는지 여부를, 상기 제1 기억부를 참조하여 판별하고,
상기 테이블명, 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우에는, 평문을 암호문으로 치환하고,
상기 제1 기억부를 참조하여 데이터를 암호화할 경우에는, 상기 기밀도 정보에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보를 사용해서 데이터를 암호화하여 상기 데이터베이스 장치에 송신하는 것을 특징으로 하는 부기 24에 기재된 유저 장치.
(부기 26)
부기 22 내지 25 중 어느 하나에 기재된 유저 장치로부터 송신된 데이터베이스 조작 명령을 수취하고, 상기 데이터베이스에 대하여, 암호화된 데이터에 대한 암호 프로토콜을 사용한 데이터베이스 조작, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 돌려주는 것을 특징으로 하는 데이터베이스 장치.
(부기 27)
상기 데이터베이스 제어 수단은, 상기 어플리케이션 응답 수단으로부터 송신된 상기 데이터베이스 조작 명령을 받아, 상기 데이터베이스에 대하여, 암호화된 데이터에 대한 암호 프로토콜을 사용한 데이터베이스 조작, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 돌려주는 것을 특징으로 하는 부기 26에 기재된 데이터베이스 장치.
(부기 28)
상기 데이터베이스 제어 수단은, 상기 데이터베이스 조작 명령의 미리 정해진 소정의 조작과 연산에 대해서, 상기 데이터베이스에 저장된 암호문의 데이터를 암호문인 상태로 조작 또는 연산을 행하고, 암호문의 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 송신하는 것을 특징으로 하는 부기 26에 기재된 데이터베이스 장치.
(부기 29)
상기 데이터베이스 시스템은, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 기억 유지하는 제2 기억부와,
상기 데이터베이스 조작 명령의 처리 내용과, 기밀도 정보와, 암호 알고리즘을 관련짓는 암호 프로토콜 식별 정보를 적어도 기억 유지하는 제3 기억부,
를 구비한 것을 특징으로 하는 부기 26에 기재된 데이터베이스 장치.
(부기 30)
상기 데이터베이스가, 상기 제2 및/또는 제3 기억부로서 기능하고,
상기 제2 및/또는 제3 기억부에 기억되는 정보를 상기 데이터베이스 내의 테이블로서 유지하는 것을 특징으로 하는 부기 29에 기재된 데이터베이스 장치.
(부기 31)
상기 데이터베이스 제어 수단은, 상기 기밀도 정보에 대응한 암호 알고리즘으로 암호화되는 데이터에 대하여 상기 제3 기억부의 암호 프로토콜 식별 정보에 기초하여, 상기 데이터베이스 조작 명령에 대응한 처리 내용의 암호 프로토콜 처리를 실행하는 암호 프로토콜 처리 실행부를 구비하고 있는 것을 특징으로 하는 부기 29에 기재된 데이터베이스 장치.
(부기 32)
상기 데이터베이스 제어 수단은, 상기 데이터베이스 조작 명령의 연산 조작에 대해서, 상기 데이터베이스에 암호문으로 저장되어 있는 조작 대상의 데이터가, 미리 정해진 소정의 준동형 연산에 대응한 암호 알고리즘으로 암호화되어 있고, 또한, 상기 데이터베이스 조작 명령의 상기 연산 조작이 상기 소정의 준동형 연산을 포함하는 경우, 상기 조작 대상의 암호화된 데이터에 대하여 암호문인 상태로 상기 연산 조작을 행하고, 암호문의 연산 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 송신하고,
상기 어플리케이션 응답 수단에서는,
(A) 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호한 평문의 연산 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주거나,
(B) 상기 데이터베이스 조작 명령의 연산 조작이, 또한 평문으로의 연산을 필요로 하는 것인 경우에는, 상기 평문으로의 연산을 행하여, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주고,
또는,
상기 어플리케이션 응답 수단은,
(C) 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호하고, 얻어진 평문의 연산 결과에 대하여, 평문으로의 연산을 더 행하고,
(D) 상기 평문의 연산 결과를, 상기 키 이용 수단의 키 정보를 사용하여 암호화한 뒤에, 상기 데이터베이스 제어 수단에 송신하고, 상기 데이터베이스 제어 수단에서 암호문인 상태로 연산 조작을 행하고,
(E) 상기 데이터베이스 제어 수단으로부터 송신된 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용해서 복호하여 평문으로 하고,
(F) 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주거나, 상기 평문의 연산 결과에 대하여 연산을 더 행하고, 또는, (D)와 (E)의 처리를 적어도 1회 더 반복한 뒤에, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 부기 26 내지 31 중 어느 하나에 기재된 데이터베이스 장치.
(부기 33)
상기 데이터베이스 제어 수단은, 상기 데이터베이스에, 암호문으로 저장되어 있는 조작 대상의 데이터가 암호문인 상태로는 상기 데이터베이스 조작 명령의 연산 조작을 행할 수 없는 암호 알고리즘으로 암호화되어 있는 경우, 상기 연산 조작 대상의 암호문의 데이터를 상기 어플리케이션 응답 수단에 송신하고,
상기 어플리케이션 응답 수단에서는, 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 데이터를 상기 키 이용 수단의 키 정보를 사용하여 복호하고, 얻어진 평문의 데이터에 대하여 상기 데이터베이스 조작 명령의 연산 조작을 행하고, 상기 연산 조작 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 부기 26 내지 31 중 어느 하나에 기재된 데이터베이스 장치.
(부기 34)
상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화할 경우,
상기 데이터베이스 제어 수단은, 상기 데이터베이스로부터 칼럼 데이터를 판독하고,
상기 어플리케이션 응답 수단은, 상기 제1 및/또는 제2 기억부를 참조하여, 상기 데이터베이스로부터 판독이 행하여진 상기 칼럼 데이터에 대하여, 설정된 기밀도 정보에 대응하는 암호 알고리즘으로 상기 키 이용 수단의 키 정보를 사용하여 암호화해서 상기 데이터베이스 제어 수단에 송신하고,
상기 데이터베이스 제어 수단은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
상기 데이터베이스 제어 수단은, 상기 암호문 테이블의 관리를 위해서,
테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는 부기 26에 기재된 데이터베이스 장치.
(부기 35)
상기 데이터베이스 제어 수단이, 상기 어플리케이션 응답 수단으로부터 송신된 공개 키를 사용하여 데이터 및/또는 메타데이터를 암호화하는 암호 연산부를 구비한 것을 특징으로 하는 부기 26에 기재된 데이터베이스 장치.
(부기 36)
상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화할 경우,
상기 데이터베이스 제어 수단은, 상기 데이터베이스로부터 칼럼 데이터를 판독하고, 상기 어플리케이션 응답 수단으로부터 공개 키 정보를 취득하여, 상기 암호 연산부에서 상기 칼럼 데이터에 대하여 암호화를 행하고,
상기 데이터베이스 제어 수단은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
상기 데이터베이스 제어 수단은, 상기 암호문 테이블의 관리를 위해서,
테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는 부기 26에 기재된 데이터베이스 장치.
(부기 37)
상기 어플리케이션 응답 수단이, 칼럼 데이터를 추가하는 데이터베이스 조작 명령을 입력하고, 상기 칼럼 데이터의 암호화가 필요한 경우, 상기 칼럼 데이터에 대응하는 암호 알고리즘으로 상기 추가 데이터를 상기 키 이용 수단의 키 정보를 사용해서 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
상기 데이터베이스 제어 수단은, 상기 데이터베이스의 상기 암호문 테이블의 말미에 갱신한 일련 번호와 암호문의 쌍을 추가하는 것을 특징으로 하는 부기 26에 기재된 데이터베이스 장치.
(부기 38)
데이터베이스 시스템에 네트워크를 통해 접속하는 유저 시스템에서, 암호화와 복호화를 위한 키 정보를 기억 관리하고,
또한, 상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하여 제1 기억부에 기억하고,
상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령에 대하여, 상기 제1 기억부의 정보를 참조해서, 상기 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용해서 상기 키 정보에 의한 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 시스템에 송신하여 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 시스템에 송신하여 데이터베이스 조작을 실행시키고,
상기 데이터베이스 시스템으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환, 또는 상기 키 정보에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 데이터베이스 암호화 방법.
(부기 39)
상기 안전성의 설정에 있어서,
상기 메타데이터의 암호화의 유무의 설정 또는 변경,
상기 데이터의 암호화의 유무의 설정 또는 변경,
상기 안전성의 정도를 나타내는 기밀도 정보의 설정 또는 변경 중 적어도 1개를 행하는 것을 특징으로 하는 부기 38에 기재된 데이터베이스 암호화 방법.
(부기 40)
상기 제1 기억부는, 상기 메타데이터의 암호화의 유무, 상기 데이터의 암호화의 유무, 상기 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 유지하는 것을 특징으로 하는 부기 38에 기재된 데이터베이스 암호화 방법.
(부기 41)
상기 제1 기억부는, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터가 암호화되는 경우, 암호화한 테이블명, 칼럼명을 유지함과 함께, 암호화 전의 평문의 테이블명, 평문의 칼럼명을, 복호 후 테이블명, 복호 후 칼럼명으로서 각각 기억 유지하는 것을 특징으로 하는 부기 40에 기재된 데이터베이스 암호화 방법.
(부기 42)
상기 데이터베이스 처리 결과의 메타데이터 중 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우, 상기 제1 기억부의 상기 복호 후 테이블명과 상기 복호 후 칼럼명에 유지된 평문의 테이블명과 평문의 칼럼명 중 적어도 한쪽을 취득하는 것을 특징으로 하는 부기 41에 기재된 데이터베이스 암호화 방법.
(부기 43)
상기 데이터베이스 시스템은, 상기 유저 시스템으로부터 송신된 상기 데이터베이스 조작 명령을 받아, 상기 데이터베이스에 대하여, 암호화된 데이터에 대한 암호 프로토콜을 사용한 데이터베이스 조작, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 유저 시스템에 돌려주는 것을 특징으로 하는 부기 38 내지 42 중 어느 하나에 기재된 데이터베이스 암호화 방법.
(부기 44)
상기 데이터베이스 제어 수단은, 상기 데이터베이스 조작 명령의 미리 정해진 소정의 조작과 연산에 대해서, 상기 데이터베이스에 저장된 암호문의 데이터를 암호문인 상태로 조작 또는 연산을 행하고, 암호문의 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 유저 시스템에 송신하는 것을 특징으로 하는 부기 43에 기재된 데이터베이스 암호화 방법.
(부기 45)
상기 데이터베이스 시스템에서는, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 제2 기억부에서 기억 유지하고,
상기 데이터베이스 조작 명령의 처리 내용과, 기밀도 정보와, 암호 알고리즘을 관련짓는 암호 프로토콜 식별 정보를 제3 기억부에서 적어도 기억 유지하는 것을 특징으로 하는 부기 41 내지 44 중 어느 하나에 기재된 데이터베이스 암호화 방법.
(부기 46)
상기 데이터베이스가, 상기 제2 및/또는 제3 기억부로서 기능하고,
상기 제2 및/또는 제3 기억부에 기억되는 정보를 상기 데이터베이스 내의 테이블로서 유지하는 것을 특징으로 하는 부기 45에 기재된 데이터베이스 암호화 방법.
(부기 47)
상기 유저 시스템은, 상기 제1 내지 제3 기억부 중 적어도 1개를 참조하여, 상기 데이터에 대응하는 기밀도 정보에 대응하는 암호 알고리즘을 선택하고, 선택한 암호 알고리즘과 상기 키 이용 수단의 키 정보를 사용하여 데이터를 암호화해서 상기 데이터베이스 시스템에 송신하는 것을 특징으로 하는 부기 45 또는 46에 기재된 데이터베이스 암호화 방법.
(부기 48)
상기 유저 시스템은, 상기 데이터베이스 조작 명령으로 지정된 테이블명, 칼럼명의 암호화의 유무를, 상기 제1 및/또는 제2 기억부를 참조하여 판별하고, 상기 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우에는, 상기 데이터베이스 조작 명령의 테이블명과 칼럼명 중 적어도 한쪽을 암호문으로 치환한 뒤에 상기 데이터베이스 시스템에 송신하는 것을 특징으로 하는 부기 47에 기재된 데이터베이스 암호화 방법.
(부기 49)
상기 데이터베이스 시스템은, 상기 기밀도 정보에 대응한 암호 알고리즘으로 암호화되는 데이터에 대하여 상기 제3 기억부의 암호 프로토콜 식별 정보에 기초하여, 상기 데이터베이스 조작 명령에 대응한 처리 내용의 암호 프로토콜 처리를 실행하는 암호 프로토콜 처리 실행부를 구비하고 있는 것을 특징으로 하는 부기 47에 기재된 데이터베이스 암호화 방법.
(부기 50)
상기 데이터베이스 시스템은, 상기 데이터베이스 조작 명령의 연산 조작에 대해서, 상기 데이터베이스에 암호문으로 저장되어 있는 조작 대상의 데이터가, 미리 정해진 소정의 준동형 연산에 대응한 암호 알고리즘으로 암호화되어 있고, 또한, 상기 데이터베이스 조작 명령의 상기 연산 조작이 상기 소정의 준동형 연산을 포함하는 경우, 상기 조작 대상의 암호화된 데이터에 대하여 암호문인 상태로 상기 연산 조작을 행하고, 암호문의 연산 결과를, 상기 데이터베이스 처리 결과로서 상기 유저 시스템에 송신하고,
상기 유저 시스템에서는,
(A) 상기 데이터베이스 시스템으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호한 평문의 연산 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주거나,
(B) 상기 데이터베이스 조작 명령의 연산 조작이, 또한 평문으로의 연산을 필요로 하는 것인 경우에는, 또한 상기 평문으로의 연산을 행하여, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주고,
또는,
상기 유저 시스템은,
(C) 상기 데이터베이스 시스템으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호하고, 얻어진 평문의 연산 결과에 대하여, 평문으로의 연산을 더 행하고,
(D) 상기 평문의 연산 결과를, 상기 키 이용 수단의 키 정보를 사용하여 암호화한 뒤에, 상기 데이터베이스 시스템에 송신하여, 상기 데이터베이스 시스템에서 암호문인 상태로 연산 조작을 행하고,
(E) 상기 데이터베이스 시스템으로부터 송신된 암호문의 연산 결과를 상기 키 정보를 사용해서 복호하여 평문으로 하고,
(F) 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주거나, 상기 평문의 연산 결과에 대하여 연산을 더 행하고, 또는, (D)와 (E)의 처리를 적어도 1회 더 반복한 뒤에, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 부기 38 내지 49 중 어느 하나에 기재된 데이터베이스 암호화 방법.
(부기 51)
상기 데이터베이스 시스템은, 상기 데이터베이스에, 암호문으로 저장되어 있는 조작 대상의 데이터가 암호문인 상태로는 상기 데이터베이스 조작 명령의 연산 조작을 행할 수 없는 암호 알고리즘으로 암호화되어 있는 경우, 상기 연산 조작 대상의 암호문의 데이터를, 상기 유저 시스템에 송신하고,
상기 유저 시스템에서는, 상기 데이터베이스 시스템으로부터 송신된 상기 암호문의 데이터를 상기 키 이용 수단의 키 정보를 사용해서 복호하고, 얻어진 평문의 데이터에 대하여 상기 데이터베이스 조작 명령의 연산 조작을 행하고, 상기 연산 조작 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 부기 38 내지 49 중 어느 하나에 기재된 데이터베이스 암호화 방법.
(부기 52)
상기 안정성의 설정 입력에 의해, 상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화할 경우,
상기 데이터베이스 시스템은, 상기 데이터베이스로부터 칼럼 데이터를 판독하고,
상기 유저 시스템은, 상기 제1 및/또는 제2 기억부를 참조하여, 상기 데이터베이스로부터 판독이 행하여진 상기 칼럼 데이터에 대하여, 설정된 기밀도 정보에 대응하는 암호 알고리즘으로 상기 키 이용 수단의 키 정보를 사용해서 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
상기 데이터베이스 시스템은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
상기 데이터베이스 시스템은, 상기 암호문 테이블의 관리를 위해서,
테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는 부기 45 또는 48에 기재된 데이터베이스 암호화 방법.
(부기 53)
상기 데이터베이스 시스템이, 상기 어플리케이션 응답 수단으로부터 송신된 공개 키를 사용하여 데이터 및/또는 메타데이터를 암호화하는 것을 특징으로 하는 부기 38 내지 51 중 어느 하나에 기재된 데이터베이스 암호화 방법.
(부기 54)
상기 안정성의 설정 입력에 의해, 상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화할 경우,
상기 데이터베이스 시스템은, 상기 데이터베이스로부터 칼럼 데이터를 판독하여, 상기 어플리케이션 응답 수단으로부터 공개 키 정보를 취득하고, 상기 암호 연산부에서 상기 칼럼 데이터에 대하여 암호화를 행하고,
상기 데이터베이스 시스템은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
상기 데이터베이스 시스템은, 상기 암호문 테이블의 관리를 위해서,
테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는 부기 53에 기재된 데이터베이스 암호화 방법.
(부기 55)
상기 유저 시스템이, 칼럼 데이터를 추가하는 데이터베이스 조작 명령을 입력하고, 상기 칼럼 데이터의 암호화가 필요한 경우, 상기 칼럼 데이터에 대응하는 암호 알고리즘으로 상기 추가 데이터를 상기 키 정보를 사용해서 암호화하여 상기 데이터베이스 시스템에 송신하고,
상기 데이터베이스 시스템은, 상기 데이터베이스의 상기 암호문 테이블의 말미에 갱신한 일련 번호와 암호문의 쌍을 추가하는 것을 특징으로 하는 부기 52에 기재된 데이터베이스 암호화 방법.
(부기 56)
상기 안전성의 설정에 있어서, 상기 데이터베이스에 기억되어 있는 데이터의 기밀도 정보의 변경의 지시를 받으면, 상기 유저 시스템은, 상기 데이터베이스에 저장된, 암호화된 데이터에 대해서, 일단, 상기 키 정보를 사용하여 평문으로 복호화하고, 상기 평문을, 변경된 상기 기밀도 정보에 대응하는 암호 알고리즘으로 재암호화한 뒤에 상기 데이터베이스 시스템에 송신하고, 상기 데이터베이스에 재암호화한 데이터를 저장하고, 상기 제1 기억부의 기밀도 정보와 암호 알고리즘 식별 정보를 갱신하는 것을 특징으로 하는 부기 40에 기재된 데이터베이스 암호화 방법.
(부기 57)
상기 안전성의 설정에 있어서, 상기 데이터베이스에 기억되어 있는 데이터의 기밀도 정보를 변경함에 있어서, 테이블명, 칼럼명, 변경 후의 기밀도 정보를 지정하고,
상기 유저 시스템은, 상기 제2 기억부로부터 상기 데이터베이스에 기억되어 있는 상기 테이블명, 칼럼명의 상기 데이터의 암호화에 사용되고 있는 암호 알고리즘 식별자의 제1 집합을 취득하고, 입력된 기밀도 정보에 대응하는 암호 알고리즘 식별자의 제2 집합을 취득하고,
상기 제1, 제2 집합에 공통인 암호 알고리즘 식별자가 존재하지 않는 경우, 상기 제1 집합 중 1개의 암호 알고리즘 식별자의 암호 알고리즘으로 암호화되어 있는, 상기 테이블명, 칼럼명의 상기 데이터의 암호문을, 상기 키 정보를 사용하여 평문으로 복호하고, 상기 평문을, 상기 제2 집합의 상기 입력된 기밀도 정보에 대응하는 암호 알고리즘으로 암호화하여 상기 데이터베이스 시스템에 송신하고,
상기 데이터베이스 시스템은, 암호문 테이블에 일련 번호, 암호문의 쌍을 저장한 뒤에 상기 암호문 테이블 정보표를 갱신하고, 상기 기밀도 정보의 변경이 지정된 데이터에 관해서, 지정된 기밀도 정보에 대응하지 않는 암호문 테이블을 삭제하는 것을 특징으로 하는 부기 56에 기재된 데이터베이스 암호화 방법.
(부기 58)
상기 유저 시스템은, 상기 데이터베이스에 대한 데이터베이스 조작 명령을 발행하고, 상기 데이터베이스 조작 명령의 처리 결과를 수취하는 데이터베이스 이용 어플리케이션 프로그램을 실행하고,
상기 데이터베이스 이용 어플리케이션 프로그램으로부터의 데이터베이스 조작 명령을 수취하고, 상기 데이터베이스 조작 명령의 처리 결과를, 상기 데이터베이스 이용 어플리케이션 프로그램에 돌려주는 것을 특징으로 하는 부기 38 내지 57 중 어느 하나에 기재된 데이터베이스 암호화 방법.
(부기 59)
상기 데이터베이스 시스템은, 상기 유저 시스템으로부터 송신된 상기 데이터베이스 조작 명령을 받아, 상기 데이터베이스에 대하여, 암호화된 데이터에 대한 암호 프로토콜, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를 상기 유저 시스템에 돌려주는 것을 특징으로 하는 부기 38 기재의 데이터베이스 암호화 방법.
(부기 60)
데이터베이스 장치에 네트워크를 통해 접속하는 유저 장치의 컴퓨터에,
암호화와 복호화를 위한 키 정보를 관리하는 키 이용 처리와,
데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하여 제1 기억부에 기억하는 안전성 설정 처리와,
상기 데이터베이스 장치를 향해 발행되는 데이터베이스 조작 명령에 대하여, 상기 제1 기억부의 정보를 참조해서, 상기 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 정보에 의한 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 장치에 송신하여 데이터베이스 조작을 실행시키고,
암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 장치에 송신하여 데이터베이스 조작을 실행시키고,
상기 데이터베이스 장치로부터 송신된 데이터베이스 처리 결과를 수취하고, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 처리에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 어플리케이션 응답 처리,
를 실행시키는 프로그램.
(부기 61)
부기 60의 상기 유저 장치로부터 암호화된 데이터베이스 조작 명령을 수취하면, 상기 데이터베이스에 대하여 암호 프로토콜을 실행하는 처리와,
상기 유저 시스템으로부터 암호화되지 않는 데이터베이스 조작 명령을 수취하면, 상기 데이터베이스에 대하여 평문 데이터의 데이터베이스 조작 실행하는 처리와,
상기 처리 결과를, 상기 유저 시스템에 돌려주는 처리,
를 데이터베이스 제어 장치를 구성하는 컴퓨터에 실행시키는 프로그램.
(부기 62)
부기 60 또는 61의 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
또한, 상기한 특허문헌 1 내지 3, 비특허문헌 1의 각 개시를, 본서에 인용으로써 집어넣는 것으로 한다. 본 발명의 전체 개시(청구범위를 포함함)의 틀 내에서, 또한 그 기본적 기술 사상에 기초하여, 실시 형태 또는 실시예의 변경·조정이 가능하다. 또한, 본 발명의 청구범위의 틀 내에서 다양한 개시 요소(각 부기의 각 요소, 각 실시예의 각 요소, 각 도면의 각 요소 등을 포함함)의 다양한 조합 또는 선택이 가능하다. 즉, 본 발명은 청구범위를 포함하는 전체 개시, 기술적 사상에 따라서 당업자라면 이룰 수 있는 각종 변형, 수정을 포함하는 것은 물론이다.
10 : 데이터베이스 시스템 11 : 데이터베이스
12 : 데이터베이스 제어 수단 13 : 암호 프로토콜 정보 기억부
14 : 안전성 설정 정보 기억부 20 : 유저 시스템
21 : 데이터베이스 이용 어플리케이션(프로그램)
22 : 어플리케이션 응답 수단 23 : 키 이용 수단
24 : 키 정보 기억부 25 : 안전성 설정 정보 일시 기억부
26 : 안전성 설정 수단 27 : 입력/출력 장치
30 : 네트워크 111 : 암호 프로토콜 정보 테이블
112 : 안전성 설정 정보 테이블 121 : 데이터베이스 조작부
122 : 암호 프로토콜 처리 실행부 123 : 암호 프로토콜 정보 조작부
124 : 안전성 설정 정보 조작부 125 : 처리·통신 제어부
126 : 암호 연산부 221 : 처리·통신 제어부
222 : 암호 프로토콜 처리 실행부 223 : 데이터베이스 조작 변환 처리부
224 : 암호 연산부 225 : 안전성 설정 정보 조작부
231 : 암호 연산부 232 : 키 정보 관리부
261 : 설정 표시부 262 : 설정 입력부

Claims (30)

  1. 데이터베이스와, 데이터베이스 조작의 실행을 제어하는 데이터베이스 제어 수단을 구비한 데이터베이스 시스템과,
    상기 데이터베이스 제어 수단에 네트워크를 통해 접속하는 유저 시스템
    을 구비하고,
    상기 유저 시스템이,
    암호화와 복호화를 위한 키 정보를 관리하는 키 이용 수단과,
    상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하는 안전성 설정 수단과,
    상기 안전성의 설정에 관한 정보를 기억하는 제1 기억부와,
    상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령을 수취하고, 상기 제1 기억부의 정보를 참조하여, 상기 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터에 관해서 암호화의 필요 여부를 판별하고,
    암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보에 의해 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행시키고,
    암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 제어 수단에 송신하여 상기 데이터베이스 제어 수단에 상기 데이터베이스 조작을 실행시키고,
    상기 데이터베이스 제어 수단으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우에는, 상기 변환, 또는 상기 키 이용 수단의 키 정보에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 어플리케이션 응답 수단
    을 구비하고 있는 것을 특징으로 하는 데이터베이스 암호화 시스템.
  2. 제1항에 있어서,
    상기 안전성 설정 수단은,
    상기 메타데이터의 암호화의 유무의 설정 또는 변경,
    상기 데이터의 암호화의 유무의 설정 또는 변경,
    상기 안전성의 정도를 나타내는 기밀도 정보의 설정 또는 변경
    중 적어도 하나를 행하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  3. 제2항에 있어서,
    상기 제1 기억부는, 상기 메타데이터의 암호화의 유무, 상기 데이터의 암호화의 유무, 상기 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 유지하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  4. 제3항에 있어서,
    상기 제1 기억부는, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터가 암호화되는 경우, 암호화한 테이블명, 칼럼명을 유지함과 함께, 암호화 전의 평문의 테이블명, 평문의 칼럼명을, 복호 후 테이블명, 복호 후 칼럼명으로서 각각 기억 유지하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  5. 제4항에 있어서,
    상기 어플리케이션 응답 수단은, 상기 데이터베이스 처리 결과의 메타데이터 중 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우, 상기 제1 기억부의 상기 복호 후 테이블명과 상기 복호 후 칼럼명에 유지된 평문의 테이블명과 평문의 칼럼명 중 적어도 한쪽을 취득하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 데이터베이스 제어 수단은, 상기 어플리케이션 응답 수단으로부터 송신된 상기 데이터베이스 조작 명령을 받아, 상기 데이터베이스에 대하여, 암호화된 데이터에 대한 암호 프로토콜을 사용한 데이터베이스 조작, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를, 상기 데이터베이스 처리 결과로서, 상기 어플리케이션 응답 수단에 돌려주는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  7. 제6항에 있어서,
    상기 데이터베이스 제어 수단은, 상기 데이터베이스 조작 명령의 미리 정해진 소정의 조작과 연산에 대해서, 상기 데이터베이스에 저장된 암호문의 데이터를 암호문인 상태로 조작 또는 연산을 행하고, 암호문의 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 송신하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  8. 제4항 내지 제7항 중 어느 한 항에 있어서,
    상기 데이터베이스 시스템은, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 기억 유지하는 제2 기억부와,
    상기 데이터베이스 조작 명령의 처리 내용과, 기밀도 정보와, 암호 알고리즘을 관련짓는 암호 프로토콜 식별 정보를 적어도 기억 유지하는 제3 기억부
    를 구비한 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  9. 제8항에 있어서,
    상기 데이터베이스가, 상기 제2 및/또는 제3 기억부로서 기능하고,
    상기 제2 및/또는 제3 기억부에 기억되는 정보를 상기 데이터베이스 내의 테이블로서 유지하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  10. 제8항 또는 제9항에 있어서,
    상기 어플리케이션 응답 수단은, 상기 제1 내지 제3 기억부 중 적어도 1개를 참조하여, 상기 데이터에 대응하는 기밀도 정보에 대응하는 암호 알고리즘을 선택하고, 선택한 암호 알고리즘과 상기 키 이용 수단의 키 정보를 사용하여 데이터를 암호화해서 상기 데이터베이스 제어 수단에 송신하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  11. 제10항에 있어서,
    상기 어플리케이션 응답 수단은, 상기 데이터베이스 조작 명령으로 지정된 테이블명, 칼럼명의 암호화의 유무를, 상기 제1 및/또는 제2 기억부를 참조하여 판별하고, 상기 테이블명과 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우에는, 상기 데이터베이스 조작 명령의 테이블명과 칼럼명 중 적어도 한쪽을 암호문으로 치환한 뒤에 상기 데이터베이스 제어 수단에 송신하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  12. 제10항에 있어서,
    상기 데이터베이스 제어 수단은, 상기 기밀도 정보에 대응한 암호 알고리즘으로 암호화되는 데이터에 대하여, 상기 제3 기억부의 암호 프로토콜 식별 정보에 기초해서, 상기 데이터베이스 조작 명령에 대응한 처리 내용의 암호 프로토콜 처리를 실행하는 암호 프로토콜 처리 실행부를 구비하고 있는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 데이터베이스 제어 수단은, 상기 데이터베이스 조작 명령의 연산 조작에 대해서, 상기 데이터베이스에 암호문으로 저장되어 있는 조작 대상의 데이터가, 미리 정해진 소정의 준동형 연산에 대응한 암호 알고리즘으로 암호화되어 있고, 또한, 상기 데이터베이스 조작 명령의 상기 연산 조작이 상기 소정의 준동형 연산을 포함하는 경우, 상기 조작 대상의 암호화된 데이터에 대하여 암호문인 상태로 상기 연산 조작을 행하고, 암호문의 연산 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 송신하고,
    상기 어플리케이션 응답 수단에서는,
    (A) 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호한 평문의 연산 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주거나,
    (B) 상기 데이터베이스 조작 명령의 연산 조작이, 또한 평문으로의 연산을 필요로 하는 것인 경우에는, 상기 평문으로의 연산을 더 행하고, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주고,
    또는,
    상기 어플리케이션 응답 수단은,
    (C) 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호하고, 얻어진 평문의 연산 결과에 대하여 평문으로의 연산을 더 행하고,
    (D) 상기 평문의 연산 결과를, 상기 키 이용 수단의 키 정보를 사용하여 암호화한 뒤에, 상기 데이터베이스 제어 수단에 송신하고, 상기 데이터베이스 제어 수단에서, 암호문인 상태로 연산 조작을 행하고,
    (E) 상기 데이터베이스 제어 수단으로부터 송신된 암호문의 연산 결과를 상기 키 이용 수단의 키 정보를 사용하여 복호하여 평문으로 하고,
    (F) 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주거나, 상기 평문의 연산 결과에 대하여 연산을 더 행하고, 또는, 또한 (D)와 (E)의 처리를 적어도 1회 반복한 뒤에, 상기 평문으로의 연산 결과를 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  14. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 데이터베이스 제어 수단은, 상기 데이터베이스에, 암호문으로 저장되어 있는 조작 대상의 데이터가 암호문인 상태에서는 상기 데이터베이스 조작 명령의 연산 조작을 행할 수 없는 암호 알고리즘으로 암호화되어 있는 경우, 상기 연산 조작 대상의 암호문의 데이터를, 상기 어플리케이션 응답 수단에 송신하고,
    상기 어플리케이션 응답 수단에서는, 상기 데이터베이스 제어 수단으로부터 송신된 상기 암호문의 데이터를 상기 키 이용 수단의 키 정보를 사용하여 복호하고, 얻어진 평문의 데이터에 대하여 상기 데이터베이스 조작 명령의 연산 조작을 행하고, 상기 연산 조작 결과를, 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  15. 제8항 또는 제9항에 있어서,
    상기 안정성 설정 수단의 입력에 의해, 상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화하는 경우,
    상기 데이터베이스 제어 수단은, 상기 데이터베이스로부터 칼럼 데이터를 판독하고,
    상기 어플리케이션 응답 수단은, 상기 제1 및/또는 제2 기억부를 참조하여, 상기 데이터베이스로부터 판독이 행하여진 상기 칼럼 데이터에 대하여, 설정된 기밀도 정보에 대응하는 암호 알고리즘으로 상기 키 이용 수단의 키 정보를 사용해서 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
    상기 데이터베이스 제어 수단은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
    상기 데이터베이스 제어 수단은, 상기 암호문 테이블의 관리를 위해서,
    테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  16. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 데이터베이스 제어 수단이, 상기 어플리케이션 응답 수단으로부터 송신된 공개 키를 사용하여 데이터 및/또는 메타데이터를 암호화하는 암호 연산부를 구비한 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  17. 제16항에 있어서,
    상기 안정성 설정 수단의 입력에 의해, 상기 데이터베이스 내의 테이블의 칼럼 데이터를 암호화하는 경우,
    상기 데이터베이스 제어 수단은, 상기 데이터베이스로부터 칼럼 데이터를 판독하여, 상기 어플리케이션 응답 수단으로부터 공개 키 정보를 취득하고, 상기 암호 연산부에서 상기 칼럼 데이터에 대하여 암호화를 행하고,
    상기 데이터베이스 제어 수단은, 일련 번호와 상기 칼럼 데이터의 암호문의 쌍을 포함하는 암호문 테이블을 작성하고,
    상기 데이터베이스 제어 수단은, 상기 암호문 테이블의 관리를 위해서,
    테이블명, 칼럼명, 암호 알고리즘, 암호문 테이블명을 조로서 포함하는 암호문 테이블 정보표를 구비하고 있는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  18. 제15항에 있어서,
    상기 어플리케이션 응답 수단이, 칼럼 데이터를 추가하는 데이터베이스 조작 명령을 입력하고, 상기 칼럼 데이터의 암호화가 필요한 경우, 상기 칼럼 데이터에 대응하는 암호 알고리즘으로 상기 추가 데이터를 상기 키 이용 수단의 키 정보를 사용하여 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
    상기 데이터베이스 제어 수단은, 상기 데이터베이스의 상기 암호문 테이블의 말미에 갱신한 일련 번호와 암호문의 쌍을 추가하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  19. 제3항에 있어서,
    상기 안전성 설정 수단으로부터, 상기 데이터베이스에 기억되어 있는 데이터의 기밀도 정보의 변경의 지시를 받으면, 상기 어플리케이션 응답 수단은, 상기 데이터베이스에 저장된, 암호화된 데이터에 대해서, 일단, 상기 키 이용 수단의 키 정보를 사용하여 평문으로 복호화하고, 상기 평문을, 변경된 상기 기밀도 정보에 대응하는 암호 알고리즘으로 재암호화한 뒤에 상기 데이터베이스 제어 수단에 송신하고, 상기 데이터베이스에 재암호화한 데이터를 저장하여, 상기 제1 기억부의 기밀도 정보와 암호 알고리즘 식별 정보를 갱신하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  20. 제19항에 있어서,
    상기 안전성 설정 수단은, 상기 데이터베이스에 기억되어 있는 데이터의 기밀도 정보를 변경함에 있어서, 테이블명, 칼럼명, 변경 후의 기밀도 정보를 지정하고,
    상기 어플리케이션 응답 수단은, 상기 제2 기억부로부터 상기 데이터베이스에 기억되어 있는 상기 테이블명, 칼럼명의 상기 데이터의 암호화에 사용되고 있는 암호 알고리즘 식별자의 제1 집합을 취득하고, 입력된 기밀도 정보에 대응하는 암호 알고리즘 식별자의 제2 집합을 취득하고,
    상기 제1, 제2 집합에 공통인 암호 알고리즘 식별자가 존재하지 않는 경우, 상기 제1 집합 중 1개의 암호 알고리즘 식별자의 암호 알고리즘으로 암호화되어 있는, 상기 테이블명, 칼럼명의 상기 데이터의 암호문을, 상기 키 이용 수단의 키 정보를 사용하여 평문으로 복호하고, 상기 평문을, 상기 제2 집합의 상기 입력된 기밀도 정보에 대응하는 암호 알고리즘으로 암호화하여 상기 데이터베이스 제어 수단에 송신하고,
    상기 데이터베이스 제어 수단은, 암호문 테이블에 일련 번호, 암호문의 쌍을 저장한 뒤에 상기 암호문 테이블 정보표를 갱신하고, 상기 기밀도 정보의 변경이 지정된 데이터에 관해서, 지정된 기밀도 정보에 대응하지 않는 암호문 테이블을 삭제하는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  21. 제1항 내지 제20항 중 어느 한 항에 있어서,
    상기 유저 시스템은, 상기 데이터베이스에 대한 데이터베이스 조작 명령을 발행하고, 상기 데이터베이스 조작 명령의 처리 결과를 수취하는 데이터베이스 이용 어플리케이션 프로그램을 실행하고,
    상기 어플리케이션 응답 수단은, 상기 데이터베이스 이용 어플리케이션 프로그램으로부터의 데이터베이스 조작 명령을 수취하고, 상기 데이터베이스 조작 명령의 처리 결과를, 상기 데이터베이스 이용 어플리케이션 프로그램에 돌려주는 것을 특징으로 하는, 데이터베이스 암호화 시스템.
  22. 데이터베이스 장치에 네트워크를 통해 접속하는 유저 장치가,
    암호화와 복호화를 위한 키 정보를 관리하는 키 이용 수단과,
    데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하는 안전성 설정 수단과,
    상기 안전성 설정 수단에서 설정되는 정보를 기억하는 제1 기억부와,
    상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령을 수취하고, 상기 제1 기억부의 정보를 참조하여, 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터에 관해서 암호화의 필요 여부를 판별하고,
    암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보에 의한 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 제어 수단에 송신하여, 상기 데이터베이스 제어 수단에 데이터베이스 조작을 실행시키고,
    암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 제어 수단에 송신하여 데이터베이스 조작을 실행하고,
    상기 데이터베이스 제어 수단으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 수단의 키 정보에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 어플리케이션 응답 수단
    을 구비하고 있는 것을 특징으로 하는 유저 장치.
  23. 제22항에 있어서,
    상기 안전성 설정 수단은, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 상기 메타데이터의 암호화의 유무의 설정 또는 변경, 상기 데이터의 암호화의 유무의 설정 또는 변경, 데이터의 안전성의 정도를 나타내는 기밀도 정보의 설정 또는 변경 중 적어도 1개를 행하는 것을 특징으로 하는, 유저 장치.
  24. 제23항에 있어서,
    상기 제1 기억부는, 상기 데이터베이스에 저장되는 테이블명, 칼럼명을 포함하는 메타데이터의 암호화의 유무, 데이터의 암호화의 유무, 데이터의 안전성의 정도를 나타내는 기밀도 정보, 상기 기밀도 정보에 대응한 암호 알고리즘의 식별 정보를 유지하고,
    상기 테이블명, 칼럼명이 암호화되어 있는 경우,
    암호화된 테이블명, 칼럼명 외에도,
    암호화 전의 평문의 테이블명, 평문의 칼럼명을, 복호 후 테이블명, 칼럼명으로서 기억 유지하는 것을 특징으로 하는, 유저 장치.
  25. 제24항에 있어서,
    상기 어플리케이션 응답 수단은, 상기 데이터베이스 조작 명령으로 지정된 테이블명, 칼럼명이 암호화되어 있는지 여부를, 상기 제1 기억부를 참조하여 판별하고,
    상기 테이블명, 칼럼명 중 적어도 한쪽이 암호화되어 있는 경우에는, 평문을 암호문으로 치환하고,
    상기 제1 기억부를 참조하여, 데이터를 암호화하는 경우에는, 상기 기밀도 정보에 대응한 암호 알고리즘을 사용하여 상기 키 이용 수단의 키 정보를 사용해서 데이터를 암호화하여 상기 데이터베이스 장치에 송신하는 것을 특징으로 하는, 유저 장치.
  26. 제22항 내지 제25항 중 어느 한 항의 상기 유저 장치로부터 송신된 데이터베이스 조작 명령을 수취하고, 상기 데이터베이스에 대하여, 암호화된 데이터에 대한 암호 프로토콜을 사용한 데이터베이스 조작, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를, 상기 데이터베이스 처리 결과로서 상기 어플리케이션 응답 수단에 돌려주는 것을 특징으로 하는 데이터베이스 장치.
  27. 데이터베이스 시스템에 네트워크를 통해 접속하는 유저 시스템에서, 암호화와 복호화를 위한 키 정보를 기억 관리하고,
    또한, 상기 데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하여 제1 기억부에 기억하고,
    상기 데이터베이스 시스템을 향해 발행되는 데이터베이스 조작 명령에 대하여, 상기 제1 기억부의 정보를 참조하여, 상기 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
    암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용해서 상기 키 정보에 의한 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 시스템에 송신하여 데이터베이스 조작을 실행시키고,
    암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 시스템에 송신하여 데이터베이스 조작을 실행시키고,
    상기 데이터베이스 시스템으로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환, 또는 상기 키 정보에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 것을 특징으로 하는 데이터베이스 암호화 방법.
  28. 제27항에 있어서,
    상기 데이터베이스 시스템은, 상기 유저 시스템으로부터 송신된 상기 데이터베이스 조작 명령을 받아, 상기 데이터베이스에 대하여, 암호화된 데이터에 대한 암호 프로토콜, 또는, 평문 데이터에 대한 데이터베이스 조작을 실행하고, 처리 결과를 상기 유저 시스템에 돌려주는 것을 특징으로 하는, 데이터베이스 암호화 방법.
  29. 데이터베이스 장치에 네트워크를 통해 접속하는 유저 장치의 컴퓨터에,
    암호화와 복호화를 위한 키 정보를 관리하는 키 이용 처리와,
    데이터베이스에 저장되는 데이터 및/또는 메타데이터의 안전성의 설정에 관한 정보를 설정하여 제1 기억부에 기억하는 안전성 설정 처리와,
    상기 데이터베이스 장치를 향해 발행되는 데이터베이스 조작 명령에 대하여, 상기 제1 기억부의 정보를 참조해서, 상기 데이터베이스 조작 명령으로 취급하는 데이터 및/또는 메타데이터의 암호화의 필요 여부를 판별하고,
    암호화가 필요한 경우, 상기 데이터베이스 조작 명령의 데이터 및/또는 메타데이터로서, 상기 데이터 및/또는 메타데이터의 안전성에 대응한 암호 알고리즘을 사용하여 상기 키 정보에 의한 암호화를 행한 암호화 데이터 및/또는 암호화 메타데이터를, 상기 데이터베이스 장치에 송신하여 데이터베이스 조작을 실행시키고,
    암호화가 불필요한 경우에는, 상기 데이터베이스 조작 명령을 그대로 상기 데이터베이스 장치에 송신하여 데이터베이스 조작을 실행시키고,
    상기 데이터베이스 장치로부터 송신된 데이터베이스 처리 결과를 수취하여, 상기 데이터베이스 처리 결과의 데이터 및/또는 메타데이터의 변환 또는 복호화가 필요한 경우, 상기 변환 또는 상기 키 이용 처리에 의한 복호화를 행한 결과를, 상기 데이터베이스 조작 명령의 응답으로서 상기 데이터베이스 조작 명령의 발행원에 돌려주는 어플리케이션 응답 처리
    를 실행시키는 프로그램.
  30. 제29항의 상기 유저 장치로부터 암호화된 데이터베이스 조작 명령을 수취하면, 상기 데이터베이스에 대하여 암호 프로토콜을 실행하는 처리와,
    상기 유저 시스템으로부터 암호화되지 않은 데이터베이스 조작 명령을 수취하면, 상기 데이터베이스에 대하여 평문 데이터의 데이터베이스 조작 실행하는 처리와,
    상기 처리 결과를, 상기 유저 시스템에 돌려주는 처리
    를 데이터베이스 제어 장치를 구성하는 컴퓨터에 실행시키는 프로그램.
KR1020137013395A 2011-11-11 2012-11-09 데이터베이스 암호화 시스템과 방법 및 컴퓨터 판독가능 기록 매체 KR101388724B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2011-247908 2011-11-11
JP2011247908 2011-11-11
PCT/JP2012/079149 WO2013069776A1 (ja) 2011-11-11 2012-11-09 データベース暗号化システムと方法及びプログラム

Publications (2)

Publication Number Publication Date
KR20130079607A true KR20130079607A (ko) 2013-07-10
KR101388724B1 KR101388724B1 (ko) 2014-04-25

Family

ID=48290143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137013395A KR101388724B1 (ko) 2011-11-11 2012-11-09 데이터베이스 암호화 시스템과 방법 및 컴퓨터 판독가능 기록 매체

Country Status (6)

Country Link
US (2) US8812877B2 (ko)
EP (1) EP2778951B1 (ko)
JP (2) JP5344109B1 (ko)
KR (1) KR101388724B1 (ko)
CN (1) CN103392178B (ko)
WO (1) WO2013069776A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180126853A (ko) * 2017-05-18 2018-11-28 뱅크웨어글로벌 주식회사 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법
KR20200140916A (ko) * 2018-05-02 2020-12-16 아마존 테크놀로지스, 인크. 키 관리 시스템 및 방법
KR20220043445A (ko) * 2020-09-29 2022-04-05 주식회사 에임시스 기밀정보 분석 방법 및 장치
WO2023211121A1 (ko) * 2022-04-28 2023-11-02 프라이빗테크놀로지 주식회사 프록시에 기반하여 애플리케이션의 파일 송신 및 수신을 제어하기 위한 시스템 및 그에 관한 방법

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449178B2 (en) * 2012-07-24 2016-09-20 ID Insight System, method and computer product for fast and secure data searching
US20140237252A1 (en) * 2012-12-31 2014-08-21 Safelylocked, Llc Techniques for validating data exchange
US9215067B2 (en) * 2013-04-05 2015-12-15 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
WO2014179367A1 (en) * 2013-04-29 2014-11-06 Hughes Network Systems, Llc Data encryption protocols for mobile satellite communications
EP2809027B1 (en) * 2013-05-30 2018-09-12 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Method and system for reconstruction of a data object from distributed redundant data parts
JP5976932B2 (ja) * 2013-06-18 2016-08-24 株式会社日立製作所 保持数検証システム
US9118631B1 (en) * 2013-08-16 2015-08-25 Google Inc. Mixing secure and insecure data and operations at server database
US20150082054A1 (en) * 2013-08-21 2015-03-19 Venux LLC System and Method for Establishing a Secure Digital Environment
US9672200B1 (en) * 2013-11-06 2017-06-06 Apttex Corporation Spreadsheet with dynamic cell dimensions generated by a spreadsheet template based on remote application values
CN103699855B (zh) * 2013-12-05 2018-04-27 华为技术有限公司 一种数据处理方法和装置
US10380352B2 (en) * 2014-02-04 2019-08-13 International Business Machines Corporation Document security in enterprise content management systems
JP6273951B2 (ja) * 2014-03-24 2018-02-07 富士通株式会社 暗号化装置、暗号化方法、情報処理装置および暗号化システム
KR101670496B1 (ko) * 2014-08-27 2016-10-28 주식회사 파수닷컴 데이터 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체, 데이터 관리 방법을 실행하는 사용자 클라이언트
US9900287B1 (en) 2014-09-12 2018-02-20 Verily Life Sciences, LLC Transmitting sensitive information securely over unsecured networks without authentication
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
CN104363288B (zh) * 2014-11-18 2018-09-14 深圳市大成天下信息技术有限公司 一种文档管理系统和方法
WO2016078006A1 (zh) * 2014-11-19 2016-05-26 华为技术有限公司 一种定向统计流量的方法、设备及系统
GB2533098B (en) * 2014-12-09 2016-12-14 Ibm Automated management of confidential data in cloud environments
CN104517066A (zh) * 2014-12-16 2015-04-15 上海师范大学 一种文件夹加密方法
US9537838B2 (en) 2014-12-22 2017-01-03 Sap Se Adjustable proxy re-encryption
US9516065B2 (en) * 2014-12-23 2016-12-06 Freescale Semiconductor, Inc. Secure communication device and method
US9547720B2 (en) 2014-12-24 2017-01-17 Sap Se Access control for encrypted query processing
AU2016219159B2 (en) * 2015-02-12 2021-05-13 Visa International Service Association Multi-party encryption cube processing apparatuses, methods and systems
US20160267279A1 (en) * 2015-03-02 2016-09-15 Cirrus Lender Services, Inc. Web application perpetually encrypted obscured filesystem
JP6186387B2 (ja) * 2015-03-19 2017-08-23 株式会社日立製作所 秘匿データ処理システム
US9875370B2 (en) * 2015-03-26 2018-01-23 Microsoft Technology Licensing, Llc Database server and client for query processing on encrypted data
US9727742B2 (en) 2015-03-30 2017-08-08 Airbnb, Inc. Database encryption to provide write protection
US9626410B2 (en) * 2015-03-31 2017-04-18 International Business Machines Corporation Vertically partitioned databases
US10482263B2 (en) 2015-04-01 2019-11-19 Microsoft Technology Licensing, Llc Computing on encrypted data using deferred evaluation
KR102442269B1 (ko) * 2015-04-10 2022-09-08 피씨엠에스 홀딩스, 인크. 클라우드 컴퓨팅 프로세스의 위임을 위한 시스템 및 방법
JP6493522B2 (ja) * 2015-05-07 2019-04-03 日本電気株式会社 秘密計算データ利用システムと方法と装置並びにプログラム
KR102423885B1 (ko) * 2015-05-08 2022-07-21 한국전자통신연구원 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
JP6542883B2 (ja) * 2015-05-14 2019-07-10 日本電信電話株式会社 データベースシステム、データベース処理方法
US9742556B2 (en) 2015-08-25 2017-08-22 International Business Machines Corporation Comparison and search operations of encrypted data
CN106484378B (zh) * 2015-08-28 2019-08-09 阿里巴巴集团控股有限公司 一种无落地的数据处理方法及装置
CN105141416A (zh) * 2015-10-14 2015-12-09 公安部第三研究所 基于硬件芯片的用户权限分发控制系统及方法
EP3425613A4 (en) 2016-03-02 2019-10-30 Hitachi, Ltd. KEY GENERATING DEVICE, COMPUTER SYSTEM AND STATISTICAL ENCRYPTION METHOD
EP3438846B1 (en) 2016-03-28 2022-07-20 Hitachi, Ltd. Database system and data retrieval system
US10210266B2 (en) * 2016-05-25 2019-02-19 Microsoft Technology Licensing, Llc Database query processing on encrypted data
WO2018000317A1 (en) * 2016-06-30 2018-01-04 Nokia Technologies Oy Secure data processing
US11210406B2 (en) 2016-07-15 2021-12-28 Seagate Technology Llc Encrypting system level data structures
US10296757B2 (en) * 2016-07-29 2019-05-21 Sap Se Appended key ID for key identification during data encryption
US10395060B2 (en) 2016-10-17 2019-08-27 Microsoft Technology Licensing, Llc Multiple message retrieval for secure electronic communication
US10291592B2 (en) 2016-10-17 2019-05-14 Microsoft Technology Licensing, Llc Secure electronic communication
EP3535924A4 (en) * 2016-11-04 2020-06-17 Nokia Technologies Oy SECURE DISTRIBUTED DATA PROCESSING
CN106452723B (zh) * 2016-12-13 2017-05-31 深圳市全同态科技有限公司 一种基于模运算的全同态加密处理方法
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
WO2018134922A1 (ja) * 2017-01-18 2018-07-26 三菱電機株式会社 準同型演算装置、暗号システム及び準同型演算プログラム
US10303895B1 (en) * 2017-01-19 2019-05-28 Intuit Inc. System and method for perpetual rekeying of various data columns with respective encryption keys and on alternating bases
US10644876B2 (en) 2017-01-20 2020-05-05 Enveil, Inc. Secure analytics using homomorphic encryption
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
WO2018136811A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. Secure web browsing via homomorphic encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
JP2018128602A (ja) * 2017-02-09 2018-08-16 日本電気株式会社 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム
CN108809906B (zh) 2017-05-03 2020-07-07 腾讯科技(深圳)有限公司 数据处理方法、系统及装置
CN107392014B (zh) * 2017-06-23 2021-04-30 复旦大学 基于数据库结构随机变化的sql注入防御方法和系统
JP6302592B2 (ja) * 2017-06-23 2018-03-28 株式会社エヌ・ティ・ティ・データ 情報処理装置、情報処理方法およびプログラム
CN107317819A (zh) * 2017-07-13 2017-11-03 北京邮电大学 基于可信数据格式的通用数据的加密方法、解密方法及其装置
CN109933994B (zh) * 2017-12-18 2024-03-29 北京三快在线科技有限公司 数据分级存储方法和装置以及计算设备
CA3086236A1 (en) 2017-12-18 2019-06-27 Beijing Sankuai Online Technology Co., Ltd Encrypted storage of data
US10528556B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
US10528557B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
JP6709243B2 (ja) * 2018-03-01 2020-06-10 株式会社エヌ・ティ・ティ・データ 情報処理装置
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
US10204236B1 (en) 2018-05-30 2019-02-12 Drfirst.Com, Inc. Self-consistent structures for secure transmission and temporary storage of sensitive data
US10979403B1 (en) * 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
US10872166B2 (en) * 2018-09-12 2020-12-22 Netz Forecasts Ltd. Systems and methods for secure prediction using an encrypted query executed based on encrypted data
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
CN109492415A (zh) * 2018-11-06 2019-03-19 深圳市东宝信息技术有限公司 一种基于敏感数字的安全存储方法及系统
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
US10984137B2 (en) * 2019-02-15 2021-04-20 Charter Communications Operating, Llc Secure data at rest
CN109960942B (zh) * 2019-03-27 2021-04-27 厦门商集网络科技有限责任公司 基于数据库连接池的数据库数据加解密方法及其系统
CN110321345A (zh) * 2019-05-22 2019-10-11 嘉兴天盾安全技术服务有限公司 一种数据加密储存方法
CN112307056B (zh) * 2019-07-31 2024-02-06 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
US11424920B2 (en) * 2019-08-19 2022-08-23 Red Hat, Inc. Proof-of-work key wrapping for cryptographically controlling data access
US11303437B2 (en) 2019-08-19 2022-04-12 Red Hat, Inc. Proof-of-work key wrapping with key thresholding
US11271734B2 (en) 2019-08-19 2022-03-08 Red Hat, Inc. Proof-of-work key wrapping for verifying device capabilities
US11411728B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with individual key fragments
US11316839B2 (en) 2019-08-19 2022-04-26 Red Hat, Inc. Proof-of-work key wrapping for temporally restricting data access
US11436352B2 (en) 2019-08-19 2022-09-06 Red Hat, Inc. Proof-of-work key wrapping for restricting data execution based on device capabilities
US11411938B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
KR20210043906A (ko) * 2019-10-14 2021-04-22 삼성에스디에스 주식회사 데이터 암호화 방법 및 장치, 데이터 복호화 방법 및 장치
US11568063B1 (en) 2019-11-22 2023-01-31 Amazon Technologies, Inc. Database with client-controlled encryption key
US11860673B1 (en) * 2019-11-22 2024-01-02 Amazon Technologies, Inc. Database with client-controlled encryption key
US11595205B1 (en) 2019-11-22 2023-02-28 Amazon Technologies, Inc. Database with client-controlled encryption key
US11489821B2 (en) 2020-02-26 2022-11-01 International Business Machines Corporation Processing a request to initiate a secure data transfer in a computing environment
US11652616B2 (en) 2020-02-26 2023-05-16 International Business Machines Corporation Initializing a local key manager for providing secure data transfer in a computing environment
US11310036B2 (en) 2020-02-26 2022-04-19 International Business Machines Corporation Generation of a secure key exchange authentication request in a computing environment
US11405215B2 (en) * 2020-02-26 2022-08-02 International Business Machines Corporation Generation of a secure key exchange authentication response in a computing environment
US11546137B2 (en) 2020-02-26 2023-01-03 International Business Machines Corporation Generation of a request to initiate a secure data transfer in a computing environment
US11184160B2 (en) 2020-02-26 2021-11-23 International Business Machines Corporation Channel key loading in a computing environment
US11502834B2 (en) 2020-02-26 2022-11-15 International Business Machines Corporation Refreshing keys in a computing environment that provides secure data transfer
CN111740826B (zh) * 2020-07-20 2021-06-18 腾讯科技(深圳)有限公司 基于加密代理网关的加密方法、解密方法、装置及设备
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112199703B (zh) * 2020-10-22 2022-09-06 福建天晴数码有限公司 一种基于客户端的web数据动态加密传输方法及其系统
US11809589B2 (en) * 2021-01-21 2023-11-07 Dell Products L.P. Secure data structure for database system
CN113407304B (zh) * 2021-05-28 2023-04-11 济南浪潮数据技术有限公司 一种虚拟机调度和安全访问方法、装置、设备及可读介质
CN113591113B (zh) * 2021-07-29 2024-04-05 华控清交信息科技(北京)有限公司 一种隐私计算方法、装置、系统及电子设备
CN114422237B (zh) * 2022-01-18 2023-08-18 百度在线网络技术(北京)有限公司 数据传输方法及装置、电子设备和介质
US11818109B1 (en) * 2022-08-19 2023-11-14 Uab 360 It Secure synchronization of data
CN116910791B (zh) * 2023-09-12 2023-12-12 闪捷信息科技有限公司 数据库表列加密分析方法、装置、电子设备和存储介质
CN117251871B (zh) * 2023-11-16 2024-03-01 支付宝(杭州)信息技术有限公司 针对密态数据库的数据处理方法和系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9712459D0 (en) * 1997-06-14 1997-08-20 Int Computers Ltd Secure database system
JPH11143780A (ja) 1997-11-05 1999-05-28 Hitachi Ltd データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置
US20010011349A1 (en) * 1998-09-03 2001-08-02 Greg B. Garrison System and method for encrypting a data session between a client and a server
US7093137B1 (en) 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
JP4003203B2 (ja) 2000-08-10 2007-11-07 サイファーゲート株式会社 暗号化プログラムを記録した記録媒体及び復号化プログラムを記録した記録媒体
US7111005B1 (en) 2000-10-06 2006-09-19 Oracle International Corporation Method and apparatus for automatic database encryption
JP2002169808A (ja) * 2000-11-30 2002-06-14 Hitachi Ltd セキュアマルチデータベースシステム
JP4050050B2 (ja) * 2001-12-17 2008-02-20 株式会社アクアキャスト リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法
US20030187848A1 (en) * 2002-04-02 2003-10-02 Hovhannes Ghukasyan Method and apparatus for restricting access to a database according to user permissions
JP2004234344A (ja) 2003-01-30 2004-08-19 Kddi Corp データベースアクセスシステム
US7418600B2 (en) * 2003-03-13 2008-08-26 International Business Machines Corporation Secure database access through partial encryption
US7401233B2 (en) * 2003-06-24 2008-07-15 International Business Machines Corporation Method, system, and apparatus for dynamic data-driven privacy policy protection and data sharing
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
US7395437B2 (en) * 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
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
US7593942B2 (en) * 2004-12-30 2009-09-22 Oracle International Corporation Mandatory access control base
US7814076B2 (en) * 2004-12-30 2010-10-12 Oracle International Corporation Data vault
US7539682B2 (en) * 2005-03-14 2009-05-26 Microsoft Corporation Multilevel secure database
US7761704B2 (en) * 2005-03-17 2010-07-20 Oracle International Corporation Method and apparatus for expiring encrypted data
US7844829B2 (en) * 2006-01-18 2010-11-30 Sybase, Inc. Secured database system with built-in antivirus protection
US8661263B2 (en) * 2006-09-29 2014-02-25 Protegrity Corporation Meta-complete data storage
KR100859162B1 (ko) 2007-10-16 2008-09-19 펜타시큐리티시스템 주식회사 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법
JP2009211384A (ja) 2008-03-04 2009-09-17 Ntt Docomo Inc 検索代理装置及び検索代理方法
US8213620B1 (en) * 2008-11-17 2012-07-03 Netapp, Inc. Method for managing cryptographic information
JP5140026B2 (ja) 2009-03-19 2013-02-06 株式会社日立製作所 データベース処理方法、データベース処理プログラム、および、暗号化装置
JP5573293B2 (ja) 2010-03-30 2014-08-20 富士通株式会社 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム
JP5496756B2 (ja) 2010-04-16 2014-05-21 日本電信電話株式会社 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体
CN102024054A (zh) * 2010-12-10 2011-04-20 中国科学院软件研究所 一种面向密文云存储的文档检索方法与系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180126853A (ko) * 2017-05-18 2018-11-28 뱅크웨어글로벌 주식회사 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법
KR20200140916A (ko) * 2018-05-02 2020-12-16 아마존 테크놀로지스, 인크. 키 관리 시스템 및 방법
KR20220043445A (ko) * 2020-09-29 2022-04-05 주식회사 에임시스 기밀정보 분석 방법 및 장치
WO2023211121A1 (ko) * 2022-04-28 2023-11-02 프라이빗테크놀로지 주식회사 프록시에 기반하여 애플리케이션의 파일 송신 및 수신을 제어하기 위한 시스템 및 그에 관한 방법

Also Published As

Publication number Publication date
CN103392178B (zh) 2015-08-26
EP2778951B1 (en) 2017-04-26
US20130246813A1 (en) 2013-09-19
WO2013069776A1 (ja) 2013-05-16
US8812877B2 (en) 2014-08-19
EP2778951A1 (en) 2014-09-17
JP5679018B2 (ja) 2015-03-04
KR101388724B1 (ko) 2014-04-25
JP2014013582A (ja) 2014-01-23
US20150006908A1 (en) 2015-01-01
JPWO2013069776A1 (ja) 2015-04-02
US9349023B2 (en) 2016-05-24
CN103392178A (zh) 2013-11-13
EP2778951A4 (en) 2015-05-13
JP5344109B1 (ja) 2013-11-20

Similar Documents

Publication Publication Date Title
KR101388724B1 (ko) 데이터베이스 암호화 시스템과 방법 및 컴퓨터 판독가능 기록 매체
JP6048414B2 (ja) データベース装置と方法及びプログラム
US10235539B2 (en) Server device, recording medium, and concealed search system
JP4958246B2 (ja) 高速検索可能な暗号化のための方法、装置およびシステム
JP4685782B2 (ja) データベースのカラムを暗号化するための方法および装置
KR101302135B1 (ko) 위탁 서비스를 위한 데이터의 부분 암복호화 방법 및 그 장치
JP5916852B2 (ja) 依頼−回答メッセージ待ち行列作成環境に関連付けられた動的データ保護ポリシー
US8688969B2 (en) Cryptographic management apparatus, decryption management apparatus and program
US20150113292A1 (en) Client computer for querying a database stored on a server via a network
US20170099144A1 (en) Embedded encryption platform comprising an algorithmically flexible multiple parameter encryption system
JP6364287B2 (ja) データ秘匿・復元装置、方法およびプログラム、データ秘匿・復元システム、ならびに帳票作成装置
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
JP2009510616A (ja) データベース内の機密データを保護するためのシステム及び方法
CN111884986A (zh) 一种数据加密处理方法及装置
JP4289817B2 (ja) 情報管理装置及び方法
EP3809300A1 (en) Method and apparatus for data encryption, method and apparatus for data decryption
CN113517981B (zh) 一种密钥管理方法、代码版本的管理方法及装置
CN111639349B (zh) 一种数据加密处理方法、装置和存储介质
JP7325872B1 (ja) 秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法
JP2012159919A (ja) 電子データ管理システム、サーバ装置、電子データ管理方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
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: 20170322

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 6