JP2008124837A - Data management system - Google Patents

Data management system Download PDF

Info

Publication number
JP2008124837A
JP2008124837A JP2006307095A JP2006307095A JP2008124837A JP 2008124837 A JP2008124837 A JP 2008124837A JP 2006307095 A JP2006307095 A JP 2006307095A JP 2006307095 A JP2006307095 A JP 2006307095A JP 2008124837 A JP2008124837 A JP 2008124837A
Authority
JP
Japan
Prior art keywords
database
registration
server
data
encryption key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006307095A
Other languages
Japanese (ja)
Inventor
Masao Hijikata
正夫 土方
Yoshitaka Ashida
良貴 蘆田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Waseda University
Original Assignee
Waseda University
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 Waseda University filed Critical Waseda University
Priority to JP2006307095A priority Critical patent/JP2008124837A/en
Publication of JP2008124837A publication Critical patent/JP2008124837A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To appropriately restrict access even when a secondary data base is disclosed. <P>SOLUTION: The data management system is constituted by including a DB server 100 and a key management server 200. The key management server 200 is provided with: a DB use/registration request input port 206 which receives a registration request for registering a data base including data of a data base of the DB server 100 in the DB server 100 together with a use permission condition and a registration permission condition of the data base from a client terminal 300; a DB registration condition propriety judgment module 211 which judges whether or not the use permission condition and the registration permission condition meet a registration permission condition of a data base at an acquisition source; and an encryption key generation module 212 which generates and transmits an encryption key for registration for encrypting the data base for registration to the DB server 100 when the use permission condition and the registration permission condition are judged to meet the registration permission condition. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、データベースサーバに格納されているデータベースをセキュアに利用可能に管理するデータ管理システムに関する。   The present invention relates to a data management system that manages a database stored in a database server in a secure and usable manner.

最近、機密のデータベースを無断で外に持ち出して自宅のパソコンに入れて使用しているうちにファイル交換システム等を通じてインターネット上に流出するという事件が相次いでおり、機密データの保護が危機に晒されている。このような危機を防ぐために、データベースへのアクセス権を制限し、アクセス権のないものに対してデータベースへのアクセスができないようにする技術が用いられている。   Recently, there have been a series of incidents in which confidential databases are taken out without permission and put into a personal computer at home, and leaked to the Internet through file exchange systems, etc., and the protection of confidential data is at risk. ing. In order to prevent such a crisis, a technique for restricting the access right to the database and preventing the access to the database for those without the access right is used.

その一つに、例えば特許文献1に記載されているように、セキュリティデスクリプタを用いるものがある。但し、この方法では、セキュリティデスクリプタを上書きされたりして、オブジェクトがハッキングされる危険がある。そこで、データベース自体を暗号化して、アクセス権のある者だけに暗号鍵を与えることで、機密のデータベースを保護する方法が用いられている。
特表2002−517854号公報
For example, as described in Patent Document 1, there is one using a security descriptor. However, in this method, there is a risk that the object is hacked by overwriting the security descriptor. Therefore, a method of protecting a confidential database by encrypting the database itself and giving an encryption key only to those who have access rights is used.
JP 2002-517854 A

しかしながら、アクセス権のある者だけに暗号鍵を与える方法には、アクセス権を有している者が暗号化されたデータベースを復号して復号されたデータを含む二次的なデータベースを生成して公開してしまえば、当初のデータベースのアクセス権を有さない者まで参照できてしまうという問題点があった。   However, in the method of giving an encryption key only to those who have access rights, a person who has access rights decrypts the encrypted database and generates a secondary database containing the decrypted data. Once published, there was a problem that even those who did not have access to the original database could refer to it.

本発明は、以上の問題点を解決するためになされたものであり、データベースに格納されたデータから生成される二次的なデータベースが公開される場合であっても、適切にアクセス制限を行うことができるデータ管理システムを提供することを目的とする。   The present invention has been made to solve the above problems, and appropriately restricts access even when a secondary database generated from data stored in the database is disclosed. An object of the present invention is to provide a data management system.

上記目的を達成するために、本発明に係るデータ利用システムは、ネットワークを介して互いに接続されるデータベースサーバと鍵管理サーバとを含んで構成されるデータ管理システムであって、データベースサーバは、暗号化されたデータベースを格納するデータベース格納手段と、鍵管理サーバから送信されるサーバ用暗号鍵によって、データベース格納手段に格納されたデータベースを復号する復号手段と、鍵管理サーバから送信される演算手順を示す情報に基づいて、復号手段により復号されたデータベースに対して演算を行う演算手段と、演算手段による演算の結果のデータを鍵管理サーバから送信される端末用暗号鍵によって暗号化して出力すると共に、鍵管理サーバから送信されるサーバ用暗号鍵によって、復号手段により復号されたデータベースを再暗号化する暗号化手段と、を備え、鍵管理サーバは、データベースサーバに格納されるデータベースの利用許諾条件及び登録許諾条件を示す情報を、ユーザ及び当該データベースの属性毎に格納する条件格納手段と、端末から送信される、データベースサーバに格納されるデータベースに格納されるデータの取得要求及び当該取得要求に係るユーザを特定する情報を受信する取得要求受信手段と、受信手段により受信された取得要求に係るデータがユーザにより利用可能か否かを、条件格納手段に格納された利用許諾条件を参照することにより判断する利用可否判断手段と、利用可否判断手段により、取得要求に係るデータがユーザにより利用可能と判断された場合、当該データが格納されるデータベースを復号及び暗号化するサーバ用暗号鍵、及び取得されるデータを暗号化する端末用暗号鍵を生成する利用用暗号鍵生成手段と、取得要求に係るデータを取得するための演算手順を示す情報、並びに暗号鍵生成手段により生成されたサーバ用暗号鍵及び端末用暗号鍵と共に、端末からの取得要求に係るデータの送信要求をデータベースサーバに送信する送信要求手段と、端末から、送信要求手段による送信に応じて取得されたデータをデータベースとしてデータベースサーバへ登録するための登録要求を、当該データベースの、ユーザ及び属性毎の利用許諾条件及び登録許諾条件を示す情報と共に受信する登録要求受信手段と、登録要求受信手段により受信された登録要求に係るデータの利用許諾条件及び登録許諾条件が、当該データの取得元となったデータベースの登録許諾条件を満たすか否かを、条件格納手段に格納された登録許諾条件を参照することにより判断する登録可否判断手段と、登録可否判断手段により、登録要求に係るデータの利用許諾条件及び登録許諾条件が、当該データの取得元となったデータベースの登録許諾条件を満たすと判断された場合、当該データをデータベースサーバへの登録のために暗号化する登録用暗号鍵を生成して、端末に送信する登録用暗号鍵生成手段と、を備えることを特徴とする。   In order to achieve the above object, a data utilization system according to the present invention is a data management system including a database server and a key management server connected to each other via a network. A database storage means for storing the converted database, a decryption means for decrypting the database stored in the database storage means with a server encryption key transmitted from the key management server, and a calculation procedure transmitted from the key management server. Based on the information shown, the operation means for performing an operation on the database decrypted by the decryption means, and the result data of the operation by the operation means are encrypted and output by the terminal encryption key transmitted from the key management server. The decryption means uses the server encryption key sent from the key management server. The key management server stores information indicating the use permission condition and registration permission condition of the database stored in the database server for each user and attribute of the database. A condition storage means for receiving, an acquisition request receiving means for receiving an acquisition request for data stored in a database stored in a database server and transmitted from a terminal, and information identifying a user related to the acquisition request; and a receiving means The use request determination unit that determines whether the data related to the received acquisition request can be used by the user by referring to the use permission condition stored in the condition storage unit, and the use determination unit determines When it is determined that such data can be used by the user, the database storing the data is decrypted. The encryption key for the server to be encrypted, the encryption key generation means for use for generating the encryption key for the terminal for encrypting the acquired data, the information indicating the calculation procedure for acquiring the data related to the acquisition request, and the encryption Along with the server encryption key and the terminal encryption key generated by the key generation means, the transmission request means for transmitting the data transmission request related to the acquisition request from the terminal to the database server, and the terminal responds to the transmission by the transmission request means. Registration request receiving means for receiving a registration request for registering the acquired data in the database server as a database together with information indicating the use permission condition and the registration permission condition for each user and attribute of the database, and receiving the registration request The data use permission condition and registration permission condition related to the registration request received by the A registration permission determination unit that determines whether or not the registration permission condition of the database is satisfied by referring to the registration permission condition stored in the condition storage unit, and the use permission condition of the data related to the registration request by the registration permission determination unit When the registration permission condition is determined to satisfy the registration permission condition of the database from which the data is acquired, a registration encryption key for encrypting the data for registration in the database server is generated. And a registration encryption key generation means for transmitting to the terminal.

本発明に係るデータ利用システムでは、データベースサーバのデータベースに格納されたデータの取得要求は、端末から鍵管理サーバに送信される。鍵管理サーバでは、当該データベースの利用許諾条件を満たすユーザから利用許諾条件を満たす属性のデータに行われた取得要求が行われた場合のみ、当該データの取得のための2つの暗号鍵が生成される。即ち、端末では、当該データベースの利用許諾条件を満たすユーザにより利用許諾条件を満たす属性のデータのみが取得される。   In the data utilization system according to the present invention, an acquisition request for data stored in the database of the database server is transmitted from the terminal to the key management server. The key management server generates two encryption keys for acquiring the data only when an acquisition request is made to the attribute data that satisfies the license condition from a user who satisfies the license condition of the database. The That is, in the terminal, only data having an attribute satisfying the use permission condition is acquired by a user who satisfies the use permission condition of the database.

また、データベースサーバに格納されたデータベースから取得されたデータをデータベースサーバに新たなデータベースとして登録する際には、鍵管理サーバにおいて以下の処理が行われる。即ち、鍵管理サーバにおいて、当該新たなデータベースの利用許諾条件及び登録許諾条件が、取得元となったデータベースの登録許諾条件を満たす場合のみ、登録のための登録用暗号鍵が生成される。これにより、データベースに格納されたデータから生成される二次的なデータベースがデータベースサーバに登録されて公開される場合であっても、二次的なデータベースの利用許諾条件がデータの取得元のデータベースの登録許諾条件を踏襲するので、適切にアクセス制限を行うことができる。   Further, when registering data acquired from a database stored in the database server as a new database in the database server, the following processing is performed in the key management server. That is, in the key management server, a registration encryption key for registration is generated only when the use permission condition and registration permission condition of the new database satisfy the registration permission condition of the database that is the acquisition source. As a result, even if a secondary database generated from the data stored in the database is registered and released on the database server, the secondary database license agreement is the database from which the data was acquired. Because the registration permission conditions are followed, it is possible to restrict access appropriately.

データベースサーバと鍵管理サーバとは一体に構成されていることが望ましい。この構成によれば、より簡易な構成で本発明に係るデータ管理システムを実現することができる。   The database server and the key management server are preferably configured integrally. According to this configuration, the data management system according to the present invention can be realized with a simpler configuration.

データベースサーバは、データベース格納手段に格納されるデータベースの属性を示す情報を格納する属性情報格納手段を更に備えることが望ましい。この構成によれば、属性情報格納手段に格納されている情報を参照することにより、どのようなデータベースがデータベース格納手段に格納されているかをユーザが知ることができる。   The database server preferably further includes attribute information storage means for storing information indicating the attributes of the database stored in the database storage means. According to this configuration, the user can know what kind of database is stored in the database storage unit by referring to the information stored in the attribute information storage unit.

本発明では、データベースサーバに格納されたデータベースから取得されたデータをデータベースサーバに新たなデータベースとして登録する際には、鍵管理サーバにおいて以下の処理が行われる。即ち、鍵管理サーバにおいて、当該新たなデータベースの利用許諾条件及び登録許諾条件が、取得元となったデータベースの登録許諾条件を満たす場合のみ、登録のための登録用暗号鍵が生成される。従って、本発明によれば、データベースに格納されたデータから生成される二次的なデータベースがデータベースサーバに登録されて公開される場合であっても、二次的なデータベースの利用許諾条件がデータの取得元のデータベースの登録許諾条件を踏襲するので、適切にアクセス制限を行うことができる。   In the present invention, when data acquired from a database stored in a database server is registered in the database server as a new database, the following processing is performed in the key management server. That is, in the key management server, a registration encryption key for registration is generated only when the use permission condition and registration permission condition of the new database satisfy the registration permission condition of the database that is the acquisition source. Therefore, according to the present invention, even if a secondary database generated from the data stored in the database is registered and released to the database server, the usage permission condition for the secondary database is the data Since it follows the registration permission condition of the database from which it is acquired, it is possible to restrict access appropriately.

以下、図面とともに本発明によるデータ管理システムの好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。   Hereinafter, preferred embodiments of a data management system according to the present invention will be described in detail with reference to the drawings. In the description of the drawings, the same elements are denoted by the same reference numerals, and redundant description is omitted.

図1に、本発明に係るデータ管理システム1の実施形態を示す。図2に示すように、本実施形態に係るデータ管理システム1は、DBサーバ(データベースサーバ)100と、鍵管理サーバ200と、クライアント端末300とを含んで構成されている。データ管理システム1は、DBサーバ100に格納されているデータベースを利用可能に管理するシステムである。DBサーバ100、鍵管理サーバ200及びクライアント端末300は、それぞれネットワークNに接続されており互いにデータの送受信を行うことができる。ネットワークNは、具体的には例えば、インターネットやイントラネットに相当する。   FIG. 1 shows an embodiment of a data management system 1 according to the present invention. As shown in FIG. 2, the data management system 1 according to the present embodiment includes a DB server (database server) 100, a key management server 200, and a client terminal 300. The data management system 1 is a system that manages a database stored in the DB server 100 so that it can be used. The DB server 100, the key management server 200, and the client terminal 300 are each connected to the network N and can exchange data with each other. Specifically, the network N corresponds to, for example, the Internet or an intranet.

DBサーバ100は、データベースを格納しており、クライアント端末300から鍵管理サーバ200を介して送られてくる要求(利用請求)に応じて、当該データベースに格納されたデータを出力する装置である。DBサーバ100に格納されるデータベースは、リレーショナルデータベースである。DBサーバ100は、図2に示すように、DBサーバ100は機能的な構成要素として、DBデータベース101(データベース格納手段)と、DBサムネイルデータベース102(属性情報格納手段)と、DB/DBサムネイルストレージ・モジュール103と、暗号鍵入力ポート104と、DB暗号化モジュール105(暗号化手段)と、DB復号モジュール106(復号手段)と、DB演算手順入力ポート107と、DB演算処理制御モジュール108と、データベース管理モジュール109と、DB演算モジュール110(演算手段)と、DB/DBサムネイル入出力ポート111と、DB演算手順ストレージ・モジュール112とを備えて構成されている。これらの構成要素について機能については、後述する処理の説明において述べる。DBサーバ100は、CPU(Central Processing Unit)、メモリ、ハードディクス、通信モジュール等のハードウェアを供えており、これらのハードウェアがプログラム等により動作することにより上述した機能的な構成要素が実現される。   The DB server 100 stores a database and outputs data stored in the database in response to a request (use request) sent from the client terminal 300 via the key management server 200. The database stored in the DB server 100 is a relational database. As shown in FIG. 2, the DB server 100 includes, as functional components, a DB database 101 (database storage means), a DB thumbnail database 102 (attribute information storage means), and a DB / DB thumbnail storage. A module 103, an encryption key input port 104, a DB encryption module 105 (encryption means), a DB decryption module 106 (decryption means), a DB operation procedure input port 107, a DB operation processing control module 108, A database management module 109, a DB operation module 110 (calculation means), a DB / DB thumbnail input / output port 111, and a DB operation procedure storage module 112 are provided. The functions of these components will be described in the description of the processing described later. The DB server 100 includes hardware such as a CPU (Central Processing Unit), a memory, a hard disk, and a communication module, and the functional components described above are realized by the operation of these hardware according to a program or the like. The

鍵管理サーバ200は、DBサーバ100に格納されたデータベースのアクセス権を管理するための装置である。図3に示すように、鍵管理サーバ200は機能的な構成要素として、DB登録データベース201(条件格納手段)と、DBサーバ用DB利用/登録履歴データベース202と、クライアント端末用DB利用履歴データベース203と、DBサーバ用暗号鍵データベース204と、クライアント端末用暗号鍵データベース205と、DB利用/登録請求入力ポート206(取得要求受信手段、登録要求受信手段)と、データベース管理モジュール208と、DB演算手順検索モジュール209と、DB利用実行可否判断モジュール210と、DB登録条件可否判断モジュール211(登録可否判断手段)と、暗号鍵生成モジュール212(利用用暗号鍵生成手段、登録用暗号鍵生成手段)、暗号鍵送出モジュール213(送信要求手段)と、暗号鍵出力ポート214とを備えて構成されている。これらの構成要素について機能については、後述する処理の説明において述べる。鍵管理サーバ200は、CPU、メモリ、ハードディクス、通信モジュール等のハードウェアを供えており、これらのハードウェアがプログラム等により動作することにより上述した機能的な構成要素が実現される。また、鍵管理サーバ200は、データベースのアクセス権を管理する装置であるので、耐タンパ性の高い構成とすることが望ましい。   The key management server 200 is a device for managing the access rights of the database stored in the DB server 100. As shown in FIG. 3, the key management server 200 includes, as functional components, a DB registration database 201 (condition storage means), a DB server DB use / registration history database 202, and a client terminal DB use history database 203. DB server encryption key database 204, client terminal encryption key database 205, DB use / registration request input port 206 (acquisition request receiving means, registration request receiving means), database management module 208, DB calculation procedure A search module 209, a DB use execution availability determination module 210, a DB registration condition availability determination module 211 (registration availability determination means), an encryption key generation module 212 (use encryption key generation means, registration encryption key generation means), An encryption key transmission module 213 (transmission request means); It is constituted by a No. key output port 214. The functions of these components will be described in the description of the processing described later. The key management server 200 includes hardware such as a CPU, a memory, a hard disk, and a communication module, and the functional components described above are realized by the operation of these hardware according to a program or the like. Further, since the key management server 200 is a device that manages database access rights, it is desirable that the key management server 200 has a high tamper resistance.

クライアント端末300は、ユーザにより用いられる端末であり、ユーザの操作によるデータベースのデータの生成、参照等に用いられる。クライアント端末300は、具体的には例えば、PC(Personal Computer)等に相当する。なお、図1では、クライアント端末300は1つしか描かれていないが、通常、データ管理システム1には、複数のクライアント端末300が含まれている。   The client terminal 300 is a terminal used by a user, and is used for generation and reference of database data by a user operation. Specifically, the client terminal 300 corresponds to, for example, a PC (Personal Computer). In FIG. 1, only one client terminal 300 is illustrated, but the data management system 1 normally includes a plurality of client terminals 300.

図4に示すように、クライアント端末300は機能的な構成要素として、ユーザ・インタフェース301と、DB登録請求モジュール302と、DB利用/登録請求出力ポート303と、DB利用請求モジュール304と、DB演算手順生成モジュール305と、暗号鍵入力ポート306と、DB暗号化モジュール307と、DB復号モジュール308と、DBストレージ・モジュール309と、DB入出力ポート310とを備えて構成されている。クライアント端末300は、CPU、メモリ、ハードディクス、通信モジュール等のハードウェアを供えており、これらのハードウェアがプログラム等により動作することにより上述した機能的な構成要素が実現される。   As shown in FIG. 4, the client terminal 300 includes, as functional components, a user interface 301, a DB registration request module 302, a DB use / registration request output port 303, a DB use request module 304, and a DB operation. A procedure generation module 305, an encryption key input port 306, a DB encryption module 307, a DB decryption module 308, a DB storage module 309, and a DB input / output port 310 are configured. The client terminal 300 is provided with hardware such as a CPU, a memory, a hard disk, and a communication module, and the functional components described above are realized by operating these hardware according to a program or the like.

引き続いて、データ管理システム1で実行される処理について説明する。まず、図4のシーケンス図を用いて、クライアント端末300において、新規にデータベースが作成されて、DBサーバ100に登録されるまでの処理を説明する。   Subsequently, processing executed in the data management system 1 will be described. First, using the sequence diagram of FIG. 4, a process until a new database is created and registered in the DB server 100 in the client terminal 300 will be described.

まず、クライアント端末300では、ユーザAによってクライアント端末300のユーザ・インタフェース301が用いられて、データベースが作成される(S01)(以下、ユーザAによって作成されたデータベースをDB(a)と表記する)。ユーザ・インタフェース301は、例えば、キーボードやモニタ等のユーザからのデータの入力を受け付けて、ユーザに参照されるようにデータを出力するためのものである。DB(a)は、リレーショナルデータベースである。例えば、DB(a)は、企業の各社員の営業に関するデータを保持している。具体的には、図6(a)に示すテーブルを保持しており、当該テーブルには、レコード毎に各属性(フィールド)(“社員ID”、“担当地区”、“営業成績”)のデータが格納されている。また、DB(a)の属性には、上記以外にも例えば、“氏名”等が含まれていてもよい。   First, in the client terminal 300, the database is created by the user A using the user interface 301 of the client terminal 300 (S01) (hereinafter, the database created by the user A is referred to as DB (a)). . The user interface 301 is for receiving data input from a user such as a keyboard or a monitor and outputting the data so that it can be referred to by the user. DB (a) is a relational database. For example, DB (a) holds data related to sales of each employee of the company. Specifically, the table shown in FIG. 6A is held, and the data of each attribute (field) (“employee ID”, “responsible district”, “business performance”) is stored for each record in the table. Is stored. In addition to the above, for example, “name” may be included in the attribute of DB (a).

続いて、クライアント端末300では、DB(a)をDBサーバ100に登録するために、DB(a)のサムネイル(メタデータ)(以下、DBth(a)と表記する)、利用許諾条件(以下、uC(a)と表記する)及び登録許諾条件(以下、rC(a)と表記する)が生成される。   Subsequently, in order to register the DB (a) in the DB server 100, the client terminal 300 stores the thumbnail (metadata) of the DB (a) (hereinafter referred to as DBth (a)), the use permission condition (hereinafter, referred to as “DBth (a)”). uC (a)) and registration permission conditions (hereinafter referred to as rC (a)) are generated.

サムネイルとは、データベースの「レコード数、属性名(フィールド名)、データの形式」について定義した情報である。この情報を参照することにより、データベースにどのようなデータが格納されているかを知ることができる。例えば、図6(a)に示すDB(a)については、{レコード数:9、属性名:“社員ID”(文字列)、“担当地区”(カテゴリ、区分:A、B、C、“営業成績”(正整数、単位:千円/週)}というサムネイルDBth(a)が生成される。この生成は、例えば、生成されたDB(a)が参照されて自動的に行なわれてもよいし、ユーザAのクライアント端末300に対する操作により行われてもよい。   The thumbnail is information defined for “number of records, attribute name (field name), data format” in the database. By referring to this information, it is possible to know what data is stored in the database. For example, for DB (a) shown in FIG. 6A, {number of records: 9, attribute name: “employee ID” (character string), “responsible district” (category, category: A, B, C, “ A thumbnail DBth (a) of “business results” (positive integer, unit: 1,000 yen / week)} is generated. For example, this generation may be automatically performed with reference to the generated DB (a). Alternatively, it may be performed by an operation on the client terminal 300 of the user A.

また、利用許諾条件とは、データベースの利用することができる権限を示した条件である。利用許諾条件は、ユーザ及びデータベースの属性毎に設定される。具体的には、利用許諾条件を示す情報は、図7(a)に示すようなテーブルに情報が格納される。テーブルは、行方向に、ユーザ識別子で特定されるユーザ毎の利用許諾のデータを保持しており、列方向に、各属性(“社員ID”、“担当地区”、“営業成績”)のデータに対する利用許諾のデータを保持している。   Further, the use permission condition is a condition indicating authority to use the database. The use permission condition is set for each attribute of the user and the database. Specifically, the information indicating the use permission condition is stored in a table as shown in FIG. The table holds data for each user specified by the user identifier in the row direction, and data of each attribute (“employee ID”, “responsible district”, “business results”) in the column direction. The license data for is held.

また、利用許諾内容は、「読み込み」「集計・演算」「二次DBへの書き出し」に分かれている。「読み込み」とは、当該データを(DBサーバ100の)メモリへ読込むことである。「集計・演算」とは、上記「読み込み」によりメモリ上へ読み込まれたデータを集計したり、データに対して演算を行ったりすることである。集計あるいは演算されたデータは、新たな(二次)データベースを構成するデータとされる。「二次DBへの書き出し」は、上記「読み込み」によりメモリ上へ読み込まれたデータを新たな(二次)データベースを構成するデータとして(DBサーバ100のディスク等に)書き出すことである。利用許諾条件のテーブルには、ユーザ(識別子)及び属性毎に「読み込み」「集計・演算」「二次DBへの書き出し」の各項目に対して、許諾される内容が書き込まれている(従って、許諾されないものについては空欄となる)。許可される内容については、例えば、「読み込み」「二次DBへの書き出し」であれば、“シーケンシャル”“ランダム”等読込み方や、「集計・演算」であれば、“他DBの変数との乗除算”等の演算内容等を特定する具体的な処理内容まで指定されるものである。   The contents of the usage agreement are divided into “reading”, “totaling / calculation”, and “writing to secondary DB”. “Reading” refers to reading the data into the memory (of the DB server 100). “Aggregation / calculation” is to aggregate the data read into the memory by the above “reading” or to perform an operation on the data. The aggregated or calculated data is used as data constituting a new (secondary) database. “Write to secondary DB” is to write the data read into the memory by the above “read” as data constituting a new (secondary) database (to a disk or the like of the DB server 100). In the use permission condition table, the permitted contents are written for each item of “read”, “total / calculation”, and “write to secondary DB” for each user (identifier) and attribute (accordingly, therefore). , It will be blank for those not allowed). Regarding permitted contents, for example, “read” and “write to secondary DB” read “sequential” “random”, and “summation / calculation”, “other DB variables and The specific processing content for specifying the operation content such as “multiplication / division” is specified.

例えば、図7(a)に示すように“社員ID”については、ユーザB及びユーザCに対して、「読み込み」及び「二次DBへの書き出し」が許諾されており、ユーザDに対しては、何も許諾されていない。“営業成績”については、ユーザB及びユーザCに対して、「読み込み」及び「集計・演算」が許諾されており、ユーザDに対しては、何も許諾されていない。「集計・演算」の許諾内容は、ユーザBに対しては“担当地区別の標準偏差”の演算が許されているのみであるが、ユーザCに対しては“担当地区別の標準偏差”の演算に加えて、“他のDBの変数との乗除算”“担当地区別の標準偏差”の導出が許諾されている。   For example, as shown in FIG. 7A, for “employee ID”, “Read” and “Write to secondary DB” are permitted for user B and user C, and for user D, Nothing is permitted. As for “business results”, “reading” and “aggregation / calculation” are permitted for user B and user C, and nothing is permitted for user D. The permitted content of “aggregation / calculation” is that user B is only allowed to calculate “standard deviation for each responsible area”, but for user C, “standard deviation for each responsible area”. In addition to the above calculation, derivation of “multiplication / division with other DB variables” and “standard deviation for each responsible area” is permitted.

また、登録許諾条件とは、データベースから取得されたデータが新たな(二次)データベースの構成要素となった場合に、当該新たなデータベースに設定されるべき利用許諾条件の範囲(上限)を示したものである。また、登録許諾条件rC(a)は、新たなデータベースに設定されるべき登録許諾条件の範囲(上限)にもなっている。登録許諾条件に設定されていない利用態様を許諾するような利用許諾条件や登録許諾要件を設定した二次データベースをDBサーバ100に登録することはできない。具体的には、登録許諾条件を示す情報は、利用許諾条件と同様に、図7(b)に示すようなテーブルに情報が格納される。   The registration permission condition indicates the range (upper limit) of the license condition to be set in the new database when the data acquired from the database becomes a component of the new (secondary) database. It is a thing. The registration permission condition rC (a) is also a range (upper limit) of the registration permission condition to be set in the new database. A secondary database in which usage permission conditions and registration permission requirements that permit usage modes that are not set in the registration permission conditions cannot be registered in the DB server 100. Specifically, the information indicating the registration permission condition is stored in a table as shown in FIG. 7B, similarly to the use permission condition.

利用許諾条件uC(a)及び登録許諾条件rC(a)は、ユーザAによって、クライアント端末300のユーザ・インタフェース301が用いられて作成される。当該生成された、DBth(a)、uC(a)及びrC(a)は、DB(a)に係る各情報として、DB登録請求モジュール302に格納される。   The use permission condition uC (a) and the registration permission condition rC (a) are created by the user A using the user interface 301 of the client terminal 300. The generated DBth (a), uC (a), and rC (a) are stored in the DB registration request module 302 as each piece of information related to DB (a).

続いて、クライアント端末300では、DB登録請求モジュール302において、DBth(a)にuC(a)及びrC(a)が付される。続いて、DBth(a)、uC(a)及びrC(a)がDB(a)のDBサーバ100への登録要求(登録請求)として、DB利用/登録請求出力ポート303を介して、鍵管理サーバ200に送信される(S02)。なお、この登録要求には、ユーザAを特定するユーザ識別子が含まれているものとする。この処理は、ユーザAのクライアント端末300に対する操作をトリガとして行われる。   Subsequently, in the client terminal 300, the DB registration request module 302 adds uC (a) and rC (a) to DBth (a). Subsequently, DBth (a), uC (a), and rC (a) manage the key as a registration request (registration request) to the DB server 100 of DB (a) via the DB use / registration request output port 303. It is transmitted to the server 200 (S02). This registration request includes a user identifier that identifies user A. This process is performed with user A's operation on the client terminal 300 as a trigger.

鍵管理サーバ200では、送信された登録要求がDB利用/登録請求入力ポート206によって受信される。受信された登録要求は、DB登録モジュール207に出力される。続いて、DB登録モジュール207によって、DBth(a)に対して、データベースを特定するIDである“ID:DB(a)”が生成されて、割り当てられる。続いて、DB登録モジュール207からデータベース管理モジュール208を介して、DB登録データベース201に当該ID及び登録要求に係る情報である{“ID:DB(a)”、“ユーザA”、“DBth(a)”、“uC(a)”、“rC(a)”}が格納される(S03)。   In the key management server 200, the transmitted registration request is received by the DB use / registration request input port 206. The received registration request is output to the DB registration module 207. Subsequently, the DB registration module 207 generates and assigns “ID: DB (a)”, which is an ID for identifying the database, to DBth (a). Subsequently, the DB registration module 207 sends information related to the ID and the registration request to the DB registration database 201 via the database management module 208 {“ID: DB (a)”, “User A”, “DBth (a ) ”,“ UC (a) ”,“ rC (a) ”} are stored (S03).

続いて、DB登録モジュール207から暗号鍵生成モジュール212に対して、暗号鍵を作成する指示が行われる。指示を受けた暗号鍵生成モジュール212によって、DB(a)用の暗号鍵K(a)が生成される。この暗号鍵は、データベースをDBサーバ100に登録する際にデータベースを暗号化する、登録用暗号鍵である。また、この暗号鍵は、共通鍵であり、この暗号鍵により暗号化されたデータベースは、この暗号鍵によって復号することができる。生成された暗号鍵K(a)は、データベース管理モジュール208を介して、DBサーバ用暗号鍵データベース204に格納される。この格納の際には、暗号鍵は、例えばDB(a)のIDである“ID:DB(a)”に対応付けられる等して、DB(a)に対するものであると識別できるようにされる。また、セキュリティを向上するために、暗号鍵が格納されるDBサーバ用暗号鍵データベース204及びクライアント端末用暗号鍵データベース205は、特別なチップ等の耐タンパなエリアに形成されている。   Subsequently, the DB registration module 207 instructs the encryption key generation module 212 to create an encryption key. Upon receiving the instruction, the encryption key generation module 212 generates the encryption key K (a) for DB (a). This encryption key is a registration encryption key for encrypting the database when the database is registered in the DB server 100. The encryption key is a common key, and a database encrypted with the encryption key can be decrypted with the encryption key. The generated encryption key K (a) is stored in the DB server encryption key database 204 via the database management module 208. In this storage, the encryption key can be identified as being for DB (a), for example, by associating it with “ID: DB (a)” which is the ID of DB (a). The In order to improve security, the DB server encryption key database 204 and the client terminal encryption key database 205 in which encryption keys are stored are formed in a tamper-resistant area such as a special chip.

生成された暗号鍵K(a)は、暗号鍵生成モジュール212から暗号鍵送出モジュール213に出力される。続いて、暗号鍵は、暗号鍵送出モジュール213から、暗号鍵出力ポート214を介して、登録要求を送信したクライアント端末300に送信される(S04)。この送信は、セキュリティを向上するために、SSL(Secure Socket Layer)等によって保護された状態で行われる。なお、暗号鍵の送付と併せて、鍵管理サーバ200からクライアント端末300に、DB(a)のID“ID:DB(a)”が通知される。   The generated encryption key K (a) is output from the encryption key generation module 212 to the encryption key transmission module 213. Subsequently, the encryption key is transmitted from the encryption key transmission module 213 to the client terminal 300 that transmitted the registration request via the encryption key output port 214 (S04). This transmission is performed in a state protected by SSL (Secure Socket Layer) or the like in order to improve security. In addition to the transmission of the encryption key, the key management server 200 notifies the client terminal 300 of the ID “ID: DB (a)” of DB (a).

ユーザAのクライアント端末300では、暗号鍵入力ポート306によって、鍵管理サーバ200から送信された暗号鍵K(a)が受信される。続いて、DB暗号化モジュール307によって、DB(a)がK(a)で暗号化される(以下、暗号化されたデータベースを「enDB」と表記する)。暗号化されたデータベースであるenDB(a)は、DBストレージ・モジュール309に格納される。その後、enDB(a)には、“ID:DB(a)”及びDBth(a)が付されて、DBサーバ100に送信(アップロード)される(S05)。   In the client terminal 300 of the user A, the encryption key K (a) transmitted from the key management server 200 is received by the encryption key input port 306. Subsequently, DB (a) is encrypted with K (a) by the DB encryption module 307 (hereinafter, the encrypted database is referred to as “enDB”). The enDB (a) that is an encrypted database is stored in the DB storage module 309. After that, “ID: DB (a)” and DBth (a) are attached to enDB (a) and transmitted (uploaded) to the DB server 100 (S05).

DBサーバ100では、DB/DBサムネイル入出力ポート111によって、enDB(a)が受信される。受信されたenDB(a)は、DB/DBサムネイルストレージ・モジュール103に出力されて、DB/DBサムネイルストレージ・モジュール103によって“ID:DB(a)”に対応付けられてDBデータベース101に格納される。また、DBth(a)は、DB/DBサムネイルストレージ・モジュール103によって、“ID:DB(a)”に対応付けられてDBサムネイルデータベース102に格納される(S06)。以上が、クライアント端末300において新規にデータベースが作成されて、DBサーバ100に登録されるまでの処理である。   In the DB server 100, enDB (a) is received by the DB / DB thumbnail input / output port 111. The received enDB (a) is output to the DB / DB thumbnail storage module 103 and stored in the DB database 101 in association with “ID: DB (a)” by the DB / DB thumbnail storage module 103. The DBth (a) is stored in the DB thumbnail database 102 in association with “ID: DB (a)” by the DB / DB thumbnail storage module 103 (S06). The above is the processing from when a new database is created in the client terminal 300 and registered in the DB server 100.

以降の説明では、ユーザBが、ユーザAのクライアント端末300とは別のクライアント端末300によって、データベースDB(b)を生成して、上記と同様の処理によって、enDB(b)をDBサーバ100に登録したものとする。DB(b)は、ユーザAと同じ企業の各社員の人事に関するデータを保持している。具体的には、図6(b)に示すテーブルを保持しており、当該テーブルには、レコード毎に各属性(“社員ID”、“住所”、“人事評価”)のデータが格納されている。また、DB(b)の属性には、上記以外にも例えば、“氏名”等が含まれていてもよい。また、DB(b)の利用許諾条件uC(b)は図8(a)に示されるものであり、DB(b)の登録許諾条件rC(b)は図8(b)に示されるものである。   In the following description, the user B generates a database DB (b) by using a client terminal 300 different from the client terminal 300 of the user A, and enDB (b) is transferred to the DB server 100 by the same processing as described above. It shall be registered. DB (b) holds data relating to personnel of each employee of the same company as user A. Specifically, the table shown in FIG. 6B is held, and data of each attribute (“employee ID”, “address”, “HR evaluation”) is stored for each record in the table. Yes. In addition to the above, for example, “name” may be included in the attribute of DB (b). Further, the usage permission condition uC (b) of DB (b) is as shown in FIG. 8 (a), and the registration permission condition rC (b) of DB (b) is as shown in FIG. 8 (b). is there.

引き続いて、図9のシーケンス図を用いて、ユーザA及びユーザBとは異なるユーザCのクライアント端末300によって、DBサーバ100からDB(a)及びDB(b)のデータが取得されて、新たなデータベースが生成されるまでの処理を説明する。   Subsequently, using the sequence diagram of FIG. 9, the data of DB (a) and DB (b) is acquired from the DB server 100 by the client terminal 300 of the user C different from the user A and the user B, and new data Processing until the database is generated will be described.

まず、クライアント端末300では、ユーザ・インタフェース301に対するユーザCの操作によって、DBサーバ100にデータベースの参照要求が送信される(S11)。   First, in the client terminal 300, a database reference request is transmitted to the DB server 100 by the operation of the user C on the user interface 301 (S11).

DBサーバ100では、クライアント端末300から送信された参照要求がDB/DBサムネイル入出力ポート111によって受信される。参照要求は、DB/DBサムネイルストレージ・モジュール103に出力される。続いて、DB/DBサムネイルストレージ・モジュール103によって、DBサムネイルデータベース102からデータベースのサムネイルが取得されて、DB/DBサムネイル入出力ポート111を介して、ユーザCのクライアント端末300に送信される(S12)。送信されるサムネイルには、DBth(a)及びDBth(b)が含まれる。   In the DB server 100, the reference request transmitted from the client terminal 300 is received by the DB / DB thumbnail input / output port 111. The reference request is output to the DB / DB thumbnail storage module 103. Subsequently, the database thumbnail is acquired from the DB thumbnail database 102 by the DB / DB thumbnail storage module 103 and transmitted to the client terminal 300 of the user C via the DB / DB thumbnail input / output port 111 (S12). ). The transmitted thumbnail includes DBth (a) and DBth (b).

ユーザCのクライアント端末300では、DBサーバ100から送信されたサムネイルが受信されて、ユーザCが参照できるようにユーザ・インタフェース301によって画面表示等の出力が行われる。表示されたサムネイルのうちのDBth(a)及びDBth(b)に基づいて、ユーザCによって、DB(a)及びDB(b)からデータを取得して、図10に示すようなテーブルを有するデータベースDB(c)を生成する演算手順F(c)を示す情報が生成される(S13)。   In the client terminal 300 of the user C, the thumbnail transmitted from the DB server 100 is received, and an output such as a screen display is performed by the user interface 301 so that the user C can refer to the thumbnail. A database having a table as shown in FIG. 10 by acquiring data from DB (a) and DB (b) by user C based on DBth (a) and DBth (b) of the displayed thumbnails. Information indicating the calculation procedure F (c) for generating DB (c) is generated (S13).

DB(c)は、ユーザA及びユーザBと同じ企業の社員の担当地区毎に人事評価の適切さを表す“実力指数”のデータを保持したものである。“実力指数”は、社員毎に“営業成績”の数値から“人事評価”の数値を割ることにより算出される値である。ユーザCは、例えば社長室長であって、人事制度の改善と営業体制の強化とに取り組んでいるとする。ユーザCは、営業部長であるユーザAの作成した営業に係るデータベースと、人事部長であるユーザBの作成した人事に係るデータベースとから、営業成績に対する人事評価に社員毎の目立った乖離が無いかどうかや営業部員の配置に問題がないかどうかを検証しようとする場合に上記のDB(c)が生成される。   DB (c) holds data of “ability index” indicating appropriateness of personnel evaluation for each district in charge of employees of the same company as user A and user B. The “ability index” is a value calculated by dividing the numerical value of “HR evaluation” from the numerical value of “business performance” for each employee. For example, it is assumed that the user C is the president's office manager and is working on improving the personnel system and strengthening the sales system. Is there a noticeable divergence for each employee in the personnel evaluation of the sales performance from the database related to the sales created by user A who is the sales manager and the database related to the personnel created by user B who is the personnel manager? The DB (c) is generated when it is attempted to verify whether there is no problem in the arrangement of the sales staff members.

演算手順F(c)は例えば、以下のようなものである。
(1)DB(a)[フィールド{“社員ID”,“担当地区”,“営業成績”}×レコード{“n”(n=1−9)}]をシーケンシャルに読み出す。
(2)DB(b)[フィールド{“社員ID”,“人事評価”}×レコード{“n”(n=1−9)}]をシーケンシャルに読み出す。
(3)“実力指数”=DB(a){“営業成績”}÷DB(b){“人事評価”}を“社員ID”をキーとして計算する。
(4)DB(c)[フィールド{“担当地区”,“実力指数”}×レコード{“m”(m=1−9)}]に“担当地区”、“実力指数”を書き込む。
これらの演算手順F(c)は、例えば、リレーショナルデータベースに対する操作等を行うSQLにより生成される。
The calculation procedure F (c) is, for example, as follows.
(1) DB (a) [field {“employee ID”, “responsible district”, “business results”} × record {“n” (n = 1-9)}] is read sequentially.
(2) DB (b) [field {“employee ID”, “HR evaluation”} × record {“n” (n = 1-9)}] is read sequentially.
(3) “Ability index” = DB (a) {“Sales performance”} ÷ DB (b) {“Personnel evaluation”} is calculated using “Employee ID” as a key.
(4) Write “responsible district” and “skilled index” in DB (c) [field {“responsible district”, “skilled index”} × record {“m” (m = 1-9)}].
These calculation procedures F (c) are generated by, for example, SQL for performing operations on the relational database.

F(c)の生成は、ユーザCがクライアント端末300のユーザ・インタフェース301を操作することによって行われ、生成されたF(c)は、DB演算手順生成モジュール305に格納される。続いて、ユーザCの操作をトリガとして、DB利用請求モジュール304によって、DB演算手順生成モジュール305からF(c)が取得されて、当該F(c)と共にDB(a)及びDB(b)のデータの取得要求(利用許諾請求)が、DB利用/登録請求出力ポート303を介して、鍵管理サーバ200に送信される(S14)。なお、取得要求には、ユーザCからの要求であることを特定できるように、ユーザCを特定するユーザ識別子が付されている。   The generation of F (c) is performed by the user C operating the user interface 301 of the client terminal 300, and the generated F (c) is stored in the DB calculation procedure generation module 305. Subsequently, using the operation of the user C as a trigger, the DB usage request module 304 acquires F (c) from the DB calculation procedure generation module 305, and DB (a) and DB (b) together with the F (c). A data acquisition request (use permission request) is transmitted to the key management server 200 via the DB use / registration request output port 303 (S14). Note that a user identifier that identifies the user C is attached to the acquisition request so that it can be identified that the request is from the user C.

続いて、鍵管理サーバ200では、当該取得要求が、DB利用/登録請求入力ポート206によって受信される。取得要求に含まれるF(c)は、DB利用/登録請求入力ポート206からDB演算手順検索モジュール209及びDB利用実行可否判断モジュール210に出力される。DB演算手順検索モジュール209では、F(c)に基づいて、当該F(c)によりアクセスされるデータベースを検出して、DB演算手順検索モジュール209を介してDB登録データベース201に対して、当該データベースに関する利用許諾条件に関する情報の取得要求を行う。上記の例の場合は、DB(a)及びDB(b)に関する利用許諾条件、即ち、uC(a)及びuC(b)の取得要求が行われる。当該取得要求によって取得された利用許諾条件に関する情報は、データベース管理モジュール208からDB利用実行可否判断モジュール210に入力される。   Subsequently, in the key management server 200, the acquisition request is received by the DB use / registration request input port 206. F (c) included in the acquisition request is output from the DB use / registration request input port 206 to the DB operation procedure search module 209 and the DB use execution availability determination module 210. The DB operation procedure search module 209 detects a database accessed by the F (c) based on F (c), and the DB operation procedure search module 209 detects the database with respect to the DB registration database 201 via the DB operation procedure search module 209. A request for acquisition of information related to the use permission condition is made. In the case of the above example, use permission conditions regarding DB (a) and DB (b), that is, acquisition requests for uC (a) and uC (b) are made. Information regarding the use permission condition acquired by the acquisition request is input from the database management module 208 to the DB use execution permission determination module 210.

続いて、DB利用実行可否判断モジュール210によって、F(c)により特定される取得要求に係るデータが、ユーザCにより利用可能か否かを、uC(a)及びuC(b)を参照して判断される(S15)。この判断は、論理演算を行うことにより行われる。利用不可であると判断された場合は、鍵管理サーバ200からクライアント端末300にデータが取得できない旨が通知される(S16)。   Subsequently, whether or not the data related to the acquisition request specified by F (c) can be used by the user C by the DB use execution possibility determination module 210 is referred to uC (a) and uC (b). Determination is made (S15). This determination is made by performing a logical operation. If it is determined that the data cannot be used, the key management server 200 notifies the client terminal 300 that data cannot be acquired (S16).

図7(a)及び図8(a)に示すように、ユーザCに関しては、
(1)DB(a)の“社員ID”,“担当地区”,“営業成績”のシーケンシャルな読み込み
(2)DB(a)の“担当地区”のシーケンシャルな書き出し
(3)DB(a)の“営業成績”の他のデータベースの変数との乗除算
(4)DB(b)の“社員ID”,“人事評価”のシーケンシャルな読み込み
(5)DB(b)の“人事評価”の他のデータベースの変数との乗除算
が許諾されているので、F(c)により特定される取得要求に係るデータが、ユーザCにより利用可能と判断される。なお、上記の何れかの許諾がなされていない場合は、利用不可であると判断される。
As shown in FIG. 7A and FIG. 8A, for user C,
(1) Sequential reading of “employee ID”, “responsible district”, “business results” of DB (a) (2) Sequential writing of “responsible district” of DB (a) (3) of DB (a) Multiplication / division of “business results” with other database variables (4) Sequential reading of “employee ID” and “HR evaluation” in DB (b) (5) Other “HR evaluation” in DB (b) Since multiplication and division with the variables of the database are permitted, it is determined that the data related to the acquisition request specified by F (c) can be used by the user C. If any of the above permissions is not granted, it is determined that the license cannot be used.

DB利用実行可否判断モジュール210により利用可能と判断されると、その旨が暗号鍵生成モジュール212に通知される。続いて、暗号鍵生成モジュール212により、端末用暗号鍵k(c)が生成される。端末用暗号鍵は、F(c)により生成されるDB(c)を暗号化及び復号するための暗号鍵である。更に、DB(c)を再暗号化するための暗号鍵k1(c)が生成される。生成された暗号鍵k(c)/k1(c)は、暗号鍵送出モジュール213に出力され、暗号鍵出力ポート214からユーザCのクライアント端末300に送信される(S17)。また、生成された暗号鍵k(c)/k1(c)は、データベース管理モジュール208を介して、クライアント端末用暗号鍵データベース205に格納される。   When it is determined that the DB use execution possibility determination module 210 can use the database, the encryption key generation module 212 is notified. Subsequently, the encryption key generation module 212 generates a terminal encryption key k (c). The terminal encryption key is an encryption key for encrypting and decrypting DB (c) generated by F (c). Furthermore, an encryption key k1 (c) for re-encrypting DB (c) is generated. The generated encryption key k (c) / k1 (c) is output to the encryption key transmission module 213 and transmitted from the encryption key output port 214 to the client terminal 300 of the user C (S17). The generated encryption key k (c) / k1 (c) is stored in the client terminal encryption key database 205 via the database management module 208.

また、暗号鍵生成モジュール212では、enDB(a)及びenDB(b)を復号するためのサーバ用暗号鍵K(a)及びK(b)が生成される。なお、ここでの暗号鍵K(a)及びK(b)の生成の意味には、既に生成された暗号鍵K(a)及びK(b)をDBサーバ用暗号鍵データベース204等から取得することも含む(以下、同様)。更に、復号されたDB(a)及びDB(b)を再暗号化するための暗号鍵K1(a)及びK1(b)が生成される。生成された暗号鍵k(c)、K(a)/K1(a)及びK(b)/K1(b)は暗号鍵送出モジュール213に出力され、暗号鍵送出モジュール213によって暗号鍵出力ポート214を介してDBサーバ100に送信される(S18)。また、生成された暗号鍵K(a)/K1(a)及びはK(b)/K1(b)は、データベース管理モジュール208を介して、DBサーバ用暗号鍵データベース204に格納される。   The encryption key generation module 212 generates server encryption keys K (a) and K (b) for decrypting enDB (a) and enDB (b). The meaning of generation of the encryption keys K (a) and K (b) here is that the already generated encryption keys K (a) and K (b) are acquired from the DB server encryption key database 204 or the like. (Hereinafter the same). Furthermore, encryption keys K1 (a) and K1 (b) for re-encrypting the decrypted DB (a) and DB (b) are generated. The generated encryption keys k (c), K (a) / K1 (a), and K (b) / K1 (b) are output to the encryption key transmission module 213, and the encryption key output module 213 outputs the encryption key output port 214. (S18). The generated encryption keys K (a) / K1 (a) and K (b) / K1 (b) are stored in the DB server encryption key database 204 via the database management module 208.

暗号鍵がDBサーバ100に送信される際には、取得要求に係るデータを取得するための演算手順を示したF(c)と共に、F(c)により生成されるDB(c)をユーザCのクライアント端末300へ送信する送信要求もDBサーバ100に送信される。当該送信が行われると、ユーザCからの取得要求の事実、F(c)の内容、K(a)/K1(a)及びK(b)/K1(b)を送出したことが、DBサーバ用DB利用/登録履歴データベース202に格納される(S19)。また、ユーザCからの取得要求の事実、F(c)の内容、k(c)/k1(c)を送出したことが、クライアント端末用DB利用履歴データベース203に格納される(S19)。   When the encryption key is transmitted to the DB server 100, the DB (c) generated by F (c) is stored in the user C together with F (c) indicating the calculation procedure for acquiring the data related to the acquisition request. A transmission request to be transmitted to the client terminal 300 is also transmitted to the DB server 100. When the transmission is performed, the fact that the acquisition request from the user C, the contents of F (c), K (a) / K1 (a), and K (b) / K1 (b) have been transmitted are DB servers. Stored in the use DB registration / registration history database 202 (S19). In addition, the fact of the acquisition request from the user C, the contents of F (c), and the transmission of k (c) / k1 (c) are stored in the client terminal DB usage history database 203 (S19).

DBサーバ100では、送信された暗号鍵k(c)、K(a)/K1(a)及びK(b)/K1(b)が暗号鍵入力ポート104によって受信され、F(c)を含む送信要求がDB演算手順入力ポート107によって受信される。続いて、暗号鍵K(a)及びK(b)がDB復号モジュール106に出力される。また、暗号鍵k(c)、K1(a)及びK1(b)は、DB暗号化モジュール105に出力される。続いて、DB復号モジュール106では、DB/DBサムネイルストレージ・モジュール103を介してDBデータベース101から、enDB(a)及びenDB(b)が取得される。続いて、DB復号モジュール106によってenDB(a)及びenDB(b)がK(a)及びK(b)で復号されて、DB(a)及びDB(b)がDBサーバ100の演算メモリ上に展開される。   In the DB server 100, the transmitted encryption keys k (c), K (a) / K1 (a), and K (b) / K1 (b) are received by the encryption key input port 104 and include F (c). A transmission request is received by the DB operation procedure input port 107. Subsequently, the encryption keys K (a) and K (b) are output to the DB decryption module 106. The encryption keys k (c), K1 (a), and K1 (b) are output to the DB encryption module 105. Subsequently, the DB decryption module 106 acquires enDB (a) and enDB (b) from the DB database 101 via the DB / DB thumbnail storage module 103. Subsequently, enDB (a) and enDB (b) are decrypted by K (a) and K (b) by the DB decryption module 106, and DB (a) and DB (b) are stored in the arithmetic memory of the DB server 100. Be expanded.

続いて、DB演算手順入力ポート107からF(c)がDB演算手順ストレージ・モジュール112を介してDB演算モジュール110に入力される。DB演算モジュール110によって、DBサーバ100の演算メモリ上のDB(a)及びDB(b)に対して、F(c)に従う演算処理が行われ、DB(c)が生成される。生成されたDB(c)は、DB暗号化モジュール105に出力され、暗号鍵k(c)で暗号化される。暗号化されたenDB(c)は、ユーザCのクライアント端末300に送信される(S20)。   Subsequently, F (c) is input from the DB operation procedure input port 107 to the DB operation module 110 via the DB operation procedure storage module 112. The DB arithmetic module 110 performs arithmetic processing according to F (c) on DB (a) and DB (b) on the arithmetic memory of the DB server 100, and DB (c) is generated. The generated DB (c) is output to the DB encryption module 105 and encrypted with the encryption key k (c). The encrypted enDB (c) is transmitted to the client terminal 300 of the user C (S20).

また、復号されたDB(a)及びDB(b)も、DB暗号化モジュール105によって、暗号鍵K1(a)及びK1(b)で再暗号化されて、DBデータベース101に再び格納される。なお、K(a)及びK(b)は廃棄される。また、上記のデータベースの入出力の処理は、DB演算手順入力ポート107により受信された送信要求に基づいて、DB演算処理制御モジュール108及びデータベース管理モジュール109等により行われる。   The decrypted DB (a) and DB (b) are also re-encrypted with the encryption keys K1 (a) and K1 (b) by the DB encryption module 105 and stored in the DB database 101 again. K (a) and K (b) are discarded. The database input / output processing is performed by the DB operation processing control module 108 and the database management module 109 based on the transmission request received by the DB operation procedure input port 107.

一方、クライアント端末300では、暗号鍵入力ポート306によって、鍵管理サーバ200から送信される暗号鍵k(c)/k1(c)が受信される。受信されたenDB(c)は、DBストレージ・モジュール309に出力される。また、DB入出力ポート310によって、DBサーバ100から送信されるenDB(c)が受信される。暗号鍵k(c)はDB復号モジュール308に出力され、暗号鍵k1(c)はDB暗号化モジュール307に出力される。続いて、DB復号モジュール308によって、enDB(c)が復号されて、DB(c)としてクライアント端末300において利用可能となる。クライアント端末300において、使用後、DB(c)又はその改変ファイルが閉じられると、DB暗号化モジュール307によって、暗号鍵k1(c)で再暗号化される(S21)。   On the other hand, the client terminal 300 receives the encryption key k (c) / k1 (c) transmitted from the key management server 200 through the encryption key input port 306. The received enDB (c) is output to the DB storage module 309. Further, enDB (c) transmitted from the DB server 100 is received by the DB input / output port 310. The encryption key k (c) is output to the DB decryption module 308, and the encryption key k1 (c) is output to the DB encryption module 307. Subsequently, enDB (c) is decrypted by the DB decryption module 308 and can be used in the client terminal 300 as DB (c). In the client terminal 300, when the DB (c) or its modified file is closed after use, the DB encryption module 307 re-encrypts with the encryption key k1 (c) (S21).

再暗号化されたDB(c)を、復号するにはk1(c)を鍵管理サーバ200に要求する。当該要求を受けた鍵管理サーバ200では、上述した処理と同様に、暗号鍵k1(c)及びk2(c)が生成されて、クライアント端末300に送信される(S22)。鍵管理サーバ200では、ユーザCからの取得要求の事実、k1(c)/k2(c)を送出したことが、クライアント端末用DB利用履歴データベース203に格納される(S23)。以上が、ユーザCのクライアント端末300によって、DBサーバ100からDB(a)及びDB(b)のデータが取得されて、新たなデータベースが生成されるまでの処理である。   In order to decrypt the re-encrypted DB (c), the key management server 200 is requested for k1 (c). In the key management server 200 that has received the request, the encryption keys k1 (c) and k2 (c) are generated and transmitted to the client terminal 300 (S22) as in the above-described process. In the key management server 200, the fact that the acquisition request from the user C, k1 (c) / k2 (c) has been sent, is stored in the client terminal DB usage history database 203 (S23). The above is the processing from the DB (a) and DB (b) data being acquired from the DB server 100 by the user C's client terminal 300 until a new database is generated.

なお、上述した暗号鍵を更新する過程を省略して、暗号鍵k(c)を耐タンパなエリアに保管して反復使用することで簡易な再暗号化を行うシステムも考えられる。確かに、仮に暗号鍵k(c)をハッキングされても、被害はDB(c)とその改変ファイルに及ぶだけで大きく広がるおそれは少なく、DB(c)自体もuC(a)及びuC(b)というフィルタを通過しているので機密性がそれほど高いものではないと考えられる。   A system that performs simple re-encryption by omitting the above-described process of updating the encryption key and storing the encryption key k (c) in a tamper-resistant area and repeatedly using it can be considered. Certainly, even if the encryption key k (c) is hacked, there is little possibility that the damage will spread to the DB (c) and its modified files, and the DB (c) itself is also uC (a) and uC (b ), It is considered that the confidentiality is not so high.

しかし、暗号化更新の過程を省くことは暗号鍵ハッキングの危険性を増すことには違いがなく、クライアント端末300でのデータベース使用状況を鍵管理サーバ200の履歴に残さないことも事後監査の可能性を閉ざすことには違いがない。また、機密性とは相対的なもので、あるアクセス権にとっては機密性が高くないことでも、他のアクセス権にとっては高いということもありえるので注意が必要である。   However, omitting the encryption update process does not increase the risk of encryption key hacking, and the database usage status at the client terminal 300 is not recorded in the history of the key management server 200. There is no difference in closing sex. Also, it should be noted that confidentiality is relative and may not be highly confidential for some access rights but may be high for other access rights.

逆に上述した暗号鍵更新の過程が担保されているのであれば、これを利用して例えば、ユーザCがユーザDのクライアント端末300にenDB(c)を転送し、ユーザDが鍵管理サーバ200にk1(c)を要求し、鍵管理サーバ200は要求に基づいて「ユーザDのアクセス権」を参照して、k1(c)発行の可否を判断して、可ならk1(c)をユーザDのクライアント端末300に送るファイル交換システムも考えられる。   Conversely, if the above-described encryption key update process is secured, for example, user C transfers enDB (c) to user D's client terminal 300 and user D uses key management server 200. , And the key management server 200 refers to the “user D access right” based on the request to determine whether k1 (c) is issued. A file exchange system to be sent to the client terminal 300 of D can also be considered.

しかし、ユーザCがDB(c)を他のユーザの利用に供したいのであれば、DB(c)を鍵管理サーバ200に登録すれば済むことである。あえて、上記のようなファイル交換システムを併用する必要はなく、併用すればシステムを複雑にしてセキュリティホールを拡大するおそれがある。   However, if the user C wants to use the DB (c) for other users, the DB (c) may be registered in the key management server 200. It is not necessary to use the file exchange system as described above together. If it is used together, the system may be complicated and a security hole may be expanded.

引き続いて、図11のシーケンス図を用いて、上述のように生成されたDB(c)あるいはその改変ファイルが、二次データベースとしてDBサーバ100に登録されるまでの処理を説明する。   Subsequently, a process until the DB (c) generated as described above or its modified file is registered in the DB server 100 as a secondary database will be described using the sequence diagram of FIG.

まず、上述した処理と同様に、ユーザCのクライアント端末300では、DB(c)をDBサーバ100に登録するために、DB(c)のサムネイルDBth(c)、利用許諾条件uC(c)及び登録許諾条件rC(c)が生成される。図12(a)に利用許諾条件uC(c)を、図12(b)に登録許諾条件rC(c)をそれぞれ示す。   First, similarly to the above-described process, in the client terminal 300 of the user C, in order to register the DB (c) in the DB server 100, the thumbnail DBth (c) of the DB (c), the use permission condition uC (c), and A registration permission condition rC (c) is generated. FIG. 12A shows the use permission condition uC (c), and FIG. 12B shows the registration permission condition rC (c).

続いて、クライアント端末300では、DB登録請求モジュール302において、DBth(c)にuC(c)及びrC(c)が付される。続いて、DBth(c)、uC(c)及びrC(c)がDB(c)のDBサーバ100への登録要求として、DB利用/登録請求出力ポート303を介して、鍵管理サーバ200に送信される(S41)。   Subsequently, in the client terminal 300, the DB registration request module 302 adds uC (c) and rC (c) to DBth (c). Subsequently, DBth (c), uC (c), and rC (c) are transmitted to the key management server 200 via the DB use / registration request output port 303 as a registration request to the DB server 100 of DB (c). (S41).

鍵管理サーバ200では、送信された登録要求がDB利用/登録請求入力ポート206によって受信される。受信された登録要求は、DB登録条件可否判断モジュール211に出力される。DB登録条件可否判断モジュール211では、uC(c)及びrC(c)が、DB(c)の取得元となったDB(a)のrC(a)及びDB(b)のrC(b)を満たすか否かが、DB登録データベース201に格納されたrC(a)及びrC(b)が参照されて判断される(S42)。この判断は、論理演算を行うことにより行われる。また、DB(c)が、DB(a)及びDB(b)からデータに基づいて生成されていることは、例えば、DB(c)が生成される際に用いられたF(c)が参照されて判断される。なお、上記の判断の対象となるのは、DB(a)あるいはDB(b)からそのまま利用されている属性のデータ(DB(c)では“担当地区”)のみであり、DB(c)を生成される際に新たに生成された属性(DB(c)では“実力指数”)については、判断の対象外となる。   In the key management server 200, the transmitted registration request is received by the DB use / registration request input port 206. The received registration request is output to the DB registration condition availability determination module 211. In the DB registration condition availability determination module 211, uC (c) and rC (c) use rC (a) of DB (a) and rC (b) of DB (b), which are the acquisition sources of DB (c). Whether or not it is satisfied is determined by referring to rC (a) and rC (b) stored in the DB registration database 201 (S42). This determination is made by performing a logical operation. In addition, DB (c) is generated based on data from DB (a) and DB (b), for example, refer to F (c) used when DB (c) is generated. To be judged. Note that only the attribute data that is used as is from DB (a) or DB (b) ("area in charge" in DB (c)) is subject to the above judgment. The newly generated attribute (“ability index” in DB (c)) is not subject to judgment.

判断対象となる属性の“担当地区”は、DB(a)から取得されたものであるので、図12に示すuC(c)及びrC(c)の“担当地区”に係る許諾条件と図7(b)に示すrC(a)の“担当地区”に係る許諾条件とが比較される。“担当地区”のデータに関しては、rC(a)はユーザC以外のユーザには、「読み込み」「集計・演算」「二次DBへの書き出し」を許諾しておらず、uC(c)及びrC(c)の何れもデータの所有者であったユーザA以外のユーザには、「読み込み」「集計・演算」「二次DBへの書き出し」を許諾していないので、各ユーザ及び属性の各項目について比較論理演算の結果、条件を満たすと判断される。   Since the “responsible district” of the attribute to be determined is acquired from the DB (a), the permission conditions relating to the “responsible district” of uC (c) and rC (c) shown in FIG. The permission conditions relating to the “area in charge” of rC (a) shown in (b) are compared. Regarding the data of “area in charge”, rC (a) does not permit users other than user C to “read”, “aggregate / calculate”, and “write to secondary DB”, and uC (c) and Since none of rC (c) is the data owner, users other than user A are not permitted to “read”, “aggregate / calculate”, and “write to secondary DB”. As a result of the comparison logical operation for each item, it is determined that the condition is satisfied.

ここで、例えば、uC(c)又はrC(c)において、ユーザBに対して、“担当地区”に係るデータについて、「読み込み」「集計・演算」「二次DBへの書き出し」の何れかが許諾されていた場合、rC(a)を満たさないので、比較論理演算の結果、条件を満たさないと判断される。このように判断された場合、鍵管理サーバ200からクライアント端末300にDB(c)の登録ができない旨が通知される(S43)。   Here, for example, in uC (c) or rC (c), for user B, any one of “read”, “aggregation / calculation”, and “write to secondary DB” for the data related to “area in charge” Since rC (a) is not satisfied, it is determined that the condition is not satisfied as a result of the comparison logical operation. If it is determined in this way, the key management server 200 notifies the client terminal 300 that the DB (c) cannot be registered (S43).

この判断は、DB(c)が、他のデータベースから当該データベースを作成したユーザがアクセス権のある者にしか公開したくないデータを取得していた場合、それらのデータがDB(c)の登録によって開示されることを防いでいる。   This determination is based on the fact that the DB (c) acquires data that the user who created the database from other databases wants to make it available only to those who have access rights. Is prevented from being disclosed.

条件を満たすと判断された場合は、上述したDB(a)の登録時と同様に以下の処理が行われる。まず、DB登録モジュール207によって、DBth(c)に対して、データベースを特定するIDである“ID:DB(c)”が生成されて、割り当てられる。続いて、DB登録モジュール207からデータベース管理モジュール208を介して、DB登録データベース201に当該ID及び登録要求に係る情報である{“ID:DB(c)”、“ユーザC”、“DBth(c)”、“uC(c)”、“rC(c)”}が格納される(S44)。   If it is determined that the condition is satisfied, the following processing is performed in the same manner as when the DB (a) is registered. First, the DB registration module 207 generates and assigns “ID: DB (c)”, which is an ID for identifying a database, to DBth (c). Subsequently, the database registration module 207 sends information related to the ID and the registration request to the DB registration database 201 via the database management module 208 {“ID: DB (c)”, “user C”, “DBth (c ) "," UC (c) "," rC (c) "} are stored (S44).

続いて、DB登録モジュール207から暗号鍵生成モジュール212に対して、暗号鍵を作成する指示が行われる。指示を受けた暗号鍵生成モジュール212によって、DB(c)用の暗号鍵K(c)が生成される。この暗号鍵は、データベースをDBサーバ100に登録する際にデータベースを暗号化する、登録用暗号鍵である。また、この暗号鍵は、共通鍵である。生成された暗号鍵K(c)は、データベース管理モジュール208を介して、DBサーバ用暗号鍵データベース204及びクライアント端末用暗号鍵データベース205に格納される。   Subsequently, the DB registration module 207 instructs the encryption key generation module 212 to create an encryption key. Upon receiving the instruction, the encryption key generation module 212 generates the encryption key K (c) for DB (c). This encryption key is a registration encryption key for encrypting the database when the database is registered in the DB server 100. The encryption key is a common key. The generated encryption key K (c) is stored in the DB server encryption key database 204 and the client terminal encryption key database 205 via the database management module 208.

生成された暗号鍵K(c)は、暗号鍵生成モジュール212から暗号鍵送出モジュール213に出力される。続いて、暗号鍵は、暗号鍵送出モジュール213から、暗号鍵出力ポート214を介して、登録要求を送信したクライアント端末300に送信される(S45)。なお、暗号鍵の送付と併せて、鍵管理サーバ200からクライアント端末300に、DB(c)のID“ID:DB(c)”が通知される。上記の処理が行われると、ユーザCからの登録要求の事実、K(c)を送出したことが、クライアント端末用DB利用履歴データベース203に格納される(S46)。   The generated encryption key K (c) is output from the encryption key generation module 212 to the encryption key transmission module 213. Subsequently, the encryption key is transmitted from the encryption key transmission module 213 to the client terminal 300 that transmitted the registration request via the encryption key output port 214 (S45). In addition to the transmission of the encryption key, the key management server 200 notifies the client terminal 300 of the ID “ID: DB (c)” of DB (c). When the above processing is performed, the fact that the registration request from user C, K (c) has been sent, is stored in the client terminal DB use history database 203 (S46).

ユーザCのクライアント端末300では、暗号鍵入力ポート306によって、鍵管理サーバ200から送信された暗号鍵K(c)が受信される。続いて、DB暗号化モジュール307によって、DB(c)がK(c)で暗号化される。暗号化されたデータベースであるenDB(c)は、DBストレージ・モジュール309に格納される。その後、enDB(c)には、“ID:DB(c)”及びDBth(c)が付されて、DBサーバ100に送信(アップロード)される(S47)。   In the client terminal 300 of the user C, the encryption key K (c) transmitted from the key management server 200 is received by the encryption key input port 306. Subsequently, DB (c) is encrypted with K (c) by the DB encryption module 307. The enDB (c) that is an encrypted database is stored in the DB storage module 309. After that, “ID: DB (c)” and DBth (c) are attached to enDB (c) and transmitted (uploaded) to the DB server 100 (S47).

DBサーバ100では、DB/DBサムネイル入出力ポート111によって、enDB(c)が受信される。受信されたenDB(c)は、DB/DBサムネイルストレージ・モジュール103に出力されて、DB/DBサムネイルストレージ・モジュール103によって“ID:DB(c)”に対応付けられてDBデータベース101に格納される。また、DBth(c)は、DB/DBサムネイルストレージ・モジュール103によって、“ID:DB(c)”に対応付けられてDBサムネイルデータベース102に格納される(S48)。以上が、クライアント端末300において新規にデータベースが作成されて、DBサーバ100に登録されるまでの処理である。   In the DB server 100, enDB (c) is received by the DB / DB thumbnail input / output port 111. The received enDB (c) is output to the DB / DB thumbnail storage module 103, and stored in the DB database 101 in association with “ID: DB (c)” by the DB / DB thumbnail storage module 103. The DBth (c) is stored in the DB thumbnail database 102 in association with “ID: DB (c)” by the DB / DB thumbnail storage module 103 (S48). The above is the processing from when a new database is created in the client terminal 300 and registered in the DB server 100.

上記の処理によりDB(a)及びDB(b)から生成された二次データベースであるDB(c)がDBサーバ100に登録され公開される際には、DB(a)及びDB(b)に設定された権限を継承した、利用許諾条件が設定されるので、適切にアクセス制限を行うことができる。   When DB (c), which is a secondary database generated from DB (a) and DB (b) by the above processing, is registered and released in DB server 100, DB (a) and DB (b) Since the use permission condition that inherits the set authority is set, it is possible to appropriately restrict access.

また、本実施形態では、DBサーバ100に登録されるデータベースは利用されるとき以外は常に暗号化されているので、暗号鍵を所持しているものしか参照することができず、高いセキュリティを保つことができる。また、暗号鍵は暗号化のたびに更新されるので、暗号鍵そのものをハッキングしても解読の用をなさない。また、暗号鍵と引き換えに、データベースの利用及び登録の履歴が残るので、事後監査が容易である。   In this embodiment, since the database registered in the DB server 100 is always encrypted except when it is used, only those possessing the encryption key can be referred to, and high security is maintained. be able to. Further, since the encryption key is updated every time it is encrypted, it is not used for decryption even if the encryption key itself is hacked. Further, since the database usage and registration history remains in exchange for the encryption key, post-audit is easy.

即ち、本実施形態によれば、(1)一旦クライアント端末300にダウンロードしたデータベース及びその改変ファイル(上書き保存、名前を変えて保存、識別子を変えて保存したファイルなど)は、メモリに入れて持ち出したり、ネットを通じて転送したり、プリンタに出力したりしても暗号化されていて解読できない。(2)暗号化されたデータベースであっても、内容を秘匿したままで相互に演算処理を施して、所望する二次データベースを得ることができる。(3)ハッキングした暗号鍵でデータベースを開けようとしたり、一旦入手した暗号鍵を保存しておいて別の機会にデータベースを開けようとしたりしても、データベースは常に更新された暗号鍵で再暗号化されているので開けることはできない。   That is, according to the present embodiment, (1) a database once downloaded to the client terminal 300 and its modified file (overwrite, save with different names, saved with different identifiers, etc.) are put in memory and taken out Even if it is transferred over the Internet or output to a printer, it is encrypted and cannot be decrypted. (2) Even if it is an encrypted database, it is possible to obtain a desired secondary database by mutually performing arithmetic processing while keeping the contents secret. (3) Even if you try to open the database with a hacked encryption key, or save the encryption key once and try to open the database at another time, the database will always be reopened with the updated encryption key. It cannot be opened because it is encrypted.

また、本実施形態のように、DBサーバ100が、DBデータベース101に格納されているデータベースの属性を示す情報を含むサムネイルを格納するDBサムネイルデータベース102を備えることとすれば、DBデータベース101に格納されているデータベースが暗号化されているにもかかわらず、上述したようにクライアント端末300のユーザが、どのようなデータベースがデータベース格納手段に格納されているかを知ることができる。   Further, as in the present embodiment, if the DB server 100 includes a DB thumbnail database 102 that stores thumbnails including information indicating attributes of the database stored in the DB database 101, the DB server 100 stores the thumbnails. Even though the database being encrypted is encrypted, the user of the client terminal 300 can know what database is stored in the database storage means as described above.

なお、本実施形態では、DBサーバ100と鍵管理サーバ200とは別々の構成にしていたが、それらが一体に構成されていることとしてもよい。この構成によれば、より簡易な構成で本発明に係るデータ管理システム1を実現することができる。   In the present embodiment, the DB server 100 and the key management server 200 are configured separately, but they may be configured integrally. According to this configuration, the data management system 1 according to the present invention can be realized with a simpler configuration.

本発明の実施形態に係るデータ管理システムの構成を示す図である。It is a figure which shows the structure of the data management system which concerns on embodiment of this invention. 本発明の実施形態に係るDBサーバの構成を示す図である。It is a figure which shows the structure of DB server which concerns on embodiment of this invention. 本発明の実施形態に係る鍵管理サーバの構成を示す図である。It is a figure which shows the structure of the key management server which concerns on embodiment of this invention. 本発明の実施形態に係るクライアント端末の構成を示す図である。It is a figure which shows the structure of the client terminal which concerns on embodiment of this invention. 本発明の実施形態に係るデータ管理システムにおける処理を示すシーケンス図である。It is a sequence diagram which shows the process in the data management system which concerns on embodiment of this invention. 実施形態に係るデータベースのテーブルを示す図である。It is a figure which shows the table of the database which concerns on embodiment. データベースの利用許諾条件及び登録許諾条件を示す図である。It is a figure which shows the use permission conditions and registration permission conditions of a database. データベースの利用許諾条件及び登録許諾条件を示す図である。It is a figure which shows the use permission conditions and registration permission conditions of a database. 本発明の実施形態に係るデータ管理システムにおける別の処理を示すシーケンス図である。It is a sequence diagram which shows another process in the data management system which concerns on embodiment of this invention. 複数のデータベースから生成されたデータベースのテーブルを示す図である。It is a figure which shows the table of the database produced | generated from the some database. 本発明の実施形態に係るデータ管理システムにおける別の処理を示すシーケンス図である。It is a sequence diagram which shows another process in the data management system which concerns on embodiment of this invention. データベースの利用許諾条件及び登録許諾条件を示す図である。It is a figure which shows the use permission conditions and registration permission conditions of a database.

符号の説明Explanation of symbols

1…データ管理システム、100…DBサーバ、101…DBデータベース、102…DBサムネイルデータベース、103…DB/DBサムネイルストレージ・モジュール、104…暗号鍵入力ポート、105…DB暗号化モジュール、106…DB復号モジュール、107…DB演算手順入力ポート、108…DB演算処理制御モジュール、109…データベース管理モジュール、110…演算モジュール、111…DB/DBサムネイル入出力ポート、112…DB演算手順ストレージ・モジュール、200…鍵管理サーバ、201…DB登録データベース、202…DBサーバ用DB利用/登録履歴データベース、203…クライアント端末用利用履歴データベース、204…DBサーバ用暗号鍵データベース、205…クライアント端末用暗号鍵データベース、206…DB利用/登録請求入力ポート、207…DB登録モジュール、208…データベース管理モジュール、209…DB演算手順検索モジュール、210…DB利用実行可否判断モジュール、211…登録条件可否判断モジュール、212…暗号鍵生成モジュール、213…暗号鍵送出モジュール、214…暗号鍵出力ポート、300…クライアント端末、301…ユーザ・インタフェース、302…DB登録請求モジュール、303…DB利用/登録請求出力ポート、304…DB利用請求モジュール、305…DB演算手順生成モジュール、306…暗号鍵入力ポート、307…DB暗号化モジュール、308…DB復号モジュール、309…DBストレージ・モジュール、310…入出力ポート、N…ネットワーク。   DESCRIPTION OF SYMBOLS 1 ... Data management system, 100 ... DB server, 101 ... DB database, 102 ... DB thumbnail database, 103 ... DB / DB thumbnail storage module, 104 ... Encryption key input port, 105 ... DB encryption module, 106 ... DB decryption Module: 107 ... DB operation procedure input port, 108 ... DB operation processing control module, 109 ... Database management module, 110 ... Operation module, 111 ... DB / DB thumbnail input / output port, 112 ... DB operation procedure storage module, 200 ... Key management server, 201 ... DB registration database, 202 ... DB server DB use / registration history database, 203 ... Client terminal use history database, 204 ... DB server encryption key database, 205 ... Client Encryption key database for terminal, 206 ... DB use / registration request input port, 207 ... DB registration module, 208 ... Database management module, 209 ... DB operation procedure search module, 210 ... DB use execution availability determination module, 211 ... Registration condition availability Judgment module, 212 ... Encryption key generation module, 213 ... Encryption key transmission module, 214 ... Encryption key output port, 300 ... Client terminal, 301 ... User interface, 302 ... DB registration request module, 303 ... DB use / registration request output Port 304: DB usage request module 305 DB operation procedure generation module 306 Encryption key input port 307 DB encryption module 308 DB decryption module 309 DB storage module 310 Input / output port ... network.

Claims (3)

ネットワークを介して互いに接続されるデータベースサーバと鍵管理サーバとを含んで構成されるデータ管理システムであって、
前記データベースサーバは、
暗号化されたデータベースを格納するデータベース格納手段と、
前記鍵管理サーバから送信されるサーバ用暗号鍵によって、前記データベース格納手段に格納されたデータベースを復号する復号手段と、
前記鍵管理サーバから送信される演算手順を示す情報に基づいて、前記復号手段により復号されたデータベースに対して演算を行う演算手段と、
前記演算手段による演算の結果のデータを前記鍵管理サーバから送信される端末用暗号鍵によって暗号化して出力すると共に、前記鍵管理サーバから送信されるサーバ用暗号鍵によって、前記復号手段により復号されたデータベースを再暗号化する暗号化手段と、を備え、
前記鍵管理サーバは、
前記データベースサーバに格納されるデータベースの利用許諾条件及び登録許諾条件を示す情報を、ユーザ及び当該データベースの属性毎に格納する条件格納手段と、
端末から送信される、前記データベースサーバに格納されるデータベースに格納されるデータの取得要求及び当該取得要求に係るユーザを特定する情報を受信する取得要求受信手段と、
前記受信手段により受信された取得要求に係るデータが前記ユーザにより利用可能か否かを、前記条件格納手段に格納された前記利用許諾条件を参照することにより判断する利用可否判断手段と、
前記利用可否判断手段により、前記取得要求に係るデータが前記ユーザにより利用可能と判断された場合、当該データが格納されるデータベースを復号及び暗号化するサーバ用暗号鍵、及び前記取得されるデータを暗号化する端末用暗号鍵を生成する利用用暗号鍵生成手段と、
前記取得要求に係るデータを取得するための演算手順を示す情報、並びに前記暗号鍵生成手段により生成された前記サーバ用暗号鍵及び前記端末用暗号鍵と共に、前記端末からの前記取得要求に係るデータの送信要求を前記データベースサーバに送信する送信要求手段と、
前記端末から、前記送信要求手段による送信に応じて取得された前記データをデータベースとして前記データベースサーバへ登録するための登録要求を、当該データベースの、ユーザ及び属性毎の利用許諾条件及び登録許諾条件を示す情報と共に受信する登録要求受信手段と、
前記登録要求受信手段により受信された登録要求に係るデータの前記利用許諾条件及び前記登録許諾条件が、当該データの取得元となったデータベースの登録許諾条件を満たすか否かを、前記条件格納手段に格納された前記登録許諾条件を参照することにより判断する登録可否判断手段と、
前記登録可否判断手段により、前記登録要求に係るデータの前記利用許諾条件及び前記登録許諾条件が、当該データの取得元となったデータベースの登録許諾条件を満たすと判断された場合、当該データを前記データベースサーバへの登録のために暗号化する登録用暗号鍵を生成して、前記端末に送信する登録用暗号鍵生成手段と、を備える
ことを特徴とするデータ管理システム。
A data management system including a database server and a key management server connected to each other via a network,
The database server is
Database storage means for storing an encrypted database;
Decryption means for decrypting the database stored in the database storage means with a server encryption key transmitted from the key management server;
Based on information indicating a calculation procedure transmitted from the key management server, calculation means for performing calculation on the database decrypted by the decryption means;
Data obtained as a result of the calculation by the calculation means is encrypted and output by the terminal encryption key transmitted from the key management server, and is decrypted by the decryption means by the server encryption key transmitted from the key management server. An encryption means for re-encrypting the database,
The key management server
Condition storage means for storing information indicating the use permission condition and registration permission condition of the database stored in the database server for each attribute of the user and the database;
An acquisition request receiving means for receiving an acquisition request for data stored in a database stored in the database server and information identifying a user related to the acquisition request transmitted from a terminal;
Availability judgment means for judging whether or not the data related to the acquisition request received by the reception means can be used by the user by referring to the use permission condition stored in the condition storage means;
When it is determined that the data related to the acquisition request can be used by the user by the availability determination unit, the server encryption key for decrypting and encrypting the database in which the data is stored, and the acquired data A use encryption key generation means for generating a terminal encryption key to be encrypted;
Data indicating the calculation request for acquiring the data related to the acquisition request, and the data related to the acquisition request from the terminal together with the server encryption key and the terminal encryption key generated by the encryption key generation unit Transmission request means for transmitting the transmission request to the database server;
From the terminal, a registration request for registering the data acquired in response to transmission by the transmission request unit as a database to the database server is set as a usage permission condition and a registration permission condition for each user and attribute of the database. Registration request receiving means for receiving together with the indicated information;
Whether or not the use permission condition and the registration permission condition of the data related to the registration request received by the registration request receiving means satisfy the registration permission condition of the database from which the data is acquired. Registration permission determination means for determining by referring to the registration permission condition stored in
If the registration permission determination unit determines that the use permission condition and the registration permission condition of the data related to the registration request satisfy the registration permission condition of the database from which the data is obtained, the data is A data management system comprising: a registration encryption key generation unit that generates a registration encryption key to be encrypted for registration in a database server and transmits the registration encryption key to the terminal.
前記データベースサーバと前記鍵管理サーバとは一体に構成されていることを特徴とする請求項1に記載のデータ管理システム。   The data management system according to claim 1, wherein the database server and the key management server are integrally configured. 前記データベースサーバは、前記データベース格納手段に格納されるデータベースの属性を示す情報を格納する属性情報格納手段を更に備えることを特徴とする請求項1又は2に記載のデータ管理システム。   The data management system according to claim 1 or 2, wherein the database server further comprises attribute information storage means for storing information indicating attributes of the database stored in the database storage means.
JP2006307095A 2006-11-13 2006-11-13 Data management system Pending JP2008124837A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006307095A JP2008124837A (en) 2006-11-13 2006-11-13 Data management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006307095A JP2008124837A (en) 2006-11-13 2006-11-13 Data management system

Publications (1)

Publication Number Publication Date
JP2008124837A true JP2008124837A (en) 2008-05-29

Family

ID=39509127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006307095A Pending JP2008124837A (en) 2006-11-13 2006-11-13 Data management system

Country Status (1)

Country Link
JP (1) JP2008124837A (en)

Similar Documents

Publication Publication Date Title
US10275603B2 (en) Containerless data for trustworthy computing and data services
JP4759513B2 (en) Data object management in dynamic, distributed and collaborative environments
TWI532355B (en) Trustworthy extensible markup language for trustworthy computing and data services
US20050251865A1 (en) Data privacy management system and method
US20070226488A1 (en) System and method for protecting digital files
US20060236104A1 (en) Method and apparatus for encrypting and decrypting data in a database table
TW201123807A (en) Verifiable trust for data through wrapper composition
KR20060096887A (en) Method and computer-readable medium for generating usage rights for an item based upon access rights
JP7235668B2 (en) REGISTRATION METHOD, COMPUTER AND PROGRAM
US10726104B2 (en) Secure document management
CN114579998A (en) Block chain assisted medical big data search mechanism and privacy protection method
US20240073005A1 (en) Method and system for digital health data encryption
TWI381285B (en) Rights management system for electronic files
JP4521514B2 (en) Medical information distribution system, information access control method thereof, and computer program
Kayem On monitoring information flow of outsourced data
JP4153709B2 (en) Access control method
JP2008124837A (en) Data management system
EP2816499B1 (en) Multi-layer data security
WO2023119554A1 (en) Control method, information processing device, and control program
JP4468755B2 (en) Log management apparatus, log management method, and log management program
US11625496B2 (en) Methods for securing and accessing a digital document
Isakov Exam Ref 70-764 Administering a SQL Database Infrastructure
EP3568798B1 (en) Data filing method and system
GB2434887A (en) Access control by encrypting stored data with a key based on a &#34;fingerprint&#34; of the device storing the data
Cottrell et al. Compliance and GDPR