WO2023119554A1 - Control method, information processing device, and control program - Google Patents

Control method, information processing device, and control program Download PDF

Info

Publication number
WO2023119554A1
WO2023119554A1 PCT/JP2021/047868 JP2021047868W WO2023119554A1 WO 2023119554 A1 WO2023119554 A1 WO 2023119554A1 JP 2021047868 W JP2021047868 W JP 2021047868W WO 2023119554 A1 WO2023119554 A1 WO 2023119554A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
information
database
server
individual
Prior art date
Application number
PCT/JP2021/047868
Other languages
French (fr)
Japanese (ja)
Inventor
雅樹 西垣
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2021/047868 priority Critical patent/WO2023119554A1/en
Publication of WO2023119554A1 publication Critical patent/WO2023119554A1/en

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
    • 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

Definitions

  • the information 24, 25, 26 and restoring the key information 16 are protected through the database 13 and the database management program 14. Therefore, even if an attacker intrudes into the information processing device 10 or the administrator of the information processing device 10 maliciously leaks information, there is a risk that the key information 16 will be illegally obtained by a third party. descend. As a result, the risk of unauthorized decryption of the encrypted data using the key information 16 is reduced, and data security is improved.
  • the information processing apparatus 10 may acquire package data including the database 13 and the database management program 14 from the source of the request for the key information 16, or may return the package data with the key information 16 stored. good. This enhances the protection of database 13 under the control of the requestor of key information 16 .
  • FIG. 5 is a diagram showing an example of arrangement of key element information in a server device.
  • the clerk server 35 stores individual key position information 141 and an individual key list 144 .
  • the clerk server 36 stores individual key location information 142 and an individual key list 145 .
  • the clerk server 37 stores individual key position information 143 and an individual key list 146 .
  • the key management server 31 also generates individual key lists 144, 145, and 146 based on the three individual keys and the three correct positions calculated above. For example, individual key list 146 contains the individual key for member server 32 in the correct position #6. Individual key list 144 contains the individual key for member server 33 in the correct position #2. Individual key list 145 contains the individual key for member server 34 in the correct position #4.
  • the user definition 136 indicates users who can access the database.
  • the user may be identified by the user name, the server name or role ID of the server device, or the communication address of the server device.
  • the authority definition 137 indicates the type of data manipulation permitted for each user. For example, whether or not data retrieval, data insertion, data update, and data deletion are allowed in the database is defined. Also, stored procedures that can be executed by each user among the registered stored procedures are specified.
  • the data file 132 is a file containing records of relational database tables.
  • Data file 132 is encrypted.
  • the unit of encryption may be coarse granularity, such as the entire data file 132, or fine granularity, such as table units or record units.
  • the management information file 131 and the data file 132 are generated and encrypted using a normal version of the DBMS program whose functions are not restricted.
  • a user definition 136, an authority definition 137, a data structure definition 138 and a procedure definition 139 suitable for realizing the encryption key recovery flow to be described later are set.
  • the normal version of the DBMS program is replaced with the DBMS program 133 .
  • the clerk table 161 and member table 162 are created when the data capsule 130 is generated and are not updated.
  • the encryption key table 163, the individual key position table 164, the individual key table 165, and the duplex key position table 166 are empty when the data capsule 130 is generated. Records are inserted into the individual key position table 164 and the individual key table 165 from the clerk servers 35 , 36 and 37 . Records are inserted from the member servers 32 , 33 , 34 into the encryption key table 163 and the duplicated key position table 166 .
  • the stored procedure 172 indicates individual key position calculation.
  • the stored procedure 172 is called when the stored procedure 171 outputs True.
  • the stored procedure 172 synthesizes the individual key position information contained in the individual key position table 164 and calculates an index indicating the individual key position of each member server. For example, the stored procedure 172 calculates the sum of even numbers times the product of odd numbers for each member server. Stored procedure 172 outputs the calculated individual key position. Note that the logic for calculating the individual key position is hidden in the stored procedure 172 and is not disclosed to the outside.
  • the stored procedure 177 indicates the completion of encryption key communication.
  • the stored procedure 177 is called when a record is inserted into the encryption key table 163 .
  • the stored procedure 177 collates the member table 162 and the encryption key table 163 to determine whether or not the encryption key reading results have been received from all the member servers.
  • the stored procedure 177 outputs True or False indicating the determination result.
  • the key management server 31 specifies the member identifier of the member server 32 and executes the stored procedure 173 .
  • Stored procedure 173 removes extraction failure information from data capsule 130 . This leaves the data capsule 130 with three individual keys corresponding to the member servers 32 , 33 , 34 .
  • the stored procedure 173 marks the individual key corresponding to the member identifier of the member server 32 among the three individual keys. At this time, the individual key is protected from the key management server 31 .
  • the key management server 31 executes the stored procedure 176.
  • the stored procedure 176 inputs the three numerical values collected from the member servers 32 , 33 , 34 into the hash function to calculate the double key position of the member server 32 .
  • the key management server 31 acquires “4” as the duplicate key position of the member server 32 from the stored procedure 176 . At this time, the collected numerical values and logic for synthesizing them are protected from the key management server 31 .
  • the key verification server 38 has a verification information storage section 128 and a key verification section 129 .
  • the verification information storage unit 128 is implemented using the RAM or HDD of the key verification server 38, for example.
  • the key verification unit 129 is implemented using, for example, the CPU, communication interface, and program of the key verification server 38 .
  • a plurality of key verification servers may exist.
  • FIG. 13 is a flow chart showing an example of a procedure for restoring an encryption key.
  • the key management server 31 receives a request for an encryption key from the target member server. At this time, the key management server 31 receives the data capsule 130 from the target member server.
  • the key management server 31 notifies the member servers 32, 33, and 34 of the location of the duplicated key of the target member server.
  • Each of the member servers 32, 33, and 34 extracts the key at the specified duplicate key position from the duplicate key list it owns.
  • the information processing system stores the individual key and duplicate key mixed with the trap key. This makes it difficult for an attacker who does not know the correct location to evade the trap, making the attack easier to detect.
  • the information processing system outputs an alert indicating the possibility of unauthorized access and delays the response of the server device. This makes it difficult for an attacker to access a large number of server devices in a short period of time, ensuring sufficient time to detect an attack and take countermeasures.
  • the fact that the trap key was selected is used to determine whether to invalidate the data encapsulation, improving security.
  • the information processing system distributes fragmentary position information for calculating the correct positions of the individual key and the duplicated key to a plurality of server devices. As a result, the number of server devices that an attacker must intrude to avoid the trap increases, and the time required for the attack increases.

Abstract

The present invention suppresses illicit acquisition of key information. An information processing device (10) receives a request for key information (16). The information processing device (10): saves input data and permits execution of a procedure (15); and uses a database (13), which is protected by a database management program (14) that restricts the readout of saved input data, to acquire information items (24, 25, 26) saved in the database (13) from a node (21, 22, 23). The information processing device (10) restores the key information (16) in the database (13) by executing a procedure (15) on the saved information items (24, 25, 26). The information processing device (10) outputs the database (13) including the key information (16) in response to the request.

Description

制御方法、情報処理装置および制御プログラムControl method, information processing device and control program
 本発明は制御方法、情報処理装置および制御プログラムに関する。 The present invention relates to a control method, an information processing device, and a control program.
 情報処理システムは、保存されたデータが第三者に漏洩しないように、データを暗号化して保護することがある。データを読み出す際には、情報処理システムは、鍵情報を用いて暗号化データを一時的に復号する。情報処理システムは、鍵情報として、共通鍵暗号方式の共通鍵または公開鍵暗号方式の秘密鍵を使用することがある。ただし、鍵情報が第三者に漏洩すると、暗号化データが不正に復号されてしまう。そのため、情報処理システムは、鍵情報を安全に管理することが重要である。 The information processing system may encrypt and protect the stored data so that it is not leaked to third parties. When reading data, the information processing system temporarily decrypts the encrypted data using the key information. An information processing system may use a common key of common key cryptography or a secret key of public key cryptography as key information. However, if the key information is leaked to a third party, the encrypted data will be illegally decrypted. Therefore, it is important for an information processing system to safely manage key information.
 なお、秘密情報を復元するための複数の分散データを秘密情報から生成して複数の端末装置に分散して送信し、秘密情報の要求に応じて、複数の端末装置から複数の分散データを収集して秘密情報を復元する通信装置が提案されている。 In addition, multiple distributed data for restoring confidential information are generated from the confidential information, distributed to multiple terminal devices and transmitted, and multiple distributed data are collected from multiple terminal devices in response to requests for confidential information. A communication device has been proposed that restores secret information by
特開2013-127647号公報JP 2013-127647 A
 鍵情報を管理する方法として、情報処理システムは、鍵情報の復元に用いられる複数の情報を複数のノードに分散して配置し、鍵情報が要求される毎に複数のノードから情報を収集して鍵情報を復元する方法が考えられる。しかし、鍵情報を復元する情報処理装置に攻撃者が侵入し、または、その情報処理装置の管理者が悪意をもって情報を漏洩させることで、第三者が鍵情報を不正取得するリスクがある。そこで、1つの側面では、本発明は、鍵情報の不正取得を抑止することを目的とする。 As a method of managing key information, an information processing system distributes and arranges a plurality of pieces of information used for restoring key information to a plurality of nodes, and collects information from a plurality of nodes each time key information is requested. A possible method is to restore the key information by However, there is a risk of unauthorized acquisition of key information by a third party due to an attacker intruding into an information processing device that restores key information, or an administrator of the information processing device maliciously leaking information. Accordingly, in one aspect, an object of the present invention is to prevent unauthorized acquisition of key information.
 1つの態様では、以下の処理をコンピュータが実行する制御方法が提供される。暗号化データの復号に用いられる鍵情報の要求を受け付ける。入力データの保存および保存された入力データを変換するプロシジャの実行を許可し、保存された入力データの読み出しを制限するデータベース管理プログラムによって保護されるデータベースを用いて、鍵情報の復元に用いられる要素情報および要素情報の変換方法を示すロジック情報のうちの少なくとも一方の情報をそれぞれもつ複数のノードから、データベースに保存された状態で情報を取得する。データベースに保存された情報に対してプロシジャを実行することで、データベースの中に鍵情報を復元する。要求に応答して、鍵情報を含むデータベースを出力する。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。また、1つの態様では、コンピュータに実行させる制御プログラムが提供される。 In one aspect, a control method is provided in which a computer executes the following processes. Accepts a request for key information used to decrypt encrypted data. Elements used to recover key information using a database protected by a database management program that permits the storage of input data, the execution of procedures that transform stored input data, and restricts the reading of stored input data Information stored in a database is obtained from a plurality of nodes each having at least one of information and logic information indicating a conversion method of element information. The key information is restored in the database by executing the procedure on the information stored in the database. Outputs a database containing key information in response to a request. Also, in one aspect, an information processing apparatus having a storage unit and a processing unit is provided. Also, in one aspect, a control program to be executed by a computer is provided.
 1つの側面では、鍵情報の不正取得が抑止される。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
In one aspect, unauthorized acquisition of key information is deterred.
The above and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings which represent exemplary preferred embodiments of the invention.
第1の実施の形態の情報処理装置を説明するための図である。1 is a diagram for explaining an information processing device according to a first embodiment; FIG. 第2の実施の形態の情報処理システムの例を示す図である。It is a figure which shows the example of the information processing system of 2nd Embodiment. サーバ装置のハードウェア例を示すブロック図である。It is a block diagram which shows the hardware example of a server apparatus. 暗号鍵から生成される鍵要素情報の例を示す図である。FIG. 4 is a diagram showing an example of key element information generated from an encryption key; サーバ装置への鍵要素情報の配置例を示す図である。It is a figure which shows the example of arrangement|positioning of the key element information to a server apparatus. データカプセルの構造例を示すブロック図である。4 is a block diagram showing an example structure of a data capsule; FIG. データベースに含まれるテーブルの例を示す図である。It is a figure which shows the example of the table contained in a database. データベースに含まれるプロシジャ定義の例を示す図である。It is a figure which shows the example of the procedure definition contained in a database. データベースに含まれる権限定義の例を示す図である。FIG. 4 is a diagram showing an example of authority definitions contained in a database; 暗号鍵の復元例を示す図である。FIG. 10 is a diagram showing an example of restoration of an encryption key; 暗号鍵の復元例を示す図(続き)である。FIG. 11 is a diagram (continued) showing an example of restoration of an encryption key; サーバ装置のソフトウェア構造例を示すブロック図である。It is a block diagram which shows the software structural example of a server apparatus. 暗号鍵復元の手順例を示すフローチャートである。FIG. 10 is a flowchart showing an example procedure of encryption key restoration; FIG. 暗号鍵復元の手順例を示すフローチャート(続き)である。FIG. 11 is a flowchart (continued) showing an example of a procedure of encryption key restoration; FIG.
 以下、本実施の形態を図面を参照して説明する。
 [第1の実施の形態]
 第1の実施の形態を説明する。
Hereinafter, this embodiment will be described with reference to the drawings.
[First embodiment]
A first embodiment will be described.
 図1は、第1の実施の形態の情報処理装置を説明するための図である。
 第1の実施の形態の情報処理装置10は、暗号化データの復号に用いられる鍵情報を管理する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、鍵管理装置または制御装置と呼ばれてもよい。
FIG. 1 is a diagram for explaining an information processing apparatus according to the first embodiment.
The information processing apparatus 10 according to the first embodiment manages key information used for decrypting encrypted data. The information processing device 10 may be a client device or a server device. The information processing device 10 may be called a computer, key management device, or control device.
 情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。 The information processing device 10 has a storage unit 11 and a processing unit 12 . The storage unit 11 may be a volatile semiconductor memory such as a RAM (Random Access Memory), or may be a non-volatile storage such as a HDD (Hard Disk Drive) or flash memory. The processing unit 12 is, for example, a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a DSP (Digital Signal Processor). However, the processing unit 12 may include an electronic circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). The processor executes programs stored in a memory such as a RAM (which may be the storage unit 11), for example. A collection of processors may be referred to as a multiprocessor or simply as a "processor."
 記憶部11は、データベース13およびデータベース管理プログラム14を記憶する。データベース13とデータベース管理プログラム14とは、パッケージデータとして結合されていてもよい。このパッケージデータが、データカプセルと呼ばれてもよい。 The storage unit 11 stores a database 13 and a database management program 14. The database 13 and database management program 14 may be combined as package data. This package data may be called a data capsule.
 データベース13は、データベース管理プログラム14を通じてアクセスされる。データベース13は、データを記憶する。データベース13が、データファイルまたはデータファイル群に相当してもよい。データベース13は、関係データベースでもよいし、ツリー型やネットワーク型などの非関係データベースでもよい。データベース13は、データベース管理プログラム14によって暗号化されてもよい。 The database 13 is accessed through the database management program 14. The database 13 stores data. Database 13 may correspond to a data file or group of data files. The database 13 may be a relational database or a non-relational database such as a tree type or network type. Database 13 may be encrypted by database management program 14 .
 データベース管理プログラム14は、データベース13を管理する。データベース管理プログラム14は、データベース13へのアクセスの種類を制限することで、データベース13を保護する。データベース管理プログラム14は、外部から入力される入力データをデータベース13に保存することを許可する。 The database management program 14 manages the database 13. The database management program 14 protects the database 13 by restricting types of access to the database 13 . The database management program 14 permits external input data to be stored in the database 13 .
 また、データベース管理プログラム14は、データベース13に保存された入力データを変換するプロシジャ15の実行を許可する。プロシジャ15は、例えば、データベース管理プログラム14に事前に登録されるストアドプロシジャであり、データベース13に対する処理手順を規定したプログラムである。プロシジャ15は、変換結果データを外部に出力してもよいし、データベース13に保存してもよい。ただし、プロシジャ15は、変換前の入力データそのものを外部に出力しない。また、プロシジャ15の処理手順そのものは外部に開示されない。データベース管理プログラム14は、プロシジャ15の定義を示す管理情報を暗号化して保持してもよい。 In addition, the database management program 14 permits the execution of the procedure 15 that converts the input data saved in the database 13. The procedure 15 is, for example, a stored procedure registered in the database management program 14 in advance, and is a program that defines the processing procedure for the database 13 . The procedure 15 may output the conversion result data to the outside or store it in the database 13 . However, the procedure 15 does not output the input data itself before conversion to the outside. Further, the processing procedure itself of the procedure 15 is not disclosed to the outside. The database management program 14 may encrypt and retain management information indicating the definition of the procedure 15 .
 一方、データベース管理プログラム14は、データベース13に保存された入力データの読み出しを制限する。なお、データベース管理プログラム14は、データベース13に入力データを保存することができるユーザを限定してもよく、プロシジャ15を実行することができるユーザを限定してもよい。データベース管理プログラム14は、ユーザのアクセス権限の定義を示す管理情報を暗号化して保持してもよく、運用開始後に管理情報を変更することを制限してもよい。 On the other hand, the database management program 14 restricts reading of the input data saved in the database 13. The database management program 14 may limit users who can save input data in the database 13 or limit users who can execute the procedure 15 . The database management program 14 may encrypt and hold management information indicating the definition of user access rights, and may restrict changes to the management information after the start of operation.
 処理部12は、暗号化データの復号に用いられる鍵情報16の要求を受け付ける。要求は、情報処理装置10の内部で生成されてもよいし、情報処理装置10の外部から受信されてもよい。処理部12は、鍵情報16を要求する情報処理装置から、データベース13およびデータベース管理プログラム14を含むパッケージデータを受信してもよい。 The processing unit 12 accepts a request for the key information 16 used to decrypt the encrypted data. The request may be generated inside the information processing device 10 or received from outside the information processing device 10 . The processing unit 12 may receive package data including the database 13 and the database management program 14 from the information processing device that requests the key information 16 .
 処理部12は、データベース13およびデータベース管理プログラム14を用いて、ノード21,22,23から情報24,25,26を収集する。このとき、情報24,25,26は、データベース13に保存された状態で取得される。例えば、処理部12は、ノード21,22,23に、データベース管理プログラム14を介して情報24,25,26をデータベース13に保存させる。よって、情報処理装置10は、情報24,25,26をデータベース13から読み出さず、情報24,25,26の内容を認識しない。 The processing unit 12 uses the database 13 and the database management program 14 to collect information 24, 25, 26 from the nodes 21, 22, 23. At this time, the information 24 , 25 , 26 are obtained while being stored in the database 13 . For example, the processing unit 12 causes the nodes 21 , 22 and 23 to store the information 24 , 25 and 26 in the database 13 via the database management program 14 . Therefore, the information processing apparatus 10 does not read the information 24, 25, 26 from the database 13 and does not recognize the contents of the information 24, 25, 26. FIG.
 ノード21,22,23は、情報処理装置10と異なる情報処理装置である。ノード21,22,23は、クライアント装置でもよいしサーバ装置でもよい。ノード21,22,23が、コンピュータまたはメンバ装置と呼ばれてもよい。なお、第1の実施の形態ではノード数が3であるが、ノード数は2以上あればよい。ノード21,22,23は、鍵情報16の復元に用いられる要素情報および要素情報の変換方法を示すロジック情報のうち、少なくとも一方の情報をそれぞれもつ。ノード21は情報24をもち、ノード22は情報25をもち、ノード23は情報26をもつ。なお、鍵情報16を要求する情報処理装置が、ノード21,22,23のうちの何れかのノードであってもよい。 The nodes 21 , 22 , 23 are information processing devices different from the information processing device 10 . The nodes 21, 22 and 23 may be client devices or server devices. Nodes 21, 22, 23 may be called computers or member devices. Although the number of nodes is three in the first embodiment, the number of nodes may be two or more. Each of the nodes 21, 22, and 23 has at least one of element information used to restore the key information 16 and logic information indicating a conversion method of the element information. Node 21 has information 24 , node 22 has information 25 and node 23 has information 26 . The information processing device requesting the key information 16 may be any one of the nodes 21, 22, and 23. FIG.
 情報24,25,26を取得するために、処理部12は、データベース管理プログラム14をサーバプロセスとして実行し、データベース13に情報24,25,26を保存するためのアプリケーションインタフェースをノード21,22,23に開示してもよい。また、処理部12は、データベース13、または、データベース13およびデータベース管理プログラム14を含むパッケージデータを、ノード21,22,23に順に送信して返信してもらってもよい。また、処理部12は、データベース13、または、データベース13およびデータベース管理プログラム14を含むパッケージデータを、複製してノード21,22,23に並列に送信して返信してもらってもよい。その場合、処理部12は、複製されたデータベース13の内容を、プロシジャ15を利用して統合する。 In order to acquire the information 24, 25, 26, the processing unit 12 executes the database management program 14 as a server process, and provides application interfaces for storing the information 24, 25, 26 in the database 13 to the nodes 21, 22, 26. 23 may be disclosed. Alternatively, the processing unit 12 may transmit the package data including the database 13 or the database 13 and the database management program 14 to the nodes 21, 22, and 23 in order and have them reply. In addition, the processing unit 12 may copy the package data including the database 13 or the database 13 and the database management program 14 and transmit them in parallel to the nodes 21, 22, and 23, and have them reply. In that case, the processing unit 12 uses the procedure 15 to integrate the duplicated contents of the database 13 .
 処理部12は、データベース13に保存された情報24,25,26に対してプロシジャ15を実行することで、データベース13の中に鍵情報16を復元する。鍵情報16は、例えば、共通鍵暗号方式の共通鍵または公開鍵暗号方式の秘密鍵である。鍵情報16を復元する過程で、情報処理装置10は、情報24,25,26や鍵情報16をデータベース13から読み出さず、情報24,25,26や鍵情報16の内容を認識しない。また、情報処理装置10は、プロシジャ15に定義された変換ロジックを認識しない。 The processing unit 12 restores the key information 16 in the database 13 by executing the procedure 15 on the information 24, 25, and 26 stored in the database 13. The key information 16 is, for example, a common key for common key cryptography or a secret key for public key cryptography. In the process of restoring the key information 16 , the information processing apparatus 10 does not read the information 24 , 25 , 26 or the key information 16 from the database 13 and does not recognize the contents of the information 24 , 25 , 26 or the key information 16 . Also, the information processing apparatus 10 does not recognize the conversion logic defined in the procedure 15 .
 このとき、プロシジャ15は、情報24,25,26に対して、結合、四則演算、論理演算などの数値計算を変換ロジックとして実行することで、変換後情報を生成してもよい。この変換後情報が、鍵情報16であってもよい。また、この変換後情報が、鍵情報16の位置を示す位置情報であってもよい。位置情報が生成された場合、処理部12は、位置情報が指し示す鍵情報16をデータベース13に保存させてもよい。位置情報が指し示す鍵情報16は、ノード21,22,23のうちの1つのノードがもっていてもよい。 At this time, the procedure 15 may generate post-conversion information by performing numerical calculations such as combination, four arithmetic operations, and logic operations on the information 24, 25, and 26 as conversion logic. This converted information may be the key information 16 . Also, this post-conversion information may be position information indicating the position of the key information 16 . When the position information is generated, the processing unit 12 may cause the database 13 to store the key information 16 indicated by the position information. One of the nodes 21, 22, and 23 may have the key information 16 indicated by the position information.
 処理部12は、鍵情報16の要求に対する応答として、鍵情報16を含むデータベース13を出力する。例えば、処理部12は、鍵情報16を要求した情報処理装置にデータベース13を送信する。処理部12は、データベース13およびデータベース管理プログラム14を含むパッケージデータを出力してもよい。なお、データベース管理プログラム14は、データベース13の出力先の情報処理装置がデータベース13から鍵情報16を抽出することを許可するように設定されてもよい。 The processing unit 12 outputs the database 13 including the key information 16 as a response to the request for the key information 16. For example, the processing unit 12 transmits the database 13 to the information processing device that requested the key information 16 . The processing unit 12 may output package data including the database 13 and database management program 14 . Note that the database management program 14 may be set so as to permit the information processing device that is the output destination of the database 13 to extract the key information 16 from the database 13 .
 以上説明したように、第1の実施の形態の情報処理装置10は、ノード21,22,23から、データベース13に保存された状態で情報24,25,26を取得する。情報処理装置10は、データベース13に保存された情報24,25,26に対してプロシジャ15を実行することで、データベース13の中に鍵情報16を復元する。そして、情報処理装置10は、鍵情報16を含むデータベース13を出力する。 As described above, the information processing apparatus 10 of the first embodiment acquires the information 24, 25, 26 from the nodes 21, 22, 23 while being stored in the database 13. The information processing device 10 restores the key information 16 in the database 13 by executing the procedure 15 on the information 24 , 25 and 26 saved in the database 13 . The information processing device 10 then outputs the database 13 including the key information 16 .
 これにより、情報24,25,26を収集して鍵情報16を復元する過程においても、情報24,25,26、鍵情報16および変換ロジックが、データベース13およびデータベース管理プログラム14を通じて保護される。このため、情報処理装置10に攻撃者が侵入した場合や、情報処理装置10の管理者が悪意で情報を漏洩させる場合であっても、鍵情報16が第三者に不正取得されるリスクが低下する。この結果、鍵情報16を用いて暗号化データが不正に復号されるリスクが低下し、データセキュリティが向上する。 As a result, even in the process of collecting the information 24, 25, 26 and restoring the key information 16, the information 24, 25, 26, the key information 16 and the conversion logic are protected through the database 13 and the database management program 14. Therefore, even if an attacker intrudes into the information processing device 10 or the administrator of the information processing device 10 maliciously leaks information, there is a risk that the key information 16 will be illegally obtained by a third party. descend. As a result, the risk of unauthorized decryption of the encrypted data using the key information 16 is reduced, and data security is improved.
 なお、情報処理装置10は、鍵情報16の要求元から、データベース13およびデータベース管理プログラム14を含むパッケージデータを取得してもよく、鍵情報16が保存された状態でパッケージデータを返信してもよい。これにより、鍵情報16の要求元による制御のもとで、データベース13の保護が強化される。 The information processing apparatus 10 may acquire package data including the database 13 and the database management program 14 from the source of the request for the key information 16, or may return the package data with the key information 16 stored. good. This enhances the protection of database 13 under the control of the requestor of key information 16 .
 また、データベース管理プログラム14は、情報24,25,26の保存をノード21,22,23に許可し、プロシジャ15の実行を情報処理装置10に許可し、鍵情報16の抽出をデータベース13の出力先に許可するよう設定されてもよい。これにより、鍵情報16を復元するために十分なアクセス権限が設定され、鍵情報16を復元する手続きの円滑化と鍵情報16の保護とのバランスが図られる。 The database management program 14 permits the nodes 21, 22, and 23 to store the information 24, 25, and 26, permits the information processing apparatus 10 to execute the procedure 15, and extracts the key information 16 from the database 13. It may be set to allow first. As a result, access authority sufficient to restore the key information 16 is set, and a balance between facilitation of the procedure for restoring the key information 16 and protection of the key information 16 is achieved.
 また、情報処理装置10は、プロシジャ15を用いて情報24,25,26から位置情報を生成してもよく、位置情報に基づいて、ノード21,22,23のうちの1つのノードから、データベース13に保存された状態で鍵情報16を取得してもよい。これにより、鍵情報16の漏洩リスクが更に低下する。 Further, the information processing apparatus 10 may generate location information from the information 24, 25, 26 using the procedure 15, and based on the location information, from one of the nodes 21, 22, 23, the database The key information 16 may be obtained while it is stored in 13 . This further reduces the risk of leakage of the key information 16 .
 [第2の実施の形態]
 次に、第2の実施の形態を説明する。
 図2は、第2の実施の形態の情報処理システムの例を示す図である。
[Second embodiment]
Next, a second embodiment will be described.
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
 第2の実施の形態の情報処理システムは、データの暗号化および復号のための暗号鍵を、複数のサーバ装置が協調することで分散管理し、暗号鍵の漏洩リスクを低減する。これにより、データ漏洩リスクが低下する。第2の実施の形態の暗号鍵は、共通鍵暗号方式の共通鍵である。ただし、暗号鍵が、公開鍵暗号方式の公開鍵および秘密鍵であってもよい。情報処理システムは、ネットワーク30に接続された鍵管理サーバ31、メンバサーバ32,33,34、クラークサーバ35,36,37および鍵検証サーバ38を有する。ネットワークは、LAN(Local Area Network)を含んでもよく、インターネットを含んでもよい。鍵管理サーバ31は、第1の実施の形態の情報処理装置10に対応する。 The information processing system of the second embodiment distributes and manages encryption keys for data encryption and decryption through cooperation among multiple server devices, thereby reducing the risk of leakage of encryption keys. This reduces the risk of data leakage. The encryption key of the second embodiment is a common key of common key cryptography. However, the encryption key may be a public key and a private key of public key cryptography. The information processing system has a key management server 31 , member servers 32 , 33 and 34 , clerks servers 35 , 36 and 37 and a key verification server 38 which are connected to a network 30 . The network may include a LAN (Local Area Network) or the Internet. The key management server 31 corresponds to the information processing device 10 of the first embodiment.
 鍵管理サーバ31、メンバサーバ32,33,34、クラークサーバ35,36,37および鍵検証サーバ38は、サーバコンピュータである。鍵管理サーバ31、メンバサーバ32,33,34、クラークサーバ35,36,37および鍵検証サーバ38は、ユーザが所有するオンプレミスシステムに含まれてもよいし、データセンタに配置されてもよいし、いわゆるクラウドシステムに含まれてもよい。 The key management server 31, member servers 32, 33, 34, clerks servers 35, 36, 37, and key verification server 38 are server computers. The key management server 31, member servers 32, 33, 34, clerk servers 35, 36, 37, and key verification server 38 may be included in an on-premises system owned by the user, or may be located in a data center. , may be included in a so-called cloud system.
 メンバサーバ32,33,34は異なるユーザに対応してもよく、クラークサーバ35,36,37は異なるユーザに対応してもよい。ユーザはメンバ企業であってもよい。鍵管理サーバ31、メンバサーバ32,33,34、クラークサーバ35,36,37および鍵検証サーバ38は、サーバ群の中から動的に選択されてもよく、以下に説明する役割(ロール)をサーバ群が持ち回りで担当してもよい。 The member servers 32, 33, 34 may correspond to different users, and the clerks servers 35, 36, 37 may correspond to different users. A user may be a member company. The key management server 31, member servers 32, 33, 34, clerk servers 35, 36, 37, and key verification server 38 may be dynamically selected from a group of servers, and have roles described below. A group of servers may take turns taking charge.
 鍵管理サーバ31は、ユーザが使用する暗号鍵の秘匿化および復元を制御する。鍵管理サーバ31は、メンバサーバ32,33,34の1つから暗号鍵の要求を受信する。鍵管理サーバ31には、暗号鍵そのものは保存されていない。鍵管理サーバ31は、暗号鍵が要求される毎に、メンバサーバ32,33,34およびクラークサーバ35,36,37から情報を収集し、要求元のメンバサーバ用の暗号鍵を復元して送信する。 The key management server 31 controls the anonymization and restoration of encryption keys used by users. Key management server 31 receives a request for an encryption key from one of member servers 32 , 33 , 34 . The key management server 31 does not store the encryption key itself. Each time an encryption key is requested, the key management server 31 collects information from the member servers 32, 33, 34 and the clerks servers 35, 36, 37, restores and transmits the encryption key for the requesting member server. do.
 メンバサーバ32,33,34は、暗号鍵を用いてデータの暗号化および復号を行う。メンバサーバ32,33,34は、互いに異なる暗号鍵を使用する。メンバサーバ32,33,34は、事前に暗号鍵を鍵管理サーバ31に提供し、暗号鍵そのものをローカルに保存しない。メンバサーバ32,33,34は、暗号鍵を使用する際、鍵管理サーバ31に暗号鍵を要求し、鍵管理サーバ31から受信した暗号鍵でデータの暗号化および復号を行う。暗号鍵の使用後は、メンバサーバ32,33,34は暗号鍵を破棄する。 The member servers 32, 33, and 34 use encryption keys to encrypt and decrypt data. Member servers 32, 33, and 34 use encryption keys different from each other. The member servers 32, 33, and 34 provide the key management server 31 with the encryption key in advance and do not store the encryption key itself locally. When using the encryption key, the member servers 32 , 33 , and 34 request the encryption key from the key management server 31 and encrypt and decrypt data with the encryption key received from the key management server 31 . After using the encryption key, the member servers 32, 33 and 34 discard the encryption key.
 また、メンバサーバ32,33,34は、鍵管理サーバ31から配布された情報を記憶し、鍵管理サーバ31からの要求に応じて鍵管理サーバ31に情報を送信する。メンバサーバ32,33,34に配布される情報には、暗号鍵を暗号化することで生成される二重化鍵が含まれる。暗号鍵は、メンバサーバ間で異なる個別鍵によって暗号化される。個別鍵は、共通鍵暗号方式の共通鍵である。ただし、個別鍵が、公開鍵暗号方式の公開鍵および秘密鍵でもよい。メンバサーバ32,33,34の間では二重化鍵が交換される。よって、あるメンバサーバ用の二重化鍵は、他のメンバサーバに保存される。 In addition, member servers 32, 33, and 34 store information distributed from key management server 31, and transmit information to key management server 31 in response to requests from key management server 31. The information distributed to the member servers 32, 33, 34 includes a double key generated by encrypting the encryption key. The encryption key is encrypted with individual keys that differ between member servers. The individual key is a common key for common key cryptography. However, the individual key may be a public key and a private key of public key cryptography. Duplex keys are exchanged among the member servers 32 , 33 , 34 . Therefore, a duplicate key for one member server is stored in another member server.
 また、メンバサーバ32,33,34は、二重化鍵に加えて後述するトラップ鍵やダミー鍵を記憶する。二重化鍵とトラップ鍵とダミー鍵とが混在しているため、二重化鍵を読み出すには、二重化鍵の位置を正しく指定することになる。メンバサーバ32,33,34に配布される情報には、二重化鍵の位置を特定するための位置情報が含まれる。メンバサーバ32,33,34は、第1の実施の形態のノード21,22,23に対応する。 In addition, the member servers 32, 33, and 34 store trap keys and dummy keys, which will be described later, in addition to duplicated keys. Since the duplicated key, the trap key, and the dummy key are mixed, the position of the duplicated key must be specified correctly to read the duplicated key. The information distributed to the member servers 32, 33, 34 includes location information for specifying the location of the duplicated key. The member servers 32, 33, 34 correspond to the nodes 21, 22, 23 of the first embodiment.
 クラークサーバ35,36,37は、暗号鍵を復号するための個別鍵を保護する。クラークサーバ35,36,37は、鍵管理サーバ31から配布された情報を記憶し、鍵管理サーバ31からの要求に応じて鍵管理サーバ31に情報を送信する。クラークサーバ35,36,37に配布される情報には、個別鍵が含まれる。 Clerk servers 35, 36, and 37 protect individual keys for decrypting encryption keys. Clerk servers 35 , 36 and 37 store information distributed from key management server 31 and transmit information to key management server 31 in response to requests from key management server 31 . The information distributed to the clerk servers 35, 36, 37 includes individual keys.
 また、クラークサーバ35,36,37は、個別鍵に加えてトラップ鍵やダミー鍵を記憶する。個別鍵とトラップ鍵とダミー鍵とが混在しているため、個別鍵を読み出すには、個別鍵の位置を正しく指定することになる。クラークサーバ35,36,37に配布される情報には、個別鍵の位置を特定するための位置情報が含まれる。 The clerks servers 35, 36, and 37 also store trap keys and dummy keys in addition to individual keys. Since the individual key, the trap key, and the dummy key are mixed, the position of the individual key must be specified correctly to read the individual key. The information distributed to the clerk servers 35, 36, 37 includes location information for specifying the location of the individual key.
 鍵検証サーバ38は、メンバサーバ32,33,34およびクラークサーバ35,36,37からの要求に応じて鍵種別を判定する。鍵検証サーバ38は、事前に設定された判定アルゴリズムに従って、クラークサーバ35,36,37から受信されるビット列が個別鍵、トラップ鍵およびダミー鍵の何れに相当するか判定する。また、鍵検証サーバ38は、事前に設定された判定アルゴリズムに従って、メンバサーバ32,33,34から受信されるビット列が二重化鍵、トラップ鍵およびダミー鍵の何れに相当するか判定する。 The key verification server 38 determines the key type in response to requests from the member servers 32, 33, and 34 and the clerks servers 35, 36, and 37. The key verification server 38 determines whether the bit string received from the clerk servers 35, 36 and 37 corresponds to an individual key, a trap key or a dummy key according to a preset determination algorithm. Further, the key verification server 38 determines whether the bit strings received from the member servers 32, 33, and 34 correspond to the duplicated key, the trap key, or the dummy key according to a preset determination algorithm.
 二重化鍵については、鍵検証サーバ38は、復号前のビット列から鍵種別を判定してもよいし、復号後のビット列から鍵種別を判定してもよい。また、二重化鍵の復号は、メンバサーバ32,33,34が行ってもよいし、鍵検証サーバ38が行ってもよい。鍵検証サーバ38は、判定した鍵種別を応答する。ただし、判定した鍵種別がトラップ鍵である場合、鍵検証サーバ38はトラップ処理を行う。トラップ処理は、セキュリティ攻撃の可能性を示すアラートを出力することを含む。アラートの出力先は、例えば、鍵管理サーバ31である。また、トラップ処理は、意図的に応答を遅延させることを含む。これにより、攻撃者が誤った位置を指定した場合、攻撃者のもとに情報が集まることが遅延する。 Regarding the duplicated key, the key verification server 38 may determine the key type from the bit string before decryption, or may determine the key type from the bit string after decryption. Also, the decryption of the duplicated key may be performed by the member servers 32, 33, and 34, or may be performed by the key verification server . The key verification server 38 responds with the determined key type. However, if the determined key type is a trap key, the key verification server 38 performs trap processing. Trap processing includes outputting an alert indicating a possible security attack. The alert output destination is, for example, the key management server 31 . Trap handling also involves intentionally delaying responses. This delays the gathering of information to the attacker if the attacker specifies the wrong location.
 第2の実施の形態では、暗号鍵および暗号鍵を復元するための各種情報が鍵管理サーバ31から漏洩することを抑止するため、後述するデータカプセルが使用される。暗号鍵を要求するメンバサーバは、データカプセルを生成して鍵管理サーバ31に送信する。このデータカプセルは、鍵管理サーバ31とメンバサーバ32,33,34との通信および鍵管理サーバ31とクラークサーバ35,36,37との通信にも使用される。要求元のメンバサーバは、暗号鍵が入ったデータカプセルを鍵管理サーバ31から受信する。 In the second embodiment, a data capsule, which will be described later, is used to prevent the encryption key and various information for restoring the encryption key from leaking from the key management server 31 . A member server that requests an encryption key generates a data capsule and transmits it to the key management server 31 . This data capsule is also used for communication between the key management server 31 and member servers 32 , 33 and 34 and communication between the key management server 31 and clerks servers 35 , 36 and 37 . The requesting member server receives the data capsule containing the encryption key from the key management server 31 .
 ただし、暗号鍵を要求するメンバサーバは、自らデータカプセルを生成する代わりに、図示しないデータカプセル生成サーバにデータカプセルの生成を依頼してもよい。その場合、データカプセル生成サーバは、後述するような設定をデータカプセルに対して行い、暗号鍵を要求するメンバサーバにデータカプセルを提供する。 However, a member server that requests an encryption key may request a data capsule generation server (not shown) to generate a data capsule instead of generating a data capsule by itself. In this case, the data capsule generation server performs settings for the data capsule as described later, and provides the data capsule to the member server requesting the encryption key.
 図3は、サーバ装置のハードウェア例を示すブロック図である。
 鍵管理サーバ31は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。メンバサーバ32,33,34、クラークサーバ35,36,37および鍵検証サーバ38が、鍵管理サーバ31と同様のハードウェアを有してもよい。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
FIG. 3 is a block diagram showing an example of hardware of the server device.
The key management server 31 has a CPU 101, a RAM 102, an HDD 103, a GPU 104, an input interface 105, a media reader 106 and a communication interface 107 connected to a bus. Member servers 32 , 33 , 34 , clerk servers 35 , 36 , 37 and key verification server 38 may have hardware similar to key management server 31 . A CPU 101 corresponds to the processing unit 12 of the first embodiment. A RAM 102 or HDD 103 corresponds to the storage unit 11 of the first embodiment.
 CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。鍵管理サーバ31は、複数のプロセッサを有してもよい。 The CPU 101 is a processor that executes program instructions. The CPU 101 loads at least part of the programs and data stored in the HDD 103 into the RAM 102 and executes the programs. The key management server 31 may have multiple processors.
 RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。鍵管理サーバ31は、RAM以外の種類の揮発性メモリを有してもよい。 The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used for calculations by the CPU 101 . The key management server 31 may have a type of volatile memory other than RAM.
 HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。鍵管理サーバ31は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。 The HDD 103 is a nonvolatile storage that stores software programs such as an OS (Operating System), middleware, application software, and data. The key management server 31 may have other types of non-volatile storage such as flash memory and SSD (Solid State Drive).
 GPU104は、CPU101と連携して画像処理を行い、鍵管理サーバ31に接続された表示装置111に画像を出力するプロセッサである。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。なお、鍵管理サーバ31に、プリンタなどの他の種類の出力デバイスが接続されてもよい。 The GPU 104 is a processor that performs image processing in cooperation with the CPU 101 and outputs images to the display device 111 connected to the key management server 31 . The display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector. Other types of output devices such as printers may be connected to the key management server 31 .
 入力インタフェース105は、鍵管理サーバ31に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。鍵管理サーバ31に複数の入力デバイスが接続されてもよい。 The input interface 105 receives input signals from the input device 112 connected to the key management server 31 . The input device 112 is, for example, a mouse, touch panel, or keyboard. A plurality of input devices may be connected to the key management server 31 .
 媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。 The medium reader 106 is a reading device that reads programs and data recorded on the recording medium 113 . The recording medium 113 is, for example, a magnetic disk, an optical disk, or a semiconductor memory. Magnetic disks include flexible disks (FDs) and HDDs. Optical discs include CDs (Compact Discs) and DVDs (Digital Versatile Discs). A medium reader 106 copies the program and data read from the recording medium 113 to another recording medium such as the RAM 102 or HDD 103 . The read program may be executed by CPU 101 .
 記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。 The recording medium 113 may be a portable recording medium. Recording medium 113 may be used to distribute programs and data. Recording medium 113 and HDD 103 may also be referred to as computer-readable recording media.
 通信インタフェース107は、ネットワーク30を介してメンバサーバ32,33,34やクラークサーバ35,36,37と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。 The communication interface 107 communicates with the member servers 32, 33 and 34 and the clerks servers 35, 36 and 37 via the network 30. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or router, or a wireless communication interface connected to a wireless communication device such as a base station or access point.
 次に、暗号鍵を復元するための鍵要素情報について説明する。
 図4は、暗号鍵から生成される鍵要素情報の例を示す図である。
 鍵管理サーバ31は、メンバサーバ32,33,34から、メンバサーバ32,33,34に対応する3つの暗号鍵を取得する。暗号鍵41は、メンバサーバ32の暗号鍵である。鍵管理サーバ31は、メンバサーバ32,33,34に対応させて3つの個別鍵を生成する。個別鍵42は、メンバサーバ32に対応する個別鍵である。鍵管理サーバ31は、3つの暗号鍵をそれぞれ対応する個別鍵で暗号化して、3つの二重化鍵を生成する。二重化鍵43は、暗号鍵41を個別鍵42で暗号化することによって生成される。
Next, key element information for restoring the encryption key will be described.
FIG. 4 is a diagram showing an example of key element information generated from an encryption key.
The key management server 31 acquires three encryption keys corresponding to the member servers 32 , 33 and 34 from the member servers 32 , 33 and 34 . The encryption key 41 is the encryption key of the member server 32 . The key management server 31 generates three individual keys corresponding to the member servers 32 , 33 and 34 . The individual key 42 is an individual key corresponding to the member server 32 . The key management server 31 encrypts the three encryption keys with the corresponding individual keys to generate three duplicate keys. Duplex key 43 is generated by encrypting encryption key 41 with individual key 42 .
 鍵管理サーバ31は、3つの二重化鍵から、3つの二重化鍵リストと3つの二重化鍵位置情報を生成する。各二重化鍵リストは、1つの二重化鍵と複数のトラップ鍵と複数のダミー鍵を含む。3つの二重化鍵リストは、異なるメンバサーバに配布される。二重化鍵リスト46は、メンバサーバ32に配布される。この二重化鍵リスト46には、メンバサーバ32の二重化鍵43が含まれないことが好ましい。 The key management server 31 generates three duplicate key lists and three duplicate key position information from the three duplicate keys. Each duplicate key list includes one duplicate key, multiple trap keys, and multiple dummy keys. The three duplicated key lists are distributed to different member servers. Duplex key list 46 is distributed to member servers 32 . Preferably, the duplicate key list 46 does not include the duplicate key 43 of the member server 32 .
 各二重化鍵位置情報は、3つの二重化鍵リストにおける二重化鍵の位置を算出するための断片的情報である。何れの二重化鍵の位置の算出にも、3つの二重化鍵位置情報の全てが使用される。3つの二重化鍵位置情報は、異なるメンバサーバに配布される。二重化鍵位置情報47は、メンバサーバ32に配布される。 Each piece of duplicated key position information is fragmentary information for calculating the position of the duplicated key in the three duplicated key lists. All three pieces of duplicated key location information are used to calculate the position of any duplicated key. The three duplicated key location information are distributed to different member servers. The duplicated key location information 47 is distributed to the member servers 32 .
 また、鍵管理サーバ31は、3つの個別鍵から、3つの個別鍵リストと3つの個別鍵位置情報を生成する。各個別鍵リストは、1つの個別鍵と複数のトラップ鍵と複数のダミー鍵を含む。3つの個別鍵リストは、異なるクラークサーバに配布される。個別鍵リスト44は、クラークサーバ35に配布される。この個別鍵リスト44には、メンバサーバ35の個別鍵42が含まれないことが好ましい。 Also, the key management server 31 generates three individual key lists and three individual key position information from the three individual keys. Each individual key list includes one individual key, multiple trap keys, and multiple dummy keys. Three separate key lists are distributed to different clerk servers. The individual key list 44 is distributed to the clerk server 35 . This individual key list 44 preferably does not include the individual keys 42 of the member servers 35 .
 各個別鍵位置情報は、3つの個別鍵リストにおける個別鍵の位置を算出するための断片的情報である。何れの個別鍵の位置の算出にも、3つの個別鍵位置情報の全てが使用される。3つの個別鍵位置情報は、異なるクラークサーバに配布される。個別鍵位置情報45は、クラークサーバ35に配布される。 Each piece of individual key position information is fragmentary information for calculating the position of the individual key in the three individual key lists. All three pieces of individual key location information are used to calculate the location of any individual key. The three individual key locations are distributed to different clerk servers. The individual key location information 45 is distributed to the clerk server 35 .
 図5は、サーバ装置への鍵要素情報の配置例を示す図である。
 クラークサーバ35は、個別鍵位置情報141と個別鍵リスト144を記憶する。クラークサーバ36は、個別鍵位置情報142と個別鍵リスト145を記憶する。クラークサーバ37は、個別鍵位置情報143と個別鍵リスト146を記憶する。
FIG. 5 is a diagram showing an example of arrangement of key element information in a server device.
The clerk server 35 stores individual key position information 141 and an individual key list 144 . The clerk server 36 stores individual key location information 142 and an individual key list 145 . The clerk server 37 stores individual key position information 143 and an individual key list 146 .
 鍵管理サーバ31は、クラークサーバの台数×個別鍵の個数だけ乱数を生成する。ここでは、鍵管理サーバ31は、3×3=9個の乱数を生成する。第2の実施の形態では説明を簡単にするため各乱数が1桁であるが、各乱数が2桁以上であってもよい。鍵管理サーバ31は、3つの個別鍵に3つずつ乱数を割り当てる。鍵管理サーバ31は、個別鍵毎に、3つの乱数をハッシュ関数に入力して正しい位置を算出する。 The key management server 31 generates random numbers by the number of clerk servers times the number of individual keys. Here, the key management server 31 generates 3×3=9 random numbers. In the second embodiment, each random number has one digit to simplify the explanation, but each random number may have two or more digits. The key management server 31 assigns three random numbers to each of the three individual keys. The key management server 31 inputs three random numbers into a hash function to calculate the correct position for each individual key.
 ハッシュ関数は、例えば、偶数乱数の和×奇数乱数の積のように規定される。鍵管理サーバ31は、個別鍵リスト144,145,146の長さ、すなわち、列挙される鍵の個数を決定しておく。ハッシュ関数によって算出される位置が個別鍵リスト144,145,146の長さを超える場合、鍵管理サーバ31は乱数を再生成してもよい。また、異なる個別鍵の位置は異なることが好ましい。異なる個別鍵の位置が衝突した場合、鍵管理サーバ31は乱数を再生成してもよい。 A hash function is defined, for example, as the sum of even random numbers x the product of odd random numbers. The key management server 31 determines the length of the individual key lists 144, 145, 146, that is, the number of enumerated keys. If the position calculated by the hash function exceeds the length of the individual key lists 144, 145, 146, the key management server 31 may regenerate random numbers. Also, the positions of different individual keys are preferably different. If the positions of different individual keys collide, the key management server 31 may regenerate the random number.
 例えば、鍵管理サーバ31は、メンバサーバ32の個別鍵について乱数「1」「2」「3」を生成し、メンバサーバ33の個別鍵について乱数「1」「1」「2」を生成し、メンバサーバ34の個別鍵について乱数「1」「2」「2」を生成する。メンバサーバ32の個別鍵の位置は2×(1×3)=6、メンバサーバ33の個別鍵の位置は2×(1×1)=2、メンバサーバ34の個別鍵の位置は(2+2)×1=4である。 For example, the key management server 31 generates random numbers "1", "2" and "3" for the individual key of the member server 32, generates random numbers "1", "1" and "2" for the individual key for the member server 33, Random numbers “1”, “2”, and “2” are generated for the individual key of the member server 34 . The position of the individual key of the member server 32 is 2×(1×3)=6, the position of the individual key of the member server 33 is 2×(1×1)=2, and the position of the individual key of the member server 34 is (2+2). x1=4.
 鍵管理サーバ31は、各個別鍵に割り当てられた3つの乱数のうちの1番目の乱数を含むように個別鍵位置情報143を生成し、2番目の乱数を含むように個別鍵位置情報141を生成し、3番目の乱数を含むように個別鍵位置情報142を生成する。例えば、個別鍵位置情報143は「1」「1」「1」、個別鍵位置情報141は「2」「1」「2」、個別鍵位置情報142は「3」「2」「2」である。 The key management server 31 generates the individual key position information 143 so as to include the first random number among the three random numbers assigned to each individual key, and generates the individual key position information 141 so as to include the second random number. Then, the individual key position information 142 is generated so as to include the third random number. For example, the individual key position information 143 is "1" "1" "1", the individual key position information 141 is "2" "1" "2", and the individual key position information 142 is "3" "2" "2". be.
 また、鍵管理サーバ31は、3つの個別鍵と上記で算出された3つの正しい位置に基づいて、個別鍵リスト144,145,146を生成する。例えば、個別鍵リスト146は、正しい位置である#6にメンバサーバ32用の個別鍵を含む。個別鍵リスト144は、正しい位置である#2にメンバサーバ33用の個別鍵を含む。個別鍵リスト145は、正しい位置である#4にメンバサーバ34用の個別鍵を含む。 The key management server 31 also generates individual key lists 144, 145, and 146 based on the three individual keys and the three correct positions calculated above. For example, individual key list 146 contains the individual key for member server 32 in the correct position #6. Individual key list 144 contains the individual key for member server 33 in the correct position #2. Individual key list 145 contains the individual key for member server 34 in the correct position #4.
 ここで、個別鍵リスト144,145,146はそれぞれ、他の個別鍵リストで個別鍵が配置されている位置にダミー鍵を配置する。また、個別鍵リスト144,145,146はそれぞれ、他の個別鍵リストの何れでも個別鍵が配置されていない位置にトラップ鍵を配置する。例えば、個別鍵リスト146は、#2,#4にダミー鍵を含み、#1,#3,#5にトラップ鍵を含む。個別鍵リスト144は、#4,#6にダミー鍵を含み、#1,#3,#5にトラップ鍵を含む。個別鍵リスト145は、#2,#6にダミー鍵を含み、#1,#3,#5にトラップ鍵を含む。 Here, in each of the individual key lists 144, 145, and 146, dummy keys are arranged at positions where individual keys are arranged in other individual key lists. Further, each of the individual key lists 144, 145, and 146 arranges the trap key in a position where no individual key is arranged in any of the other individual key lists. For example, the individual key list 146 includes dummy keys at #2 and #4 and trap keys at #1, #3 and #5. The individual key list 144 includes dummy keys in #4 and #6 and trap keys in #1, #3 and #5. The individual key list 145 includes dummy keys in #2 and #6 and trap keys in #1, #3 and #5.
 鍵管理サーバ31は、個別鍵位置情報141,142,143をランダムにクラークサーバ35,36,37に配布する。また、鍵管理サーバ31は、個別鍵リスト144,145,146をランダムにクラークサーバ35,36,37に配布する。鍵管理サーバ31は、配布先のシャッフルの結果を記録しておかなくてよい。 The key management server 31 randomly distributes the individual key location information 141, 142, 143 to the clerk servers 35, 36, 37. The key management server 31 also randomly distributes the individual key lists 144 , 145 , 146 to the clerk servers 35 , 36 , 37 . The key management server 31 does not need to record the shuffle results of the distribution destinations.
 メンバサーバ32は、二重化鍵位置情報151と二重化鍵リスト154を記憶する。メンバサーバ33は、二重化鍵位置情報152と二重化鍵リスト155を記憶する。メンバサーバ34は、二重化鍵位置情報153と二重化鍵リスト156を記憶する。 The member server 32 stores duplicated key location information 151 and a duplicated key list 154 . Member server 33 stores dual key location information 152 and dual key list 155 . Member server 34 stores dual key location information 153 and dual key list 156 .
 鍵管理サーバ31は、メンバサーバの台数×二重化鍵の個数だけ乱数を生成する。ここでは、鍵管理サーバ31は、3×3=9個の乱数を生成する。鍵管理サーバ31は、3つの二重化鍵に3つずつ乱数を割り当てる。鍵管理サーバ31は、二重化鍵毎に、3つの乱数をハッシュ関数に入力して正しい位置を算出する。二重化鍵用のハッシュ関数は、個別鍵用のハッシュ関数と同じでもよいし異なってもよい。例えば、二重化鍵用のハッシュ関数は、個別鍵用と同じく、偶数乱数の和×奇数乱数の積である。 The key management server 31 generates random numbers equal to the number of member servers times the number of duplicated keys. Here, the key management server 31 generates 3×3=9 random numbers. The key management server 31 assigns three random numbers to each of the three duplicated keys. The key management server 31 inputs three random numbers into a hash function for each duplicated key to calculate the correct position. The hash function for the duplicate key may be the same as or different from the hash function for the individual key. For example, the hash function for the duplicate key is the sum of even random numbers times the product of odd random numbers, just like the hash function for individual keys.
 鍵管理サーバ31は、二重化鍵リスト154,155,156の長さを決定しておく。ハッシュ関数によって算出される位置が二重化鍵リスト154,155,156の長さを超える場合、鍵管理サーバ31は乱数を再生成してもよい。また、異なる二重化鍵の位置は異なることが好ましい。異なる二重化鍵の位置が衝突した場合、鍵管理サーバ31は乱数を再生成してもよい。 The key management server 31 determines the lengths of the duplicated key lists 154, 155, and 156. If the position calculated by the hash function exceeds the length of the duplicated key lists 154, 155, 156, the key management server 31 may regenerate the random number. Also, it is preferable that the positions of different duplicated keys are different. If the positions of different duplicated keys collide, the key management server 31 may regenerate the random number.
 例えば、鍵管理サーバ31は、メンバサーバ32の二重化鍵の乱数「1」「2」「2」を生成し、メンバサーバ33の二重化鍵の乱数「3」「2」「1」を生成し、メンバサーバ34の二重化鍵の乱数「1」「1」「2」を生成する。メンバサーバ32の二重化鍵の位置は(2+2)×1=4、メンバサーバ33の二重化鍵の位置は2×(1×3)=6、メンバサーバ34の二重化鍵の位置は2×(1×1)=2である。 For example, the key management server 31 generates random numbers “1”, “2”, and “2” for the duplicated key of the member server 32, generates random numbers “3”, “2”, and “1” for the duplicated key of the member server 33, Random numbers "1", "1", and "2" of the duplicated key of the member server 34 are generated. The position of the duplicated key of the member server 32 is (2+2)×1=4, the position of the duplicated key of the member server 33 is 2×(1×3)=6, and the position of the duplicated key of the member server 34 is 2×(1× 1)=2.
 鍵管理サーバ31は、各二重化鍵に割り当てられた3つの乱数のうちの1番目の乱数を含むように二重化鍵位置情報153を生成し、2番目の乱数を含むように二重化鍵位置情報151を生成し、3番目の乱数を含むように二重化鍵位置情報152を生成する。例えば、二重化鍵位置情報153は「1」「3」「1」、二重化鍵位置情報151は「2」「2」「1」、二重化鍵位置情報152は「2」「1」「2」である。 Key management server 31 generates duplicated key position information 153 to include the first random number among the three random numbers assigned to each duplicated key, and generates duplicated key position information 151 to include the second random number. and generate duplicate key position information 152 so as to include the third random number. For example, the duplicate key position information 153 is "1" "3" "1", the duplicate key position information 151 is "2" "2" "1", and the duplicate key position information 152 is "2" "1" "2". be.
 また、鍵管理サーバ31は、3つの二重化鍵と上記で算出された3つの正しい位置に基づいて、二重化鍵リスト154,155,156を生成する。例えば、二重化鍵リスト156は、正しい位置である#4にメンバサーバ32用の二重化鍵を含む。二重化鍵リスト154は、正しい位置である#6にメンバサーバ33用の二重化鍵を含む。二重化鍵リスト155は、正しい位置が示す#2にメンバサーバ34用の二重化鍵を含む。 The key management server 31 also generates duplicate key lists 154, 155, and 156 based on the three duplicate keys and the three correct positions calculated above. For example, the dual key list 156 contains the dual key for member server 32 in the correct position #4. Duplicate key list 154 contains the duplicate key for member server 33 in the correct position #6. Duplicate key list 155 contains the duplicate key for member server 34 at #2 as indicated by the correct location.
 ここで、二重化鍵リスト154,155,156はそれぞれ、他の二重化鍵リストで二重化鍵が配置されている位置にダミー鍵を配置する。また、二重化鍵リスト154,155,156はそれぞれ、他の二重化鍵リストの何れでも二重化鍵が配置されていない位置にトラップ鍵を配置する。例えば、二重化鍵リスト156は、#2,#6にダミー鍵を含み、#1,#3,#5にトラップ鍵を含む。二重化鍵リスト154は、#2,#4にダミー鍵を含み、#1,#3,#5にトラップ鍵を含む。二重化鍵リスト155は、#4,#6にダミー鍵を含み、#1,#3,#5にトラップ鍵を含む。 Here, each of the duplicated key lists 154, 155, and 156 places a dummy key at the position where the duplicated key is placed in the other duplicated key lists. Further, each of the duplicated key lists 154, 155, and 156 arranges the trap key at a position where no duplicated key is arranged in any of the other duplicated key lists. For example, the duplicate key list 156 includes dummy keys at #2 and #6 and trap keys at #1, #3 and #5. Duplex key list 154 includes dummy keys in #2 and #4 and trap keys in #1, #3 and #5. Duplex key list 155 includes dummy keys in #4 and #6, and trap keys in #1, #3 and #5.
 鍵管理サーバ31は、二重化鍵位置情報151,152,153をランダムにメンバサーバ32,33,34に配布する。また、鍵管理サーバ31は、二重化鍵リスト154,155,156をランダムにメンバサーバ32,33,34に配布する。鍵管理サーバ31は、配布先のシャッフルの結果を記録しておかなくてよい。 The key management server 31 randomly distributes the duplicated key location information 151, 152, 153 to the member servers 32, 33, 34. Also, the key management server 31 randomly distributes the duplicated key lists 154 , 155 , 156 to the member servers 32 , 33 , 34 . The key management server 31 does not need to record the shuffle results of the distribution destinations.
 次に、データカプセルについて説明する。データカプセルは、暗号化されたデータベースと、データベースへの限定されたアクセスを提供するデータベース管理プログラム(DBMS(Database Management System)プログラム)とを含む。 Next, we will explain the data capsule. The data capsule contains an encrypted database and a database management system (DBMS program) that provides limited access to the database.
 図6は、データカプセルの構造例を示すブロック図である。
 データカプセル130は、管理情報ファイル131、データファイル132、DBMSプログラム133、消去プログラム134およびコンテナプログラム135を含む。なお、データファイル132は、第1の実施の形態のデータベース13に対応する。DBMSプログラム133は、第1の実施の形態のデータベース管理プログラム14に対応する。
FIG. 6 is a block diagram showing an example structure of a data capsule.
Data capsule 130 includes management information file 131 , data file 132 , DBMS program 133 , erasure program 134 and container program 135 . Note that the data file 132 corresponds to the database 13 of the first embodiment. The DBMS program 133 corresponds to the database management program 14 of the first embodiment.
 管理情報ファイル131は、データベースへのアクセスの制御に用いられる管理情報が記載されるファイルである。管理情報ファイル131は、データファイル132のファイルパスを含む。また、管理情報ファイル131は、利用者定義136、権限定義137、データ構造定義138およびプロシジャ定義139を含む。 The management information file 131 is a file in which management information used for controlling access to the database is described. The management information file 131 contains the file path of the data file 132 . The management information file 131 also includes user definitions 136 , authority definitions 137 , data structure definitions 138 and procedure definitions 139 .
 利用者定義136は、データベースにアクセスできる利用者を示す。利用者は、利用者名で識別されてもよく、サーバ装置のサーバ名またはロールIDで識別されてもよく、サーバ装置の通信アドレスで識別されてもよい。権限定義137は、各利用者に対して許容するデータ操作の種類を示す。例えば、データベースに対するデータ検索、データ挿入、データ更新およびデータ削除それぞれの可否が規定される。また、登録されたストアドプロシジャのうち各利用者が実行可能なストアドプロシジャが規定される。 The user definition 136 indicates users who can access the database. The user may be identified by the user name, the server name or role ID of the server device, or the communication address of the server device. The authority definition 137 indicates the type of data manipulation permitted for each user. For example, whether or not data retrieval, data insertion, data update, and data deletion are allowed in the database is defined. Also, stored procedures that can be executed by each user among the registered stored procedures are specified.
 データ構造定義138は、関係データベースのテーブル構造を示す。なお、データカプセル130は関係データベースを使用しているが、ツリー型データベースやネットワーク型データベースなどの非関係データベースを使用してもよい。 The data structure definition 138 indicates the table structure of the relational database. Although the data capsule 130 uses a relational database, a non-relational database such as a tree-type database or a network-type database may be used.
 プロシジャ定義139は、ストアドプロシジャを示す。ストアドプロシジャは、単一のSQL文で記述することが難しいような一連のデータ処理を記述したプログラムである。ストアドプロシジャは、SQLを拡張したプロシジャ記述言語を用いて記述される。SQL文に代えてストアドプロシジャ呼び出し命令が受信されると、そのストアドプロシジャが実行される。ストアドプロシジャを適切に利用することで、データベースに保存されたデータそのものがデータカプセル130の外部に出力されることが制限される。 A procedure definition 139 indicates a stored procedure. A stored procedure is a program describing a series of data processing that is difficult to describe in a single SQL statement. A stored procedure is described using a procedure description language that extends SQL. When a stored procedure call instruction is received instead of an SQL statement, the stored procedure is executed. Appropriate use of stored procedures restricts the data stored in the database itself from being output to the outside of the data capsule 130 .
 管理情報ファイル131は暗号化される。暗号化の単位は、管理情報ファイル131全体のように疎粒度でもよいし、利用者定義136や権限定義137のように管理情報ファイル131の各項目を単位とする細粒度でもよい。 The management information file 131 is encrypted. The unit of encryption may be coarse granularity such as the entire management information file 131, or fine granularity in which each item of the management information file 131 is a unit such as the user definition 136 and the authority definition 137. FIG.
 データファイル132は、関係データベースのテーブルのレコードを含むファイルである。データファイル132は暗号化される。暗号化の単位は、データファイル132全体のように疎粒度でもよいし、テーブル単位やレコード単位のように細粒度でもよい。 The data file 132 is a file containing records of relational database tables. Data file 132 is encrypted. The unit of encryption may be coarse granularity, such as the entire data file 132, or fine granularity, such as table units or record units.
 DBMSプログラム133は、通常のDBMSプログラムと比べて機能が制限された制限版のDBMSプログラムである。DBMSプログラム133は、管理情報ファイル131を変更する機能をもたない。また、DBMSプログラム133は、データ検索、データ挿入、データ更新およびデータ削除のうち、データ更新やデータ削除などの一部のデータ操作を実行する機能をもたないことがある。 The DBMS program 133 is a restricted version of the DBMS program whose functions are restricted compared to normal DBMS programs. The DBMS program 133 does not have the function of changing the management information file 131. FIG. In addition, the DBMS program 133 may not have the function of executing some of the data operations such as data retrieval, data insertion, data update and data deletion, such as data update and data deletion.
 DBMSプログラム133は、データファイル132に対する制限されたアクセスを利用者に提供する。DBMSプログラム133は、利用者から要求メッセージを受信し、利用者定義136および権限定義137に基づいて、要求メッセージの内容が利用者の権限の範囲内であることを確認する。そして、DBMSプログラム133は、データファイル132に含まれる関係テーブルに対して、要求メッセージに含まれるSQL文または要求メッセージが指定するストアドプロシジャを実行する。 The DBMS program 133 provides the user with limited access to the data file 132. The DBMS program 133 receives a request message from the user and, based on the user definition 136 and authority definition 137, confirms that the contents of the request message are within the user's authority. The DBMS program 133 then executes the SQL statement included in the request message or the stored procedure specified by the request message for the relational table included in the data file 132 .
 データカプセル130の生成時、機能が制限されていない通常版のDBMSプログラムを用いて、管理情報ファイル131およびデータファイル132が生成されて暗号化される。このとき、後述する暗号鍵復元フローを実現するための適切な利用者定義136、権限定義137、データ構造定義138およびプロシジャ定義139が設定される。その後、通常版のDBMSプログラムがDBMSプログラム133に入れ替えられる。 When the data capsule 130 is generated, the management information file 131 and the data file 132 are generated and encrypted using a normal version of the DBMS program whose functions are not restricted. At this time, a user definition 136, an authority definition 137, a data structure definition 138 and a procedure definition 139 suitable for realizing the encryption key recovery flow to be described later are set. After that, the normal version of the DBMS program is replaced with the DBMS program 133 .
 消去プログラム134は、コンテナプログラム135からの指示に応じて、データ漏洩を抑止するため、管理情報ファイル131およびデータファイル132を削除するプログラムである。消去プログラム134は、先に管理情報ファイル131を削除し、その後にデータファイル132を削除する。管理情報ファイル131およびデータファイル132の削除は、復元不能にするため、管理情報ファイル131およびデータファイル132が記憶された記憶領域に特定のビットを上書きすることで行われる。 The deletion program 134 is a program that deletes the management information file 131 and the data file 132 in order to prevent data leakage according to instructions from the container program 135 . The deletion program 134 first deletes the management information file 131 and then deletes the data file 132 . Deletion of the management information file 131 and the data file 132 is performed by overwriting a specific bit in the storage area in which the management information file 131 and the data file 132 are stored in order to make it unrestorable.
 コンテナプログラム135は、データカプセル130を単一ファイルにカプセル化するための代表プログラムである。データカプセル130を起動しようとすると、コンテナプログラム135が最初に実行される。コンテナプログラム135は、起動時に、利用者IDとパスワードを用いた利用者認証を行う。コンテナプログラム135は、利用者IDと正解のパスワードの対応を示すアカウント情報を保持してもよい。利用者認証に成功すると、コンテナプログラム135は、DBMSプログラム133を起動する。 The container program 135 is a representative program for encapsulating the data capsule 130 into a single file. When attempting to start the data capsule 130, the container program 135 is executed first. The container program 135 performs user authentication using a user ID and password when started. The container program 135 may hold account information indicating correspondence between user IDs and correct passwords. If user authentication succeeds, the container program 135 starts the DBMS program 133 .
 また、コンテナプログラム135は、データカプセル130が不正に使用されていないことを継続的に確認する状態確認を開始する。コンテナプログラム135は、データカプセル130の不正使用の可能性のある事象を検出すると、データカプセル130を無効化することを決定し、消去プログラム134を起動する。 Also, the container program 135 starts status confirmation to continuously confirm that the data capsule 130 is not being used illegally. When container program 135 detects an event of possible unauthorized use of data capsule 130 , container program 135 decides to invalidate data capsule 130 and invokes erasure program 134 .
 状態確認として、コンテナプログラム135は、起動後に図示しない監視サーバと定期的に通信する。監視サーバは、データカプセル生成サーバでもよく、暗号鍵を要求したメンバサーバでもよい。通信不能が検出された場合、コンテナプログラム135は、データカプセル130の無効化を決定する。また、コンテナプログラム135は、現在時刻が有効期限を過ぎていないことを確認する。コンテナプログラム135は、データカプセル130の有効期限の情報を保持してもよい。現在時刻が有効期限を過ぎた場合、コンテナプログラム135は、データカプセル130の無効化を決定する。 For status confirmation, the container program 135 periodically communicates with a monitoring server (not shown) after startup. The monitoring server may be the data encapsulation server or the member server that requested the encryption key. If a communication failure is detected, container program 135 decides to disable data capsule 130 . Also, the container program 135 confirms that the current time has not expired. The container program 135 may hold expiration date information for the data capsule 130 . If the current time has passed the expiration date, the container program 135 decides to invalidate the data capsule 130 .
 また、コンテナプログラム135は、データカプセル130に対する利用者認証の結果を監視して不正侵入を検出する。複数回の利用者認証の結果が特定のパターンに該当する場合、コンテナプログラム135は、不正侵入の可能性があると判断してデータカプセル130の無効化を決定する。不正侵入のパターンは、例えば、時間T1以内に利用者認証の失敗回数が閾値を超え、それに続く時間T2以内に利用者認証が成功したことである。 Also, the container program 135 monitors the result of user authentication for the data capsule 130 to detect unauthorized access. If the results of multiple user authentications correspond to a specific pattern, the container program 135 determines that there is a possibility of unauthorized intrusion and decides to invalidate the data capsule 130 . A pattern of unauthorized intrusion is, for example, that the number of user authentication failures exceeds a threshold within time T1, and that user authentication succeeds within time T2.
 鍵検証サーバ38がアラートを出力した場合、コンテナプログラム135は、アラートを利用者認証の失敗とみなしてもよい。また、鍵検証サーバ38がアラートを出力した場合、コンテナプログラム135は、データカプセル130の無効化を決定してもよい。そのために、例えば、コンテナプログラム135は、鍵検証サーバ38からアラートを受信する。状態確認によって、許可されていない者にデータカプセル130が転送された可能性や、許可されていない者がデータカプセル130に不正侵入した可能性が検出される。 When the key verification server 38 outputs an alert, the container program 135 may regard the alert as a failure of user authentication. Also, when the key verification server 38 outputs an alert, the container program 135 may decide to invalidate the data capsule 130 . To do so, for example, container program 135 receives an alert from key verification server 38 . The state confirmation detects the possibility that the data capsule 130 has been transferred to an unauthorized person or that the data capsule 130 has been illegally accessed by an unauthorized person.
 図7は、データベースに含まれるテーブルの例を示す図である。
 データファイル132は、関係データベースのテーブルとして、クラークテーブル161、メンバテーブル162、暗号鍵テーブル163、個別鍵位置テーブル164、個別鍵テーブル165および二重化鍵位置テーブル166を含む。
FIG. 7 is a diagram showing an example of a table included in the database.
The data file 132 includes a clerk table 161, a member table 162, an encryption key table 163, an individual key position table 164, an individual key table 165, and a dual key position table 166 as relational database tables.
 クラークテーブル161およびメンバテーブル162は、データカプセル130の生成時に作成され、更新されない。暗号鍵テーブル163、個別鍵位置テーブル164、個別鍵テーブル165および二重化鍵位置テーブル166は、データカプセル130の生成時は空である。個別鍵位置テーブル164および個別鍵テーブル165には、クラークサーバ35,36,37からレコードが挿入される。暗号鍵テーブル163および二重化鍵位置テーブル166には、メンバサーバ32,33,34からレコードが挿入される。 The clerk table 161 and member table 162 are created when the data capsule 130 is generated and are not updated. The encryption key table 163, the individual key position table 164, the individual key table 165, and the duplex key position table 166 are empty when the data capsule 130 is generated. Records are inserted into the individual key position table 164 and the individual key table 165 from the clerk servers 35 , 36 and 37 . Records are inserted from the member servers 32 , 33 , 34 into the encryption key table 163 and the duplicated key position table 166 .
 クラークテーブル161は、個別鍵位置情報および個別鍵リストをもつ全てのクラークサーバの識別子を格納するテーブルである。クラークテーブル161には、クラークサーバ35,36,37の識別子が登録される。メンバテーブル162は、二重化鍵位置情報および二重化鍵リストをもつ全てのメンバサーバの識別子を格納するテーブルである。メンバテーブル162には、メンバサーバ32,33,34の識別子が登録される。なお、メンバサーバ32,33,34およびクラークサーバ35,36,37の識別子は、サーバ名でもよいし、ロールIDでもよいし、サーバアドレスでもよい。 The clerk table 161 is a table that stores identifiers of all clerk servers that have individual key location information and individual key lists. Identifiers of the clerk servers 35 , 36 and 37 are registered in the clerk table 161 . The member table 162 is a table that stores identifiers of all member servers that have dual key location information and a dual key list. Identifiers of the member servers 32 , 33 , 34 are registered in the member table 162 . The identifiers of the member servers 32, 33, 34 and the clerks servers 35, 36, 37 may be server names, role IDs, or server addresses.
 暗号鍵テーブル163は、復元された暗号鍵を格納するテーブルである。メンバサーバ32,33,34のうち何れか1つのメンバサーバが、要求された暗号鍵を暗号鍵テーブル163に挿入する。他のメンバサーバは、要求された暗号鍵が見つからなかったことを示すFalseレコードを暗号鍵テーブル163に挿入する。ただし、他のメンバサーバは、暗号鍵テーブル163にレコードを挿入しないようにしてもよい。 The encryption key table 163 is a table that stores the restored encryption key. Any one of the member servers 32 , 33 , 34 inserts the requested encryption key into the encryption key table 163 . Other member servers insert a False record into the encryption key table 163 indicating that the requested encryption key was not found. However, other member servers may not insert records into the encryption key table 163 .
 個別鍵位置テーブル164は、個別鍵位置情報を格納するテーブルである。クラークサーバ35,36,37は、個別鍵位置テーブル164にレコードを挿入する。個別鍵位置テーブル164の各レコードは、クラーク識別子および個別鍵位置情報を含む。クラーク識別子は、個別鍵位置情報を格納したクラークサーバを示す。個別鍵位置情報は、3つの個別鍵に対応する3つの数値を含む。個別鍵位置テーブル164に基づいて、個別鍵リストの中で3つの個別鍵の位置を示す3つのインデックスが算出される。 The individual key position table 164 is a table that stores individual key position information. The clerk servers 35 , 36 , 37 insert records into the individual key location table 164 . Each record in the individual key location table 164 includes a clerk identifier and individual key location information. The clerk identifier indicates the clerk server that stores the individual key location information. The individual key position information includes three numerical values corresponding to three individual keys. Based on the individual key position table 164, three indices are calculated that indicate the positions of the three individual keys in the individual key list.
 個別鍵テーブル165は、個別鍵を格納するテーブルである。クラークサーバ35,36,37は、個別鍵テーブル165にレコードを挿入する。個別鍵テーブル165の各レコードは、クラーク識別子、メンバ識別子、個別鍵および対象フラグを含む。クラーク識別子は、個別鍵を格納したクラークサーバを示す。メンバ識別子は、個別鍵が何れのメンバサーバ用のものであるかを示す。対象フラグは、個別鍵が、今回暗号鍵を要求したメンバサーバに対応するものであるか否かを示す。対象フラグは、暗号鍵の要求を受け付けた鍵管理サーバ31によって書き込まれる。 The individual key table 165 is a table that stores individual keys. The clerk servers 35 , 36 , 37 insert records into the individual key table 165 . Each record in the individual key table 165 includes a clerk identifier, member identifier, individual key and target flag. The clerk identifier indicates the clerk server that stores the individual key. The member identifier indicates for which member server the individual key is intended. The target flag indicates whether or not the individual key corresponds to the member server that requested the encryption key this time. The target flag is written by the key management server 31 that has accepted the request for the encryption key.
 後述するように、鍵管理サーバ31はクラークサーバ35,36,37それぞれに対して、3つのメンバ識別子に対応する3つの個別鍵を要求する。各クラークサーバは、高々1つのメンバ識別子について正しい個別鍵を出力し、他のメンバ識別子については個別鍵が見つからなかったことを示すFalseを出力する。各クラークサーバは、個別鍵が見つからなかったメンバ識別子については、Falseレコードを個別鍵テーブル165に挿入してもよいし、レコードを個別鍵テーブル165に挿入しなくてもよい。 As will be described later, the key management server 31 requests three individual keys corresponding to three member identifiers from each of the clerk servers 35, 36, and 37. Each clerk server outputs the correct individual key for at most one member identifier, and outputs False for other member identifiers, indicating that no individual key was found. Each clerk server may insert a False record into the individual key table 165 for a member identifier for which an individual key was not found, or may not insert a record into the individual key table 165 .
 二重化鍵位置テーブル166は、二重化鍵位置情報を格納するテーブルである。メンバサーバ32,33,34は、二重化鍵位置テーブル166にレコードを挿入する。二重化鍵位置テーブル166の各レコードは、メンバ識別子および二重化鍵位置情報を含む。メンバ識別子は、二重化鍵位置情報を格納したメンバサーバを示す。二重化鍵位置情報は、所望の二重化鍵に関する1つの数値を含む。二重化鍵位置テーブル166に基づいて、二重化鍵リストの中で所望の二重化鍵の位置を示すインデックスが算出される。 The duplicate key position table 166 is a table that stores duplicate key position information. Member servers 32 , 33 , 34 insert records into duplicated key location table 166 . Each record in the duplicated key location table 166 includes a member identifier and duplicated key location information. The member identifier indicates the member server that stores the dual key location information. The duplicate key location information contains a single numerical value for the desired duplicate key. Based on the duplicated key position table 166, an index indicating the position of the desired duplicated key in the duplicated key list is calculated.
 図8は、データベースに含まれるプロシジャ定義の例を示す図である。
 プロシジャ定義139には、以下に説明するようなストアドプロシジャが登録される。ここでは、各ストアドプロシジャの入力、出力および処理概要について説明する。プロシジャ定義139は、実際にはプロシジャ記述言語で記載されたプログラムを含む。プロシジャ定義139は、ストアドプロシジャ171~178を含む。
FIG. 8 is a diagram showing an example of procedure definitions contained in the database.
A stored procedure as described below is registered in the procedure definition 139 . Input, output and processing outline of each stored procedure are described here. Procedure definition 139 actually includes a program written in a procedure description language. Procedure definition 139 includes stored procedures 171-178.
 ストアドプロシジャ171は、個別鍵位置通信完了を示す。ストアドプロシジャ171は、個別鍵位置テーブル164にレコードが挿入されたことを契機として呼び出される。ストアドプロシジャ171は、クラークテーブル161と個別鍵位置テーブル164とを照合して、全てのクラークサーバから個別鍵位置情報を受信したか判定する。ストアドプロシジャ171は、判定結果を示すTrueまたはFalseを出力する。 The stored procedure 171 indicates completion of individual key position communication. The stored procedure 171 is called when a record is inserted into the individual key position table 164 . The stored procedure 171 collates the clerk table 161 and the individual key location table 164 to determine whether individual key location information has been received from all clerk servers. The stored procedure 171 outputs True or False indicating the determination result.
 ストアドプロシジャ172は、個別鍵位置算出を示す。ストアドプロシジャ172は、ストアドプロシジャ171がTrueを出力したことを契機として呼び出される。ストアドプロシジャ172は、個別鍵位置テーブル164に含まれる個別鍵位置情報を合成して、各メンバサーバの個別鍵位置を示すインデックスを算出する。例えば、ストアドプロシジャ172は、メンバサーバ毎に偶数の和×奇数の積を算出する。ストアドプロシジャ172は、算出された個別鍵位置を出力する。なお、個別鍵位置を算出するロジックは、ストアドプロシジャ172の中に秘匿されており、外部に公開されない。 The stored procedure 172 indicates individual key position calculation. The stored procedure 172 is called when the stored procedure 171 outputs True. The stored procedure 172 synthesizes the individual key position information contained in the individual key position table 164 and calculates an index indicating the individual key position of each member server. For example, the stored procedure 172 calculates the sum of even numbers times the product of odd numbers for each member server. Stored procedure 172 outputs the calculated individual key position. Note that the logic for calculating the individual key position is hidden in the stored procedure 172 and is not disclosed to the outside.
 ストアドプロシジャ173は、個別鍵通信完了を示す。ストアドプロシジャ173は、個別鍵テーブル165にレコードが挿入されたことを契機として呼び出される。また、ストアドプロシジャ173は、暗号鍵を要求したメンバサーバを示す対象メンバ識別子を受け付ける。ストアドプロシジャ173は、クラークテーブル161と個別鍵テーブル165とを照合して、全てのクラークサーバから個別鍵の読み出し結果を受信したか判定する。ストアドプロシジャ173は、判定結果を示すTrueまたはFalseを出力する。また、ストアドプロシジャ173は、判定結果がTrueである場合、個別鍵テーブル165の中で対象メンバ識別子に対応する対象フラグをTrueに書き換える。 The stored procedure 173 indicates completion of individual key communication. The stored procedure 173 is called when a record is inserted into the individual key table 165 . Stored procedure 173 also receives a target member identifier indicating the member server that requested the encryption key. The stored procedure 173 collates the clerk table 161 and the individual key table 165 to determine whether the individual key read results have been received from all the clerk servers. The stored procedure 173 outputs True or False indicating the determination result. Also, when the determination result is True, the stored procedure 173 rewrites the target flag corresponding to the target member identifier in the individual key table 165 to True.
 ストアドプロシジャ174は、個別鍵出力を示す。ストアドプロシジャ174は、個別鍵テーブル165から、対象フラグがTrueである個別鍵を読み出す。ストアドプロシジャ174は、読み出した個別鍵を出力する。ただし、ストアドプロシジャ174は、個別鍵を出力する代わりに、個別鍵を用いた特定の処理を実行するようにしてもよい。また、データカプセル130は、ストアドプロシジャ174を定義する代わりに、特定の利用者に個別鍵テーブル165に対するデータ検索を許可してもよい。 The stored procedure 174 indicates individual key output. The stored procedure 174 reads individual keys whose target flag is True from the individual key table 165 . The stored procedure 174 outputs the read individual key. However, the stored procedure 174 may execute specific processing using the individual key instead of outputting the individual key. Also, instead of defining stored procedures 174 , data capsule 130 may allow specific users to retrieve data from individual key table 165 .
 ストアドプロシジャ175は、二重化鍵位置通信完了を示す。ストアドプロシジャ175は、二重化鍵位置テーブル166にレコードが挿入されたことを契機として呼び出される。ストアドプロシジャ175は、メンバテーブル162と二重化鍵位置テーブル166とを照合して、全てのメンバサーバから二重化鍵位置情報を受信したか判定する。ストアドプロシジャ175は、判定結果を示すTrueまたはFalseを出力する。 The stored procedure 175 indicates completion of duplicate key location communication. The stored procedure 175 is called when a record is inserted into the duplicated key position table 166 . The stored procedure 175 collates the member table 162 and the duplicated key location table 166 to determine whether duplicated key location information has been received from all member servers. The stored procedure 175 outputs True or False indicating the determination result.
 ストアドプロシジャ176は、二重化鍵位置算出を示す。ストアドプロシジャ176は、ストアドプロシジャ175がTrueを出力したことを契機として呼び出される。ストアドプロシジャ176は、二重化鍵位置テーブル166に含まれる二重化鍵位置情報を合成して、対象メンバの二重化鍵位置を示すインデックスを算出する。例えば、ストアドプロシジャ176は、偶数の和×奇数の積を算出する。ストアドプロシジャ176は、算出された二重化鍵位置を出力する。なお、二重化鍵位置を算出するロジックは、ストアドプロシジャ176の中に秘匿されており、外部に公開されない。 The stored procedure 176 indicates duplicate key position calculation. The stored procedure 176 is called when the stored procedure 175 outputs True. The stored procedure 176 synthesizes the duplicated key position information contained in the duplicated key position table 166 and calculates an index indicating the duplicated key position of the target member. For example, stored procedure 176 computes the sum of even times the product of odd. Stored procedure 176 outputs the calculated duplicated key position. Note that the logic for calculating the duplicated key position is hidden in the stored procedure 176 and is not disclosed to the outside.
 ストアドプロシジャ177は、暗号鍵通信完了を示す。ストアドプロシジャ177は、暗号鍵テーブル163にレコードが挿入されたことを契機として呼び出される。ストアドプロシジャ177は、メンバテーブル162と暗号鍵テーブル163とを照合して、全てのメンバサーバから暗号鍵の読み出し結果を受信したか判定する。ストアドプロシジャ177は、判定結果を示すTrueまたはFalseを出力する。 The stored procedure 177 indicates the completion of encryption key communication. The stored procedure 177 is called when a record is inserted into the encryption key table 163 . The stored procedure 177 collates the member table 162 and the encryption key table 163 to determine whether or not the encryption key reading results have been received from all the member servers. The stored procedure 177 outputs True or False indicating the determination result.
 ストアドプロシジャ178は、暗号鍵出力を示す。ストアドプロシジャ178は、暗号鍵テーブル163から暗号鍵を読み出し、読み出した暗号鍵を出力する。ただし、データカプセル130は、ストアドプロシジャ178を定義する代わりに、特定の利用者に暗号鍵テーブル163に対するデータ検索を許可してもよい。 The stored procedure 178 indicates the encryption key output. The stored procedure 178 reads the encryption key from the encryption key table 163 and outputs the read encryption key. However, instead of defining stored procedures 178 , data capsule 130 may allow specific users to retrieve data from encryption key table 163 .
 図9は、データベースに含まれる権限定義の例を示す図である。
 権限定義137は、鍵管理サーバ31、メンバサーバ32,33,34およびクラークサーバ35,36,37に対して、以下のようなアクセス権限を付与する。
FIG. 9 is a diagram showing an example of authority definitions contained in the database.
The authority definition 137 gives the following access authority to the key management server 31, the member servers 32, 33 and 34 and the clerks servers 35, 36 and 37.
 鍵管理サーバ31に対しては、個別鍵出力および暗号鍵出力を除くストアドプロシジャ、すなわち、ストアドプロシジャ171,172,173,175,176,177の実行が許可される。よって、鍵管理サーバ31は、データカプセル130から個別鍵位置および二重化鍵位置を取得することができる。一方、鍵管理サーバ31に対しては、テーブルへのデータ挿入およびテーブルからのデータ検索が禁止される。 The key management server 31 is permitted to execute stored procedures excluding individual key output and encryption key output, that is, stored procedures 171, 172, 173, 175, 176, and 177. Therefore, the key management server 31 can acquire the individual key position and the duplicate key position from the data capsule 130 . On the other hand, the key management server 31 is prohibited from inserting data into the table and retrieving data from the table.
 クラークサーバ35,36,37に対しては、テーブルへのデータ挿入が許可される。一方、クラークサーバ35,36,37に対しては、テーブルからのデータ検索およびストアドプロシジャの実行が禁止される。 Clerk servers 35, 36, and 37 are permitted to insert data into tables. On the other hand, clerk servers 35, 36 and 37 are prohibited from retrieving data from tables and executing stored procedures.
 メンバサーバ32,33,34に対しては、テーブルへのデータ挿入が許可される。また、メンバサーバ32,33,34に対しては、個別鍵出力を示すストアドプロシジャ174の実行が許可される。メンバサーバ32に対しては更に、暗号鍵出力を示すストアドプロシジャ178の実行が許可される。一方、メンバサーバ32,33,34に対しては、テーブルからのデータ検索および他のストアドプロシジャの実行が禁止される。ただし、ストアドプロシジャ174の実行に代えて、個別鍵テーブル165からのデータ検索が許可されてもよい。また、ストアドプロシジャ178の実行に代えて、暗号鍵テーブル163からのデータ検索が許可されてもよい。  The member servers 32, 33, and 34 are permitted to insert data into the table. Also, the member servers 32, 33, and 34 are permitted to execute the stored procedure 174 indicating individual key output. The member server 32 is also permitted to execute a stored procedure 178 that indicates encryption key output. On the other hand, member servers 32, 33 and 34 are prohibited from retrieving data from tables and executing other stored procedures. However, instead of executing the stored procedure 174, data retrieval from the individual key table 165 may be permitted. Data retrieval from the encryption key table 163 may be permitted instead of executing the stored procedure 178 .
 次に、暗号鍵を復元するフローについて説明する。
 図10は、暗号鍵の復元例を示す図である。
 メンバサーバ32は、鍵管理サーバ31に暗号鍵を要求する。このとき、メンバサーバ32は、データカプセル130を鍵管理サーバ31に送信する。鍵管理サーバ31は、DBMSプログラム133をサーバプロセスとして起動し、メンバサーバ32,33,34およびクラークサーバ35,36,37に対してDBMSプログラム133のアプリケーションインタフェースを開示する。これにより、メンバサーバ32,33,34およびクラークサーバ35,36,37は、同一のデータベースにアクセスできる。
Next, the flow for restoring the encryption key will be described.
FIG. 10 is a diagram showing an example of restoration of an encryption key.
The member server 32 requests the encryption key from the key management server 31 . At this time, the member server 32 transmits the data capsule 130 to the key management server 31 . The key management server 31 activates the DBMS program 133 as a server process and exposes the application interface of the DBMS program 133 to the member servers 32 , 33 , 34 and the clerks servers 35 , 36 , 37 . This allows the member servers 32, 33, 34 and the clerks servers 35, 36, 37 to access the same database.
 ただし、鍵管理サーバ31は、データカプセル130の送信および回収を、メンバサーバ32,33,34およびクラークサーバ35,36,37との間で逐次的に実行することも可能である。また、鍵管理サーバ31は、データカプセル130を複製してメンバサーバ32,33,34およびクラークサーバ35,36,37に送信してもよい。その場合、鍵管理サーバ31は、ストアドプロシジャを利用して、回収した複製がもつデータを1つのデータカプセルに集約すればよい。 However, the key management server 31 can also sequentially transmit and retrieve the data capsule 130 between the member servers 32, 33, and 34 and the clerks servers 35, 36, and 37. Also, the key management server 31 may copy the data capsule 130 and transmit it to the member servers 32 , 33 , 34 and the clerks servers 35 , 36 , 37 . In that case, the key management server 31 may use a stored procedure to aggregate the data of the collected duplicates into one data capsule.
 鍵管理サーバ31は、クラークサーバ35,36,37に対して並列に個別鍵位置情報を要求する。クラークサーバ35は、個別鍵位置情報141をデータカプセル130に挿入する。クラークサーバ36は、個別鍵位置情報142をデータカプセル130に挿入する。クラークサーバ37は、個別鍵位置情報143をデータカプセル130に挿入する。 The key management server 31 requests the individual key location information from the clerk servers 35, 36, and 37 in parallel. The clerk server 35 inserts the individual key location information 141 into the data capsule 130 . The clerk server 36 inserts the individual key location information 142 into the data capsule 130 . The clerk server 37 inserts the individual key location information 143 into the data capsule 130 .
 鍵管理サーバ31は、ストアドプロシジャ172を実行する。ストアドプロシジャ172は、個別鍵位置情報141,142,143に含まれる1番目の数値をハッシュ関数に入力して、メンバサーバ32の個別鍵位置を算出する。また、ストアドプロシジャ172は、2番目の数値をハッシュ関数に入力してメンバサーバ33の個別鍵位置を算出し、3番目の数値をハッシュ関数に入力してメンバサーバ34の個別鍵位置を算出する。鍵管理サーバ31は、ストアドプロシジャ172から、メンバサーバ32,33,34の個別鍵位置として「6」「2」「4」を取得する。このとき、個別鍵位置情報141,142,143およびそれを合成するロジックは、鍵管理サーバ31から保護される。 The key management server 31 executes the stored procedure 172. The stored procedure 172 inputs the first numerical value included in the individual key position information 141, 142, 143 to the hash function to calculate the individual key position of the member server 32. FIG. Also, the stored procedure 172 inputs the second numerical value to the hash function to calculate the individual key position of the member server 33, and inputs the third numerical value to the hash function to calculate the individual key position of the member server 34. . The key management server 31 acquires "6", "2", and "4" as the individual key positions of the member servers 32, 33, and 34 from the stored procedure 172. FIG. At this time, the individual key location information 141 , 142 , 143 and the logic for synthesizing them are protected from the key management server 31 .
 鍵管理サーバ31は、メンバサーバ32,33,34の個別鍵がそれぞれ何れのクラークサーバにあるか知らない。そこで、鍵管理サーバ31は、個別鍵位置「6」「2」「4」を指定して、クラークサーバ35,36,37に対して並列に個別鍵を要求する。 The key management server 31 does not know in which clerk server the individual keys of the member servers 32, 33, and 34 reside. Therefore, the key management server 31 designates individual key positions "6", "2", and "4", and requests individual keys from the clerks servers 35, 36, and 37 in parallel.
 クラークサーバ35は、個別鍵リスト144から個別鍵位置「6」「2」「4」それぞれの鍵を抽出する。クラークサーバ35は、抽出された鍵が個別鍵であるか否かを鍵検証サーバ38に問い合わせる。個別鍵位置「6」「2」「4」の鍵は何れもトラップ鍵でないため、鍵検証サーバ38からクラークサーバ35への応答は遅延しない。クラークサーバ35は、個別鍵位置「6」に対しては抽出失敗、個別鍵位置「2」に対しては個別鍵、個別鍵位置「4」に対しては抽出失敗を、データカプセル130に挿入する。 The clerk server 35 extracts the keys of the individual key positions "6", "2" and "4" from the individual key list 144. The clerk server 35 inquires of the key verification server 38 whether the extracted key is an individual key. Since none of the keys at the individual key positions "6", "2", and "4" are trap keys, the response from the key verification server 38 to the clerk server 35 is not delayed. The clerk server 35 inserts into the data capsule 130 an extraction failure for individual key position "6," an individual key for individual key position "2," and an extraction failure for individual key position "4." do.
 同様に、クラークサーバ36は、個別鍵リスト145から個別鍵位置「6」「2」「4」それぞれの鍵を抽出する。クラークサーバ36は、個別鍵位置「6」に対しては抽出失敗、個別鍵位置「2」に対しては抽出失敗、個別鍵位置「4」に対しては個別鍵を、データカプセル130に挿入する。クラークサーバ37は、個別鍵リスト146から個別鍵位置「6」「2」「4」それぞれの鍵を抽出する。クラークサーバ37は、個別鍵位置「6」に対しては個別鍵、個別鍵位置「2」に対しては抽出失敗、個別鍵位置「4」に対しては抽出失敗を、データカプセル130に挿入する。 Similarly, the clerk server 36 extracts the keys of the individual key positions "6", "2" and "4" from the individual key list 145. Clerk server 36 inserts into data capsule 130 an extraction failure for individual key position "6", an extraction failure for individual key position "2", and an individual key for individual key position "4". do. The clerk server 37 extracts the keys of the individual key positions “6”, “2” and “4” from the individual key list 146 . Clerk server 37 inserts into data capsule 130 an individual key for individual key position "6," an extraction failure for individual key position "2," and an extraction failure for individual key position "4." do.
 鍵管理サーバ31は、メンバサーバ32のメンバ識別子を指定して、ストアドプロシジャ173を実行する。ストアドプロシジャ173は、データカプセル130から抽出失敗の情報を除去する。これにより、データカプセル130には、メンバサーバ32,33,34に対応する3つの個別鍵が残る。ストアドプロシジャ173は、3つの個別鍵のうち、メンバサーバ32のメンバ識別子に対応する個別鍵にマークを付与する。このとき、個別鍵は鍵管理サーバ31から保護される。 The key management server 31 specifies the member identifier of the member server 32 and executes the stored procedure 173 . Stored procedure 173 removes extraction failure information from data capsule 130 . This leaves the data capsule 130 with three individual keys corresponding to the member servers 32 , 33 , 34 . The stored procedure 173 marks the individual key corresponding to the member identifier of the member server 32 among the three individual keys. At this time, the individual key is protected from the key management server 31 .
 図11は、暗号鍵の復元例を示す図(続き)である。
 鍵管理サーバ31は、メンバサーバ32,33,34に対して並列に、二重化鍵位置情報に含まれる3つの数値のうちメンバサーバ32に関する数値を要求する。メンバサーバ32は、二重化鍵位置情報151に含まれる1番目の数値「2」をデータカプセル130に挿入する。メンバサーバ33は、二重化鍵位置情報152に含まれる1番目の数値「2」をデータカプセル130に挿入する。メンバサーバ34は、二重化鍵位置情報153に含まれる1番目の数値「1」をデータカプセル130に挿入する。
FIG. 11 is a diagram (continued) showing an example of restoration of the encryption key.
The key management server 31 requests the member servers 32, 33, and 34 in parallel for the numerical values related to the member server 32 among the three numerical values included in the duplicated key location information. Member server 32 inserts the first numerical value “2” included in duplicated key location information 151 into data capsule 130 . Member server 33 inserts the first numerical value “2” included in duplicated key location information 152 into data capsule 130 . Member server 34 inserts the first numerical value “1” included in duplicated key location information 153 into data capsule 130 .
 このとき、鍵管理サーバ31は、二重化鍵位置情報の中の何番目の数値を抽出するかをメンバサーバ32,33,34に対して指定してもよい。また、二重化鍵位置情報151,152,153は、3つの個別鍵と3つの数値とを対応付けていてもよい。その場合、鍵管理サーバ31は、マークが付された個別鍵に対応する数値をメンバサーバ32,33,34に対して要求する。メンバサーバ32,33,34は、マークが付された個別鍵をデータカプセル130から読み出し、その個別鍵に対応する数値を抽出する。二重化鍵位置情報の各数値が個別鍵で暗号化されていてもよい。その場合、メンバサーバ32,33,34は、読み出した個別鍵で復号できる数値を探す。 At this time, the key management server 31 may specify to the member servers 32, 33, and 34 what numerical value to extract from the duplicated key location information. Also, the duplicated key position information 151, 152, 153 may associate three individual keys with three numerical values. In that case, the key management server 31 requests the member servers 32, 33, and 34 for numerical values corresponding to the marked individual keys. The member servers 32, 33, 34 read the marked individual key from the data capsule 130 and extract the numerical value corresponding to the individual key. Each numerical value of the double key position information may be encrypted with an individual key. In that case, the member servers 32, 33, 34 search for a numerical value that can be decrypted with the read individual key.
 鍵管理サーバ31は、ストアドプロシジャ176を実行する。ストアドプロシジャ176は、メンバサーバ32,33,34から収集した3つの数値をハッシュ関数に入力して、メンバサーバ32の二重化鍵位置を算出する。鍵管理サーバ31は、ストアドプロシジャ176から、メンバサーバ32の二重化鍵位置として「4」を取得する。このとき、収集された数値およびそれを合成するロジックは、鍵管理サーバ31から保護される。 The key management server 31 executes the stored procedure 176. The stored procedure 176 inputs the three numerical values collected from the member servers 32 , 33 , 34 into the hash function to calculate the double key position of the member server 32 . The key management server 31 acquires “4” as the duplicate key position of the member server 32 from the stored procedure 176 . At this time, the collected numerical values and logic for synthesizing them are protected from the key management server 31 .
 鍵管理サーバ31は、メンバサーバ32の二重化鍵が何れのメンバサーバにあるか知らない。そこで、鍵管理サーバ31は、二重化鍵位置「4」を指定して、メンバサーバ32,33,34に対して並列に暗号鍵を要求する。 The key management server 31 does not know in which member server the duplicate key of the member server 32 resides. Therefore, the key management server 31 requests the member servers 32, 33, and 34 for the encryption keys in parallel, specifying the duplicated key position "4".
 メンバサーバ32は、二重化鍵リスト154から二重化鍵位置「4」の鍵を抽出し、マークが付された個別鍵をデータカプセル130から読み出す。メンバサーバ32は、抽出された鍵が二重化鍵であるか否かを鍵検証サーバ38に問い合わせる。二重化鍵位置「4」の鍵はトラップ鍵でないため、鍵検証サーバ38からメンバサーバ32への応答は遅延しない。メンバサーバ32は、抽出失敗をデータカプセル130に挿入する。 The member server 32 extracts the key in the duplicated key position "4" from the duplicated key list 154 and reads out the marked individual key from the data capsule 130 . The member server 32 inquires of the key verification server 38 whether the extracted key is a duplicate key. Since the key in duplicate key position "4" is not a trap key, the response from key verification server 38 to member server 32 is not delayed. Member server 32 inserts an extraction failure into data capsule 130 .
 同様に、メンバサーバ33は、二重化鍵リスト155から二重化鍵位置「4」の鍵を抽出し、マークが付された個別鍵をデータカプセル130から読み出す。メンバサーバ33は、抽出失敗をデータカプセル130に挿入する。メンバサーバ34は、二重化鍵リスト156から二重化鍵位置「4」の鍵を抽出し、マークが付された個別鍵をデータカプセル130から読み出す。メンバサーバ33は、抽出された二重化鍵を個別鍵で復号し、復号された暗号鍵をデータカプセル130に挿入する。 Similarly, the member server 33 extracts the key in the duplicated key position "4" from the duplicated key list 155 and reads the marked individual key from the data capsule 130. Member server 33 inserts an extraction failure into data capsule 130 . Member server 34 extracts the key in duplicate key position “4” from duplicate key list 156 and reads the marked individual key from data capsule 130 . The member server 33 decrypts the extracted double key with the individual key and inserts the decrypted encryption key into the data capsule 130 .
 鍵管理サーバ31は、ストアドプロシジャ177を実行する。ストアドプロシジャ177は、データカプセル130から抽出失敗の情報を除去する。これにより、データカプセル130には、メンバサーバ32の暗号鍵が残る。このとき、暗号鍵は鍵管理サーバ31から保護される。鍵管理サーバ31は、データカプセル130をメンバサーバ32に送信する。メンバサーバ32は、データカプセル130から暗号鍵を読み出す。 The key management server 31 executes the stored procedure 177. Stored procedure 177 removes extraction failure information from data capsule 130 . As a result, the encryption key of the member server 32 remains in the data capsule 130 . At this time, the encryption key is protected from the key management server 31 . The key management server 31 transmits the data capsule 130 to the member server 32 . Member server 32 reads the encryption key from data capsule 130 .
 次に、サーバ装置の機能および処理手順について説明する。
 図12は、サーバ装置のソフトウェア構造例を示すブロック図である。
 鍵管理サーバ31は、鍵情報配置部121および暗号鍵復元部122を有する。鍵情報配置部121および暗号鍵復元部122は、例えば、CPU101、通信インタフェース107およびプログラムを用いて実装される。
Next, functions and processing procedures of the server device will be described.
FIG. 12 is a block diagram showing an example of the software structure of the server device.
The key management server 31 has a key information placement unit 121 and an encryption key restoration unit 122 . The key information allocation unit 121 and the encryption key recovery unit 122 are implemented using, for example, the CPU 101, the communication interface 107, and programs.
 鍵情報配置部121は、登録される暗号鍵をメンバサーバ32,33,34から受け付ける。鍵情報配置部121は、メンバサーバ毎に個別鍵を生成し、暗号鍵を個別鍵で暗号化して二重化鍵を生成する。鍵情報配置部121は、個別鍵、二重化鍵および乱数に基づいて、個別鍵位置情報、個別鍵リスト、二重化鍵位置情報および二重化鍵リストを生成する。鍵情報配置部121は、個別鍵位置情報および個別鍵リストを、クラークサーバ35,36,37に送信して記憶させる。また、鍵情報配置部121は、二重化鍵位置情報および二重化鍵リストを、メンバサーバ32,33,34に送信して記憶させる。 The key information placement unit 121 receives the encryption key to be registered from the member servers 32, 33, and 34. The key information placement unit 121 generates an individual key for each member server, encrypts the encryption key with the individual key, and generates a duplicated key. The key information placement unit 121 generates individual key position information, an individual key list, dual key position information and a dual key list based on the individual key, dual key and random number. The key information placement unit 121 transmits the individual key position information and the individual key list to the clerk servers 35, 36, and 37 for storage. Further, the key information placement unit 121 transmits the duplicated key position information and the duplicated key list to the member servers 32, 33, and 34 for storage.
 暗号鍵復元部122は、1つのメンバサーバからデータカプセル130を受信する。暗号鍵復元部122は、クラークサーバ35,36,37からデータカプセル130に個別鍵位置情報を挿入させ、個別鍵位置を算出する。暗号鍵復元部122は、クラークサーバ35,36,37からデータカプセル130に、個別鍵位置で指定される個別鍵を挿入させる。暗号鍵復元部122は、メンバサーバ32,33,34からデータカプセル130に二重化鍵位置情報を挿入させ、二重化鍵位置を算出する。暗号鍵復元部122は、メンバサーバ32,33,34からデータカプセル130に、二重化鍵位置で指定される二重化鍵を個別鍵で復号した結果を挿入させる。そして、暗号鍵復元部122は、要求元のメンバサーバに対してデータカプセル130を返信する。 The encryption key recovery unit 122 receives the data capsule 130 from one member server. The encryption key recovery unit 122 inserts the individual key position information from the clark servers 35, 36, and 37 into the data capsule 130, and calculates the individual key position. The encryption key recovery unit 122 causes the clark servers 35 , 36 , 37 to insert the individual key specified by the individual key position into the data capsule 130 . The encryption key recovery unit 122 inserts the duplicated key position information from the member servers 32, 33, and 34 into the data capsule 130, and calculates the duplicated key position. The encryption key recovery unit 122 causes the member servers 32, 33, and 34 to insert into the data capsule 130 the result of decrypting the duplicated key specified by the duplicated key position with the individual key. The encryption key recovery unit 122 then returns the data capsule 130 to the requesting member server.
 メンバサーバ32は、鍵情報記憶部123、暗号鍵要求部124および鍵情報送信部125を有する。鍵情報記憶部123は、例えば、メンバサーバ32のRAMまたはHDDを用いて実装される。暗号鍵要求部124および鍵情報送信部125は、例えば、メンバサーバ32のCPU、通信インタフェースおよびプログラムを用いて実装される。メンバサーバ33,34が、メンバサーバ32と同様のモジュールを有してもよい。 The member server 32 has a key information storage unit 123 , an encryption key request unit 124 and a key information transmission unit 125 . The key information storage unit 123 is implemented using the RAM or HDD of the member server 32, for example. The encryption key requesting unit 124 and the key information transmitting unit 125 are implemented using, for example, the CPU, communication interface and program of the member server 32 . Member servers 33 and 34 may have modules similar to member server 32 .
 鍵情報記憶部123は、鍵管理サーバ31から配布された鍵要素情報を記憶する。鍵要素情報は、二重化鍵位置情報および二重化鍵リストを含む。
 暗号鍵要求部124は、アプリケーションソフトウェアから暗号鍵の要求を受け付ける。アプリケーションソフトウェアは、例えば、メンバサーバ32で実行されるデータベースソフトウェアである。すると、暗号鍵要求部124は、鍵管理サーバ31にデータカプセル130を送信する。データカプセル130は、メンバサーバ32が生成してもよいし、メンバサーバ32がデータカプセル生成サーバに生成を依頼してもよい。暗号鍵要求部124は、鍵管理サーバ31からデータカプセル130を受信し、データカプセル130の中からメンバサーバ32の暗号鍵を読み出す。
The key information storage unit 123 stores key element information distributed from the key management server 31 . The key element information includes dual key location information and a dual key list.
Encryption key requesting unit 124 receives a request for an encryption key from application software. The application software is, for example, database software executed on the member server 32 . The encryption key requesting unit 124 then transmits the data capsule 130 to the key management server 31 . The data capsule 130 may be generated by the member server 32, or the member server 32 may request the generation of the data capsule generation server. The encryption key requesting unit 124 receives the data capsule 130 from the key management server 31 and reads out the encryption key of the member server 32 from the data capsule 130 .
 鍵情報送信部125は、鍵管理サーバ31からの要求に応じて、鍵情報記憶部123に記憶された二重化鍵位置情報の中から指定された数値を抽出し、鍵管理サーバ31がもつデータカプセル130に挿入する。また、鍵情報送信部125は、鍵管理サーバ31からの要求に応じて、鍵情報記憶部123に記憶された二重化鍵リストの中から指定された二重化鍵位置の鍵を抽出する。鍵情報送信部125は、抽出した鍵の種別を鍵検証サーバ38に問い合わせる。鍵種別が二重化鍵でない場合、鍵情報送信部125は、鍵管理サーバ31がもつデータカプセル130に抽出失敗の報告を挿入する。鍵種別が二重化鍵である場合、鍵情報送信部125は、鍵管理サーバ31がもつデータカプセル130に、二重化鍵を個別鍵で復号して得られる暗号鍵を挿入する。 In response to a request from the key management server 31, the key information transmission unit 125 extracts a designated numerical value from the duplicated key position information stored in the key information storage unit 123, and converts the data capsule possessed by the key management server 31. Insert at 130. Further, the key information transmitting unit 125 extracts the key at the specified duplicated key position from the duplicated key list stored in the key information storage unit 123 in response to a request from the key management server 31 . The key information transmission unit 125 inquires of the key verification server 38 about the type of the extracted key. If the key type is not a duplicated key, the key information transmitting unit 125 inserts an extraction failure report into the data capsule 130 of the key management server 31 . When the key type is a duplicated key, the key information transmitting unit 125 inserts the encryption key obtained by decrypting the duplicated key with the individual key into the data capsule 130 possessed by the key management server 31 .
 クラークサーバ35は、鍵情報記憶部126および鍵情報送信部127を有する。鍵情報記憶部126は、例えば、クラークサーバ35のRAMまたはHDDを用いて実装される。鍵情報送信部127は、例えば、クラークサーバ35のCPU、通信インタフェースおよびプログラムを用いて実装される。クラークサーバ36,37が、クラークサーバ35と同様のモジュールを有してもよい。 The clerk server 35 has a key information storage unit 126 and a key information transmission unit 127 . The key information storage unit 126 is implemented using the RAM or HDD of the clerk server 35, for example. The key information transmission unit 127 is implemented using, for example, the CPU, communication interface, and program of the clerk server 35 . Clerk servers 36 and 37 may have modules similar to clerk server 35 .
 鍵情報記憶部126は、鍵管理サーバ31から配布された鍵要素情報を記憶する。鍵要素情報は、個別鍵位置情報および個別鍵リストを含む。
 鍵情報送信部127は、鍵管理サーバ31からの要求に応じて、鍵情報記憶部126に記憶された個別鍵位置情報を、鍵管理サーバ31がもつデータカプセル130に挿入する。また、鍵情報送信部127は、鍵管理サーバ31からの要求に応じて、鍵情報記憶部126に記憶された個別鍵リストの中から指定された個別鍵位置の鍵を抽出する。鍵情報送信部127は、抽出した鍵の種別を鍵検証サーバ38に問い合わせる。鍵種別が個別鍵でない場合、鍵情報送信部127は、鍵管理サーバ31がもつデータカプセル130に抽出失敗の報告を挿入する。鍵種別が個別鍵である場合、鍵情報送信部127は、鍵管理サーバ31がもつデータカプセル130に個別鍵を挿入する。
The key information storage unit 126 stores key element information distributed from the key management server 31 . Key element information includes individual key location information and an individual key list.
The key information transmission unit 127 inserts the individual key position information stored in the key information storage unit 126 into the data capsule 130 of the key management server 31 in response to a request from the key management server 31 . Further, the key information transmission unit 127 extracts the key at the designated individual key position from the individual key list stored in the key information storage unit 126 in response to a request from the key management server 31 . The key information transmission unit 127 inquires of the key verification server 38 about the type of the extracted key. If the key type is not an individual key, the key information transmitting unit 127 inserts a report of extraction failure into the data capsule 130 possessed by the key management server 31 . When the key type is an individual key, the key information transmitting unit 127 inserts the individual key into the data capsule 130 of the key management server 31 .
 鍵検証サーバ38は、検証情報記憶部128および鍵検証部129を有する。検証情報記憶部128は、例えば、鍵検証サーバ38のRAMまたはHDDを用いて実装される。鍵検証部129は、例えば、鍵検証サーバ38のCPU、通信インタフェースおよびプログラムを用いて実装される。鍵検証サーバが複数存在してもよい。 The key verification server 38 has a verification information storage section 128 and a key verification section 129 . The verification information storage unit 128 is implemented using the RAM or HDD of the key verification server 38, for example. The key verification unit 129 is implemented using, for example, the CPU, communication interface, and program of the key verification server 38 . A plurality of key verification servers may exist.
 検証情報記憶部128は、個別鍵リストに含まれる鍵が個別鍵、ダミー鍵およびトラップ鍵の何れであるか判定するための判定アルゴリズムを記憶する。また、検証情報記憶部128は、二重化鍵リストに含まれる鍵が二重化鍵、ダミー鍵およびトラップ鍵の何れであるか判定するための判定アルゴリズムを記憶する。 The verification information storage unit 128 stores a determination algorithm for determining whether a key included in the individual key list is an individual key, a dummy key, or a trap key. The verification information storage unit 128 also stores a determination algorithm for determining whether a key included in the duplicated key list is a duplicated key, a dummy key, or a trap key.
 鍵検証部129は、クラークサーバ35,36,37からの問い合わせに応じて、検証情報記憶部128に記憶された判定アルゴリズムに基づいて、受信した鍵の種別を判定する。鍵検証部129は、鍵種別が個別鍵である場合はその旨を回答し、鍵種別がダミー鍵またはトラップ鍵である場合は個別鍵でない旨を回答する。ただし、鍵種別がトラップ鍵である場合、鍵検証部129は、不正アクセスの可能性を示すアラートを出力し、アラートの出力後、回答を一定時間だけ意図的に遅延させる。 The key verification unit 129 determines the type of the received key based on the determination algorithm stored in the verification information storage unit 128 in response to inquiries from the clark servers 35, 36, and 37. If the key type is an individual key, the key verification unit 129 replies to that effect, and if the key type is a dummy key or a trap key, it replies that it is not an individual key. However, if the key type is a trap key, the key verification unit 129 outputs an alert indicating the possibility of unauthorized access, and intentionally delays the reply for a certain period of time after outputting the alert.
 同様に、鍵検証部129は、メンバサーバ32,33,34からの問い合わせに応じて、検証情報記憶部128に記憶された判定アルゴリズムに基づいて、受信した鍵の種別を判定する。鍵検証部129は、鍵種別が二重化鍵である場合はその旨を回答し、鍵種別がダミー鍵またはトラップ鍵である場合は二重化鍵でない旨を回答する。ただし、鍵種別がトラップ鍵である場合、鍵検証部129は、不正アクセスの可能性を示すアラートを出力し、アラートの出力後、回答を一定時間だけ意図的に遅延させる。 Similarly, the key verification unit 129 determines the type of the received key based on the determination algorithm stored in the verification information storage unit 128 in response to inquiries from the member servers 32, 33, and 34. If the key type is a duplicated key, the key verification unit 129 replies to that effect, and if the key type is a dummy key or a trap key, it replies that it is not a duplicated key. However, if the key type is a trap key, the key verification unit 129 outputs an alert indicating the possibility of unauthorized access, and intentionally delays the reply for a certain period of time after outputting the alert.
 なお、二重化鍵については、鍵検証部129は、復号前のビット列に対して鍵種別を判定してもよいし、復号後のビット列に対して鍵種別を判定してもよい。また、鍵種別が二重化鍵である場合、鍵検証部129が二重化鍵を暗号鍵に復号してもよい。 Regarding the duplicated key, the key verification unit 129 may determine the key type with respect to the bit string before decryption, or may determine the key type with respect to the bit string after decryption. Also, when the key type is a duplicated key, the key verification unit 129 may decrypt the duplicated key into an encryption key.
 図13は、暗号鍵復元の手順例を示すフローチャートである。
 (S11)鍵管理サーバ31は、対象メンバサーバから暗号鍵の要求を受け付ける。このとき、鍵管理サーバ31は、対象メンバサーバからデータカプセル130を受信する。
FIG. 13 is a flow chart showing an example of a procedure for restoring an encryption key.
(S11) The key management server 31 receives a request for an encryption key from the target member server. At this time, the key management server 31 receives the data capsule 130 from the target member server.
 (S12)鍵管理サーバ31は、クラークサーバ35,36,37に個別鍵位置情報を要求する。このとき、鍵管理サーバ31は、データカプセル130のDBMSプログラム133を起動して、そのアプリケーションインタフェースをクラークサーバ35,36,37に開示する。これにより、クラークサーバ35,36,37は、DBMSプログラム133に対して、SQL文やプロシジャ呼び出しを送信することができる。 (S12) The key management server 31 requests individual key location information from the clerks servers 35, 36, and 37. At this time, the key management server 31 activates the DBMS program 133 of the data capsule 130 and discloses its application interface to the clerk servers 35 , 36 and 37 . This allows the clerks servers 35 , 36 , 37 to send SQL statements and procedure calls to the DBMS program 133 .
 (S13)クラークサーバ35,36,37はそれぞれ、SQL文を送信して、自身がもつ個別鍵位置情報をデータカプセル130に挿入する。
 (S14)鍵管理サーバ31は、ストアドプロシジャを実行して、データカプセル130の中でメンバサーバ32,33,34の個別鍵位置を算出する。鍵管理サーバ31は、メンバサーバ32,33,34の個別鍵位置をデータカプセル130から受け取る。
(S13) Each of the clerk servers 35, 36 and 37 transmits an SQL statement and inserts its own individual key location information into the data capsule 130. FIG.
(S14) The key management server 31 executes a stored procedure to calculate individual key positions of the member servers 32, 33, and 34 in the data capsule 130. FIG. The key management server 31 receives the individual key positions of the member servers 32 , 33 , 34 from the data capsule 130 .
 (S15)鍵管理サーバ31は、メンバサーバ32,33,34それぞれの個別鍵位置を、クラークサーバ35,36,37に通知する。
 (S16)クラークサーバ35,36,37はそれぞれ、自身がもつ個別鍵リストから、指定された個別鍵位置にある鍵を抽出する。
(S15) The key management server 31 notifies the clerk servers 35, 36, and 37 of the individual key positions of the member servers 32, 33, and 34, respectively.
(S16) Each of the clerk servers 35, 36, and 37 extracts the key at the specified individual key position from the individual key list it owns.
 (S17)クラークサーバ35,36,37はそれぞれ、抽出された鍵の検証を鍵検証サーバ38に依頼する。クラークサーバ35,36,37はそれぞれ、抽出された鍵が個別鍵であるか否かの回答を、鍵検証サーバ38から受信する。 (S17) Each of the clerk servers 35, 36, and 37 requests the key verification server 38 to verify the extracted key. Each of the clerk servers 35, 36, 37 receives a response from the key verification server 38 as to whether or not the extracted key is an individual key.
 (S18)クラークサーバ35,36,37はそれぞれ、SQL文を送信して、個別鍵の抽出結果をデータカプセル130に挿入する。
 (S19)鍵管理サーバ31は、ストアドプロシジャを実行して、データカプセル130に含まれる対象メンバサーバの個別鍵にマークを付与する。
(S18) Each of the clerk servers 35, 36, and 37 transmits the SQL statement and inserts the extraction result of the individual key into the data capsule 130. FIG.
(S19) The key management server 31 executes the stored procedure to mark the individual key of the target member server included in the data capsule 130. FIG.
 図14は、暗号鍵復元の手順例を示すフローチャート(続き)である。
 (S21)鍵管理サーバ31は、二重化鍵位置情報に含まれる対象メンバサーバの数値を、メンバサーバ32,33,34に要求する。このとき、鍵管理サーバ31は、二重化鍵位置情報に含まれる複数の数値のうち、特定の順位の数値を要求してもよいし、対象メンバサーバのメンバ識別子に対応付けられた数値を要求してもよい。また、鍵管理サーバ31は、マークが付された個別鍵に対応付けられた数値を要求してもよいし、マークが付された個別鍵で復号できる数値を要求してもよい。
FIG. 14 is a flowchart (continued) showing a procedure example of encryption key restoration.
(S21) The key management server 31 requests the member servers 32, 33, and 34 for the numerical values of the target member servers included in the duplicated key location information. At this time, the key management server 31 may request a numerical value of a specific order among the multiple numerical values included in the duplicated key location information, or may request a numerical value associated with the member identifier of the target member server. may Further, the key management server 31 may request a numeric value associated with the marked individual key, or may request a numeric value that can be decrypted with the marked individual key.
 (S22)メンバサーバ32,33,34はそれぞれ、SQL文を送信して、二重化鍵位置情報に含まれる対象メンバサーバの数値をデータカプセル130に挿入する。
 (S23)鍵管理サーバ31は、ストアドプロシジャを実行して、データカプセル130の中で対象メンバサーバの二重化鍵位置を算出する。鍵管理サーバ31は、対象メンバサーバの二重化鍵位置をデータカプセル130から受け取る。
(S22) Each of the member servers 32, 33, and 34 transmits an SQL statement and inserts into the data capsule 130 the numeric value of the target member server included in the dual key location information.
(S23) The key management server 31 executes a stored procedure to calculate the dual key position of the target member server in the data capsule 130. FIG. The key management server 31 receives the dual key location of the target member server from the data capsule 130 .
 (S24)鍵管理サーバ31は、対象メンバサーバの二重化鍵位置を、メンバサーバ32,33,34に通知する。
 (S25)メンバサーバ32,33,34はそれぞれ、自身がもつ二重化鍵リストから、指定された二重化鍵位置にある鍵を抽出する。
(S24) The key management server 31 notifies the member servers 32, 33, and 34 of the location of the duplicated key of the target member server.
(S25) Each of the member servers 32, 33, and 34 extracts the key at the specified duplicate key position from the duplicate key list it owns.
 (S26)メンバサーバ32,33,34はそれぞれ、データカプセル130のストアドプロシジャを呼び出して、マークが付された個別鍵を読み出す。
 (S27)メンバサーバ32,33,34はそれぞれ、抽出された鍵の検証を鍵検証サーバ38に依頼する。メンバサーバ32,33,34はそれぞれ、抽出された鍵が二重化鍵であるか否かの回答を、鍵検証サーバ38から受信する。
(S26) Each of the member servers 32, 33, 34 calls the stored procedure of the data capsule 130 to read the marked individual key.
(S27) Each of the member servers 32, 33, and 34 requests the key verification server 38 to verify the extracted key. Each of the member servers 32, 33, and 34 receives a response from the key verification server 38 as to whether or not the extracted key is a duplicated key.
 (S28)メンバサーバ32,33,34はそれぞれ、二重化鍵が抽出された場合、マークが付された個別鍵を用いて二重化鍵を復号する。メンバサーバ32,33,34はそれぞれ、SQL文を送信して、暗号鍵の復号結果をデータカプセル130に挿入する。 (S28) Each of the member servers 32, 33, and 34 decrypts the duplicated key using the marked individual key when the duplicated key is extracted. Each of the member servers 32 , 33 , 34 transmits an SQL statement and inserts the decryption result of the encryption key into the data capsule 130 .
 (S29)鍵管理サーバ31は、対象メンバサーバからの暗号鍵の要求に対する応答として、データカプセル130を返信する。
 以上説明したように、第2の実施の形態の情報処理システムは、暗号化データを復号するための暗号鍵を暗号化し、二重化鍵と二重化鍵を復号するための個別鍵とを分けて保存する。これにより、暗号鍵の漏洩リスクが低下する。また、情報処理システムは、個別鍵を複数のクラークサーバにランダムに分配し、二重化鍵を複数のメンバサーバにランダムに分配する。これにより、対象メンバサーバの個別鍵または二重化鍵をもつサーバ装置を探索することが困難になり、攻撃者が所望の暗号鍵を取得できる可能性が低下する。
(S29) The key management server 31 returns the data capsule 130 as a response to the request for the encryption key from the target member server.
As described above, the information processing system of the second embodiment encrypts the encryption key for decrypting the encrypted data, and separates and stores the duplicated key and the individual key for decrypting the duplicated key. . This reduces the risk of leakage of the encryption key. Also, the information processing system randomly distributes the individual key to a plurality of clerk servers, and randomly distributes the duplicate key to a plurality of member servers. This makes it difficult to search for a server device that has the individual key or duplicate key of the target member server, and reduces the possibility that an attacker can acquire a desired encryption key.
 また、情報処理システムは、個別鍵および二重化鍵を、トラップ鍵と混ぜて保存する。これにより、正しい位置を知らない攻撃者はトラップを回避することが困難になり、攻撃が検知されやすくなる。情報処理システムは、トラップ鍵が選択された場合、不正アクセスの可能性を示すアラートを出力すると共に、サーバ装置の応答を遅延させる。これにより、攻撃者が短時間で多数のサーバ装置にアクセスすることが困難になり、攻撃を検知して対応策を実行するために十分な時間が確保される。また、トラップ鍵が選択された事実は、データカプセルの無効化の判断に使用され、セキュリティが向上する。また、情報処理システムは、個別鍵および二重化鍵の正しい位置を算出するための断片的位置情報を、複数のサーバ装置に分散配置する。これにより、攻撃者がトラップを回避するために侵入すべきサーバ装置が増加し、攻撃に要する時間が増大する。 In addition, the information processing system stores the individual key and duplicate key mixed with the trap key. This makes it difficult for an attacker who does not know the correct location to evade the trap, making the attack easier to detect. When the trap key is selected, the information processing system outputs an alert indicating the possibility of unauthorized access and delays the response of the server device. This makes it difficult for an attacker to access a large number of server devices in a short period of time, ensuring sufficient time to detect an attack and take countermeasures. In addition, the fact that the trap key was selected is used to determine whether to invalidate the data encapsulation, improving security. In addition, the information processing system distributes fragmentary position information for calculating the correct positions of the individual key and the duplicated key to a plurality of server devices. As a result, the number of server devices that an attacker must intrude to avoid the trap increases, and the time required for the attack increases.
 また、情報処理システムは、あるサーバ装置では正しい位置ではないが他のサーバ装置では正しい位置である位置に、トラップ鍵に代えてダミー鍵を配置する。これにより、情報処理システムは、正当な復号処理において複数のサーバ装置に並列にアクセスすることができ、正当な復号処理を効率的に実行できる。 In addition, the information processing system places a dummy key in place of the trap key at a position that is incorrect for one server device but correct for another server device. Thereby, the information processing system can access a plurality of server devices in parallel in valid decryption processing, and can efficiently execute valid decryption processing.
 また、鍵管理サーバ31が各種の鍵要素情報を収集して暗号鍵を復元する処理が、データカプセル130の中に秘匿化されて実行される。データカプセル130は、収集された鍵要素情報または暗号鍵を鍵管理サーバ31が読み出すことを禁止し、収集された鍵要素情報を合成するロジックを鍵管理サーバ31から秘匿化する。これにより、攻撃者が鍵管理サーバ31に侵入した場合や鍵管理サーバ31の管理者が悪意で情報を漏洩しようとしている場合であっても、暗号鍵、鍵要素情報またはロジックが鍵管理サーバ31から漏洩するリスクが低下する。よって、暗号鍵のセキュリティが向上する。 Also, the process of collecting various key element information and restoring the encryption key by the key management server 31 is performed confidentially in the data capsule 130 . The data capsule 130 prohibits the key management server 31 from reading the collected key element information or the encryption key, and conceals the logic for synthesizing the collected key element information from the key management server 31 . As a result, even if an attacker intrudes into the key management server 31 or an administrator of the key management server 31 maliciously attempts to leak information, the encryption key, key element information, or logic is less risk of leakage from Therefore, the security of the encryption key is improved.
 また、データカプセル130は、不正使用の可能性を検出すると、自動的にデータベースの管理情報およびデータを削除する。これにより、鍵管理サーバ31がデータカプセル130を流出させた場合であっても、情報漏洩のリスクが低下する。 Also, when the data capsule 130 detects the possibility of unauthorized use, it automatically deletes the management information and data in the database. This reduces the risk of information leakage even if the key management server 31 leaks the data capsule 130 .
 上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。 The above merely shows the principle of the present invention. Furthermore, many variations and modifications will occur to those skilled in the art, and the present invention is not limited to the precise construction and applications shown and described above, and all corresponding variations and equivalents are and the equivalents thereof.
 10 情報処理装置
 11 記憶部
 12 処理部
 13 データベース
 14 データベース管理プログラム
 15 プロシジャ
 16 鍵情報
 21,22,23 ノード
 24,25,26 情報
10 information processing device 11 storage unit 12 processing unit 13 database 14 database management program 15 procedure 16 key information 21, 22, 23 nodes 24, 25, 26 information

Claims (7)

  1.  暗号化データの復号に用いられる鍵情報の要求を受け付け、
     入力データの保存および保存された前記入力データを変換するプロシジャの実行を許可し、保存された前記入力データの読み出しを制限するデータベース管理プログラムによって保護されるデータベースを用いて、前記鍵情報の復元に用いられる要素情報および前記要素情報の変換方法を示すロジック情報のうちの少なくとも一方の情報をそれぞれもつ複数のノードから、前記データベースに保存された状態で前記情報を取得し、
     前記データベースに保存された前記情報に対して前記プロシジャを実行することで、前記データベースの中に前記鍵情報を復元し、
     前記要求に応答して、前記鍵情報を含む前記データベースを出力する、
     処理をコンピュータが実行する制御方法。
    receive a request for key information used to decrypt encrypted data;
    Restoring the key information using a database protected by a database management program that permits the storage of input data and the execution of a procedure that converts the stored input data, and restricts the reading of the stored input data. Acquiring the information in a state saved in the database from a plurality of nodes each having at least one of element information to be used and logic information indicating a conversion method of the element information;
    restoring the key information in the database by executing the procedure on the information stored in the database;
    outputting the database containing the key information in response to the request;
    A control method in which processing is executed by a computer.
  2.  前記要求の受け付けは、前記データベース管理プログラムおよび前記データベースを含むパッケージデータを取得する処理を含み、
     前記データベースの出力は、前記パッケージデータを出力する処理を含む、
     請求項1記載の制御方法。
    receiving the request includes a process of acquiring package data including the database management program and the database;
    The output of the database includes a process of outputting the package data,
    The control method according to claim 1.
  3.  前記データベース管理プログラムは、前記データベースのアクセス権限の定義および前記プロシジャの定義を示す管理情報の変更を制限する、
     請求項1記載の制御方法。
    The database management program restricts modification of management information indicating definitions of access privileges of the database and definitions of the procedures.
    The control method according to claim 1.
  4.  前記データベース管理プログラムは、前記入力データの保存を前記複数のノードに許可し、前記プロシジャの実行を前記コンピュータに許可し、復元された前記鍵情報の抽出を前記データベースの出力先に許可する、
     請求項1記載の制御方法。
    The database management program permits the plurality of nodes to store the input data, permits the computer to execute the procedure, and permits an output destination of the database to extract the restored key information.
    The control method according to claim 1.
  5.  前記鍵情報の復元は、保存された前記情報から前記鍵情報の位置を示す位置情報を生成し、前記位置情報に基づいて、前記複数のノードのうちの1つのノードから、前記データベースに保存された状態で前記鍵情報を取得する処理を含む、
     請求項1記載の制御方法。
    Restoring the key information generates location information indicating the location of the key information from the saved information, and based on the location information, restores the key information stored in the database from one of the plurality of nodes. including a process of acquiring the key information in a state of
    The control method according to claim 1.
  6.  入力データの保存および保存された前記入力データを変換するプロシジャの実行を許可し、保存された前記入力データの読み出しを制限するデータベース管理プログラムによって保護されるデータベースを記憶する記憶部と、
     暗号化データの復号に用いられる鍵情報の要求を受け付け、前記鍵情報の復元に用いられる要素情報および前記要素情報の変換方法を示すロジック情報のうちの少なくとも一方の情報をそれぞれもつ複数のノードから、前記データベースに保存された状態で前記情報を取得し、前記データベースに保存された前記情報に対して前記プロシジャを実行することで、前記データベースの中に前記鍵情報を復元し、前記要求に応答して、前記鍵情報を含む前記データベースを出力する処理部と、
     を有する情報処理装置。
    a storage unit for storing a database protected by a database management program that permits storage of input data and execution of a procedure that transforms the stored input data, and restricts reading of the stored input data;
    From a plurality of nodes each of which receives a request for key information used to decrypt encrypted data and has at least one of element information used to restore the key information and logic information indicating a conversion method of the element information retrieving the information as it is stored in the database, and executing the procedure on the information stored in the database to restore the key information in the database and respond to the request. and a processing unit that outputs the database containing the key information;
    Information processing device having
  7.  暗号化データの復号に用いられる鍵情報の要求を受け付け、
     入力データの保存および保存された前記入力データを変換するプロシジャの実行を許可し、保存された前記入力データの読み出しを制限するデータベース管理プログラムによって保護されるデータベースを用いて、前記鍵情報の復元に用いられる要素情報および前記要素情報の変換方法を示すロジック情報のうちの少なくとも一方の情報をそれぞれもつ複数のノードから、前記データベースに保存された状態で前記情報を取得し、
     前記データベースに保存された前記情報に対して前記プロシジャを実行することで、前記データベースの中に前記鍵情報を復元し、
     前記要求に応答して、前記鍵情報を含む前記データベースを出力する、
     処理をコンピュータに実行させる制御プログラム。
    receive a request for key information used to decrypt encrypted data;
    Restoring the key information using a database protected by a database management program that permits the storage of input data, the execution of a procedure that converts the stored input data, and restricts the reading of the stored input data. Acquiring the information in a state saved in the database from a plurality of nodes each having at least one of element information to be used and logic information indicating a conversion method of the element information;
    restoring the key information in the database by executing the procedure on the information stored in the database;
    outputting the database containing the key information in response to the request;
    A control program that causes a computer to execute a process.
PCT/JP2021/047868 2021-12-23 2021-12-23 Control method, information processing device, and control program WO2023119554A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/047868 WO2023119554A1 (en) 2021-12-23 2021-12-23 Control method, information processing device, and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/047868 WO2023119554A1 (en) 2021-12-23 2021-12-23 Control method, information processing device, and control program

Publications (1)

Publication Number Publication Date
WO2023119554A1 true WO2023119554A1 (en) 2023-06-29

Family

ID=86901759

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/047868 WO2023119554A1 (en) 2021-12-23 2021-12-23 Control method, information processing device, and control program

Country Status (1)

Country Link
WO (1) WO2023119554A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002111659A (en) * 2000-10-04 2002-04-12 Nec Software Hokuriku Ltd File encryption system, file encryption program and storage medium having recorded data
JP2009211407A (en) * 2008-03-04 2009-09-17 Nippon Telegr & Teleph Corp <Ntt> Authentication information generation system, authentication information generation method, client device and program
JP2021136645A (en) * 2020-02-28 2021-09-13 富士通株式会社 Control method, control program and information processing device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002111659A (en) * 2000-10-04 2002-04-12 Nec Software Hokuriku Ltd File encryption system, file encryption program and storage medium having recorded data
JP2009211407A (en) * 2008-03-04 2009-09-17 Nippon Telegr & Teleph Corp <Ntt> Authentication information generation system, authentication information generation method, client device and program
JP2021136645A (en) * 2020-02-28 2021-09-13 富士通株式会社 Control method, control program and information processing device

Similar Documents

Publication Publication Date Title
US20210099287A1 (en) Cryptographic key generation for logically sharded data stores
CA3066678C (en) Processing data queries in a logically sharded data store
JP4398145B2 (en) Method and apparatus for automatic database encryption
US20190007204A1 (en) Theft and tamper resistant data protection
KR101371608B1 (en) Database Management System and Encrypting Method thereof
US8769675B2 (en) Clock roll forward detection
AU2002213436A1 (en) Method and apparatus for automatic database encryption
CN103731395A (en) Processing method and system for files
GB2567146A (en) Method and system for secure storage of digital data
JP2008250369A (en) Management method of secrete data file, management system and proxy server therefor
CN104239820A (en) Secure storage device
CN105740725A (en) File protection method and system
AU2017440029B2 (en) Cryptographic key generation for logically sharded data stores
KR20100106110A (en) Secure boot data total management system, methods for generating and verifying a verity of matadata for managing secure boot data, computer-readable recording medium storing program for executing any of such methods
JP2008009483A (en) Information processing system, information processing method, and program
JP2006228202A (en) Management method and management system of secret data
WO2023119554A1 (en) Control method, information processing device, and control program
KR101544750B1 (en) Apparatus and method for secure cloud system using dummy authentification key
WO2023112272A1 (en) Management method, information processing device, and management program
KR100998596B1 (en) Administrative Data Backup System for Distributed Data Sources
US20130262881A1 (en) Binary Data Store
WO2023132046A1 (en) Determination method, information processing device, and determination program
JP4899196B2 (en) Data management system, terminal computer, management computer, data management method and program thereof
WO2023017572A1 (en) Information processing program, information processing method, and information processing device
GB2434887A (en) Access control by encrypting stored data with a key based on a &#34;fingerprint&#34; of the device storing the data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21968989

Country of ref document: EP

Kind code of ref document: A1