WO2016181904A1 - データベースシステム、データベース処理方法 - Google Patents

データベースシステム、データベース処理方法 Download PDF

Info

Publication number
WO2016181904A1
WO2016181904A1 PCT/JP2016/063662 JP2016063662W WO2016181904A1 WO 2016181904 A1 WO2016181904 A1 WO 2016181904A1 JP 2016063662 W JP2016063662 W JP 2016063662W WO 2016181904 A1 WO2016181904 A1 WO 2016181904A1
Authority
WO
WIPO (PCT)
Prior art keywords
database
information
pieces
terminal device
system management
Prior art date
Application number
PCT/JP2016/063662
Other languages
English (en)
French (fr)
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 CN201680025992.0A priority Critical patent/CN107533813B/zh
Priority to US15/570,445 priority patent/US10579813B2/en
Priority to JP2017517915A priority patent/JP6542883B2/ja
Priority to EP16792629.4A priority patent/EP3296980B1/en
Publication of WO2016181904A1 publication Critical patent/WO2016181904A1/ja

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
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Definitions

  • the present invention relates to a cryptographic application technique, and more particularly to a secret calculation technique for performing information processing without revealing data stored in a database.
  • An object of the present invention is to provide a database system and a database processing method without risk of leakage of an encryption key.
  • a database system includes a determination unit that determines whether or not information to be registered in a database is to be concealed, and N is a predetermined positive integer when it is determined to be concealed by the determination unit
  • a terminal device that generates N pieces of fragment information by secretly sharing information and transmits the information to the system management device; and a system management device that transmits N pieces of fragment information received from the terminal device to N database devices, respectively.
  • N database devices each storing N pieces of fragment information received from the system management device.
  • the block diagram for demonstrating the example of a database system The flowchart for demonstrating the example of a data registration process.
  • the database system includes, for example, a terminal device 1, a system management device 2, and N database devices 3.
  • the terminal device 1 is an information terminal such as a mobile phone, a smartphone, or a PC.
  • the terminal device 1 includes, for example, a query interpretation unit 11, a concealment unit 12, a determination unit 13, and a restoration unit 14.
  • a query interpretation unit 11 for example, a query interpretation unit 11
  • a concealment unit 12 for example, a determination unit 13
  • a restoration unit 14 for example, a restoration unit 14.
  • FIG. 1 only one terminal device 1 is depicted, but a plurality of different terminal devices 1 may be connected to the system management device 2 in a state where they can communicate with each other.
  • the system management device 2 is a server for managing the database system as will be described later.
  • the system management device 2 includes, for example, a database control unit 21.
  • the database device 3 is a device in which secret-distributed fragments are stored as will be described later, and information is restored by secret calculation as necessary.
  • the database device 3 includes a recording unit 31 and a secret calculation processing unit 32, for example.
  • Secret sharing is a technique for concealing input data by converting it into multiple (N) pieces and isolating them.
  • N is a predetermined positive integer.
  • the original data can be known only by collecting K pieces (K is a positive integer equal to or less than N), and since no encryption key is used, there is no risk of information leakage due to compromise (for example, see Reference 1). .) [Reference 1] A. Shamir, “How to Share a Secret,” Communications of the ACM 22, pages 612-613, 1979.
  • Secret calculation is a technique that uses C fragments (C is a positive integer not less than K and not more than N) concealed by secret sharing to perform processing without revealing the original data. Theoretically, it is known that an arbitrary function can be calculated.
  • Reference Document 2 below shows a multiplication method as a basic operation. [Reference 2] R. Gennaro, MO Rabin, and T. Rabin, “Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography,” 17th annual ACM symposium on Principles of distributed computing, ACM, 1998.
  • Database operations are input from the terminal device 1 and executed in each database device 3 via the system management device 2.
  • the data processing of the database is mainly composed of six processes like a general database.
  • the six processes are: 1. table definition, 2. Data registration, 3. Data search, 4. Data update, 5. Data deletion, 6. It is a table deletion.
  • each process will be described.
  • the table definition is an operation for defining a table for storing data.
  • a query for example, an SQL sentence
  • the terminal device 1 When a query (for example, an SQL sentence) input to the terminal device 1 is determined to be “table definition” processing by the query interpretation unit 11, information about the table to be created, such as a table name and an attribute of each column of the table, is displayed. It transmits to the system management device 2.
  • the system management device 2 transmits information related to tables created in the N database devices by the database control unit 21.
  • the database device 3 records information about the table to be created in the recording unit 31 and returns a completion notification to the system management device 2.
  • the system management device 2 confirms that the completion notification has been normally received from the N database devices, and notifies the terminal device 1 that the “table definition” processing has been completed normally.
  • the terminal device 1 notifies the user of a response corresponding to the input query by the query interpretation unit 11.
  • Data registration is an operation for storing data.
  • the system management device 1 acquires table information that is information related to the target table from at least one database device 3, and returns the information to the terminal device 1.
  • the determination unit 13 of the terminal device 1 determines a concealment column from the returned information. That is, the determination unit 13 determines whether or not information to be registered in the database is kept secret (step A1, FIG. 2).
  • Information determined to be concealed in other words, information stored in the concealment column, is secretly distributed in the concealment unit 12 of the terminal device 1.
  • the terminal device 1 transmits to the system management device 2 the information converted into fragments by secret sharing and plaintext information stored in a non-confidential column that is information that has not been determined to be concealed.
  • the concealment unit 12 of the terminal device 1 when the determination unit 13 determines that the information is to be concealed, the concealment unit 12 of the terminal device 1 generates N pieces of fragment information by secretly sharing the information to be concealed, and the system management device (Step A2, FIG. 2).
  • the N pieces of fragment information are associated with N pieces of database devices 3, respectively.
  • the system management device 2 transmits the N pieces of fragment information received from the terminal device 1 to the N pieces of database devices 3 (step A3, FIG. 2). Specifically, the system management apparatus 2 transmits information such as a table name necessary for “data registration” processing and plaintext / fragment data to be registered to the N database apparatuses 3 by the database control unit 21.
  • the database device 3 stores the N pieces of fragment information received from the system management device 2 (step A4, FIG. 2). That is, each database device 3 records fragment information to be registered in the recording unit 31, and returns a completion notification to the system management device.
  • the system management device 2 confirms that the completion notification has been normally received from the N database devices 3, and notifies the terminal device 1 that the “data registration” processing has been completed normally.
  • the terminal device 1 notifies the user of a response corresponding to the input query by the query interpretation unit 11.
  • Data retrieval is an operation of referring to target data from stored data.
  • a query for example, an SQL sentence
  • a table name for searching for data is transmitted to the system management device 2.
  • the system management device 2 acquires information about a table to be searched for data from at least one database device 3, and returns the information to the terminal device 1.
  • the determination unit 13 of the terminal device 1 determines whether or not all or part of the search conditions for referring to the database are kept secret (step B1). That is, the determination unit 13 determines whether or not the “data search” process to be executed from the returned information includes a secret calculation process. For example, when searching for ids of people over a certain age, the age is kept secret.
  • the determination unit 13 determines whether or not information to be referred to from the database is kept secret (step B2). For example, when the search target column includes a fragment, the determination unit 13 determines that the information to be referred to from the database is kept secret.
  • the concealment unit 12 of the terminal device 1 determines whether or not all or part of the search condition is to be concealed, the concealment unit 12 of the terminal device 1 generates fragment search information by secretly sharing all or part of the search condition. It transmits to the system management apparatus 2 (step B3). At that time, the determination unit 13 determines whether or not all or part of the search conditions for referring to the database are concealed, and whether or not the information to be referred to from the database is concealed. May be transmitted to the system management apparatus 2. C pieces of fragment search information are generated, where C is a positive integer between K and N. Each piece of fragment search information is associated with one of the database devices 3.
  • the C database devices 3 that respectively received the C fragment search information find C fragment information corresponding to the C fragment search information by a secret calculation (step B5).
  • the system management device 2 transmits K pieces of fragment information among the found C pieces of fragment information to the terminal device 1 (step B6).
  • the system management device 2 receives C pieces of fragment information from the C pieces of database devices 3, and transmits K pieces of pieces of fragment information among the received pieces of C pieces of information to the terminal device 1. Further, the system management device 2 selects K database devices among the C database devices 3 in which the found C pieces of fragment information are respectively stored, and each of the selected K database devices 3 is selected. The K pieces of fragment information may be received, and the received K pieces of fragment information may be transmitted to the terminal device 1.
  • the restoration unit 14 of the terminal device 1 restores the original information based on the received K pieces of fragment information (step B7). Thereafter, the query interpretation unit 11 of the terminal device 1 notifies the user of a response corresponding to the input query.
  • the system management device 2 reads K pieces of fragment information stored in the K pieces of database devices 3 among the N pieces of database devices 3, and transmits them to the terminal device 1 (step B6). For example, the system management device 2 receives N pieces of fragment information from each of the N pieces of database devices 3, and transmits K pieces of piece of piece information among the received N pieces of piece of information to the terminal device 1. Further, the system management apparatus 2 selects K database apparatuses 3 among the N database apparatuses 3, receives K pieces of fragment information from the selected K database apparatuses 3, and receives the received K pieces. The pieces of fragment information may be transmitted to the terminal device 1.
  • the restoration unit 14 of the terminal device 1 restores the original information based on the received K pieces of fragment information (step B7). Thereafter, the query interpretation unit 11 of the terminal device 1 notifies the user of a response corresponding to the input query.
  • step B3 the processing from step B3 to step B5 in FIG. 3 is not performed.
  • the system management device 2 transmits a search command to at least one database device 3.
  • the database device 3 Upon receiving the search command, the database device 3 acquires search target information from the recording unit 31 and returns the search result to the system management device 2.
  • the system management device 2 returns the result from the database device 3 to the terminal device 1.
  • the query interpretation unit 11 of the terminal device 1 notifies the user of a response corresponding to the input query.
  • step B3 the processing from step B3 to step B7 in FIG. 3 is not performed.
  • Data update is an operation for updating stored target data.
  • the system management device 2 acquires information about the target table from at least one database device 3 and returns the information to the terminal device 1.
  • the terminal device 1 determines whether the secret calculation process is included in the concealment sequence and the “data update” process to be executed from the returned information.
  • the information stored in the concealment column is secretly distributed by the concealment unit 12 of the terminal device 1.
  • Information converted into fragments by secret sharing, plaintext information stored in a non-confidential column, and presence / absence of secret calculation processing are transmitted to the system management device 2. For example, when the private information that should be kept secret, such as an address and a telephone number, is updated while keeping it secret, secret calculation is performed in the “data update” process.
  • the system management device 2 transmits information such as the table name necessary for the “data update” process and the plaintext / secret data to be updated to the N database devices 3 by the database control unit 21.
  • the database device 3 performs the secret calculation processing by the secret calculation processing unit 32 only when the secret calculation processing is included, records the information to be updated in the recording unit 31, and returns a completion notification to the system management device 2.
  • the system management device 2 confirms that the completion notification has been normally received from the N database devices, and notifies the terminal device 1 that the “table update” processing has been completed normally.
  • the terminal device 1 notifies the user of a response corresponding to the input query by the query interpretation unit 11.
  • Data deletion is an operation of deleting stored target data.
  • a query for example, an SQL sentence
  • a table name for deleting data is transmitted to the system management device 2.
  • the system management device 2 acquires information about the target table from at least one database device 3 and returns the information to the terminal device 1.
  • the determination unit 13 of the terminal apparatus 1 determines whether the “data deletion” process includes a secret calculation process from the returned information, and the database control unit 21 of the system management apparatus 2 adds “data deletion” to the N database apparatuses 3. "Send information such as table name and deletion condition necessary for processing.” For example, in the case where information such as a concealed id is deleted in a concealed state, a secret calculation process is performed in the “data deletion” process.
  • the database device 3 performs the secret calculation processing by the secret calculation processing unit 32 only when the secret calculation processing is included, deletes the information to be deleted from the recording unit 31, and returns a completion notification to the system management device 2.
  • the system management device 2 confirms that the completion notification has been normally received from the N database devices, and notifies the terminal device 1 that the “data deletion” processing has been completed normally.
  • the terminal device 1 notifies the user of a response corresponding to the input query by the query interpretation unit 11.
  • the table deletion is an operation for deleting a defined target table.
  • the query for example, an SQL sentence
  • the query interpretation unit 11 determines “table deletion” processing by the query interpretation unit 11, and the table name to be deleted is transmitted to the system management device 2.
  • the system management device 2 transmits information such as a table name necessary for the “table deletion” process to the N database devices 3 by the database control unit 21.
  • the database device 3 deletes information to be deleted from the recording unit, and returns a completion notification to the system management device 2.
  • the system management device 2 confirms that the completion notification has been normally received from the N database devices 3, and notifies the terminal device 1 that the “table deletion” processing has been completed normally.
  • the terminal device 1 notifies the user of a response corresponding to the input query by the query interpretation unit 11.
  • the query interpretation unit 11 of the terminal device 1 may correspond to a general database operation instruction (for example, an SQL sentence).
  • a general database operation instruction for example, an SQL sentence.
  • an operation instruction for the database is transmitted from the application server to the database server, and therefore the database operation instruction from the application server is transmitted to the terminal device 1.
  • the database operation instruction from the application server is transmitted to the terminal device 1.
  • an existing database device may be used as the database device 3. Thereby, cost can be reduced.
  • the database functions are divided into operations that include secret calculations and operations that do not include secret calculations.
  • a secret search is included in a search for a concealed age, but a secret calculation is not included in a search for which conditions are not specified.
  • An operation that does not include a secret calculation is equivalent to a general database operation, and can be processed by using the corresponding function of an existing database as it is.
  • the secret calculation processing unit 32 may perform the process.
  • the secret calculation processing unit 32 performs processing by being called by an external function calling unit provided in an existing database.
  • the determination unit 13 is provided in the terminal device 1, but the determination unit 13 may be provided outside the terminal device 1.
  • the determination unit 13 may be provided in the system management device 2.
  • each process in each device or each part constituting the database system is realized by a computer
  • the processing content of the function that each device or each part should have is described by a program. Then, by executing this program on a computer, each process is realized on the computer.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • a computer-readable recording medium for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
  • each device or each unit may be configured by executing a predetermined program on a computer, or at least a part of these processing contents may be realized by hardware. Good.

Landscapes

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

Abstract

 データベースシステムは、データベースに登録しようとする情報を秘匿にするかどうかを判定する判定部13と、判定部13において秘匿にすると判定された場合には、Nを所定の正の整数として、情報を秘密分散することによりN個の断片情報を生成しシステム管理装置2に送信する端末装置1と、端末装置1から受信したN個の断片情報をそれぞれN個のデータベース装置3に送信するシステム管理装置2と、システム管理装置2から受信したN個の断片情報をそれぞれ格納するN個のデータベース装置3と、を備えている。

Description

データベースシステム、データベース処理方法
 この発明は、暗号応用技術に関し、特にデータベースに格納するデータを明かすことなく情報処理を行う秘密計算の技術に関する。
 データベースに格納されるデータを秘匿する手法として、主に(1)透過的暗号化による暗号化、(2)検索可能暗号などによる暗号化、(3)完全準同型暗号による暗号化の3種類の手法が知られている。
 (1)透過的暗号化は、データを暗号化してからデータベースに格納することでデータベースに格納されたデータを秘匿するものである(例えば、非特許文献1参照。)。
 (2)検索可能暗号などによる暗号化は、暗号文の状態で特定の処理を行うことで、データを秘匿した状態での検索や、暗号方式に応じた操作を可能にするものである(例えば、非特許文献1参照。)。
 (3)完全準同型暗号化による暗号化は、暗号文の状態で任意の処理を行うことにより、データを秘匿した状態での操作が可能にするものである(例えば、非特許文献1参照。)。
Oracle Advanced Security, [online],[平成 27 年 5 月 1日検索], インターネット〈URL:http://www.oracle.com/jp/products/database/options/advanced-security/overview/index.html〉 D.X. Song, D. Wagner, and A. Perring, "Practical Techniques for Searches on Encrypted Data," in IEEE Symposium on Security and Privacy, pages 44-55, 2000. C. Gentry, "Fully Homomorphic Encryption Using Ideal Lattices," in STOC ‘09, pages 169-178, 2009.
 上記の(1)から(3)の手法は、いずれも暗号鍵を用いた方式であるため、暗号鍵が漏洩するリスクが存在する。
 この発明の目的は、暗号鍵が漏洩するリスクがないデータベースシステム、データベース処理方法を提供することである。
 この発明の一態様によるデータベースシステムは、データベースに登録しようとする情報を秘匿にするかどうかを判定する判定部と、判定部において秘匿にすると判定された場合には、Nを所定の正の整数として、情報を秘密分散することによりN個の断片情報を生成しシステム管理装置に送信する端末装置と、端末装置から受信したN個の断片情報をそれぞれN個のデータベース装置に送信するシステム管理装置と、システム管理装置から受信したN個の断片情報をそれぞれ格納するN個のデータベース装置と、を備えている。
 暗号鍵を用いないため、暗号鍵が漏洩するリスクがなくなる。
データベースシステムの例を説明するためのブロック図。 データ登録の処理の例を説明するための流れ図。 データ検索の処理の例を説明するための流れ図。
 データベースシステムは、図1に示すように、端末装置1と、システム管理装置2と、N個のデータベース装置3を例えば備えている。
 端末装置1は、携帯電話、スマートフォン、PC等の情報端末である。端末装置1は、クエリ解釈部11、秘匿部12、判定部13及び復元部14を例えば備えている。図1の例では、端末装置1は1個だけ描かれているが、異なる複数の端末装置1がシステム管理装置2に互いに通信可能な状態で接続されていてもよい。
 システム管理装置2は、後述するようにデータベースシステムを管理するためのサーバである。システム管理装置2は、データベース制御部21を例えば備えている。
 データベース装置3は、後述するように秘密分散された断片が格納され、必要に応じて秘密計算により情報を復元する装置である。データベース装置3は、記録部31及び秘密計算処理部32を例えば備えている。
 秘密分散とは、入力されたデータを複数(N個)の断片に変換し、隔離することによって秘匿する技術である。Nは、所定の正の整数である。K個(KはN以下の正の整数。)の断片を集めることによってのみ元のデータを知ることができ、暗号鍵を用いないため危殆化による情報漏洩リスクがなくなる(例えば、参考文献1参照。)。
 〔参考文献1〕A. Shamir, “How to Share a Secret,” Communications of the ACM 22, pages 612-613, 1979.
 秘密計算とは、秘密分散によって秘匿化されたC個(CはK以上N以下の正の整数。)の断片を用いて、元のデータを明かさずに処理を行う技術である。理論上は任意の関数の計算が実行できることが知られている。下記の参考文献2では基本演算となる乗算の方法が示されている。
 〔参考文献2〕R. Gennaro, M.O. Rabin, and T. Rabin, “Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography,” 17th annual ACM symposium on Principles of distributed computing, ACM, 1998.
 データベースの操作は、端末装置1から入力され、システム管理装置2を介して各データベース装置3で実行される。データベースのデータ処理は、一般のデータベースと同様に主に6個の処理で構成される。6個の処理は、1. テーブル定義、2.データ登録、3.データ検索、4.データ更新、5.データ削除、6.テーブル削除である。以降、各処理について説明する。
 [テーブル定義]
 テーブル定義は、データを格納する表を定義する操作である。
 端末装置1に入力されたクエリ(例えばSQL文)が、クエリ解釈部11によって「テーブル定義」処理と判定された場合には、テーブル名、テーブルの各列の属性などの作成するテーブルに関する情報をシステム管理装置2に送信する。
 システム管理装置2は、データベース制御部21によりN個のデータベース装置に作成するテーブルに関する情報を送信する。
 データベース装置3は、作成するテーブルに関する情報を記録部31に記録し、完了通知をシステム管理装置2に返却する。
 システム管理装置2は、N個のデータベース装置から正常に完了通知を受信したことを確認し、端末装置1に「テーブル定義」処理が正常に完了したことを知らせる。
 端末装置1は、クエリ解釈部11により、入力されたクエリに対応した応答をユーザに通知する。
 [データ登録]
 データ登録は、データを格納する操作である。
 端末装置1に入力されたクエリ(例えばSQL文)が、クエリ解釈部11によって「データ登録」処理と判定された場合には、データを登録するテーブル名をシステム管理装置2に送信する。
 システム管理装置1は、少なくとも1個のデータベース装置3から対象のテーブルに関する情報であるテーブル情報を取得し、その情報を端末装置1に返却する。
 端末装置1の判定部13は、返却された情報から秘匿する列を判定する。すなわち、判定部13は、データベースに登録しようとする情報を秘匿にするかどうかを判定する(ステップA1,図2)。
 秘匿にすると判定された情報、言い換えれば秘匿する列に格納する情報は、端末装置1の秘匿部12において秘密分散される。端末装置1は、秘密分散により断片に変換された情報と、秘匿にすると判定されなかった情報である、秘匿しない列に格納する平文の情報とを併せてシステム管理装置2に送信する。
 このようにして、判定部13において秘匿にすると判定された場合には、端末装置1の秘匿部12は、その秘匿にする情報を秘密分散することによりN個の断片情報を生成しシステム管理装置に送信する(ステップA2,図2)。N個の断片情報は、それぞれN個のデータベース装置3に対応付けされている。
 システム管理装置2は、端末装置1から受信したN個の断片情報をそれぞれN個のデータベース装置3に送信する(ステップA3,図2)。具体的には、システム管理装置2は、データベース制御部21によりN個のデータベース装置3に「データ登録」処理に必要なテーブル名、登録する平文/断片データなどの情報を送信する。
 データベース装置3は、システム管理装置2から受信したN個の断片情報をそれぞれ格納する(ステップA4,図2)。すなわち、各データベース装置3は、登録する断片情報を記録部31に記録し、完了通知をシステム管理装置に返却する。
 システム管理装置2は、N個のデータベース装置3から正常に完了通知を受信したことを確認し、端末装置1に「データ登録」処理が正常に完了したことを知らせる。
 端末装置1は、クエリ解釈部11により、入力されたクエリに対応した応答をユーザに通知する。
 [データ検索]
 データ検索は、格納されたデータから対象のデータを参照する操作である。
 端末装置1に入力されたクエリ(例えばSQL文)が、クエリ解釈部11によって「データ検索」処理と判定された場合には、データを検索するテーブル名をシステム管理装置2に送信する。
 システム管理装置2は、少なくとも1個のデータベース装置3からデータ検索の対象となるテーブルに関する情報を取得し、その情報を端末装置1に返却する。
 端末装置1の判定部13は、データベースを参照するための検索条件の全部又は一部を秘匿にするかどうかを判定する(ステップB1)。すなわち、判定部13は、返却された情報から実行する「データ検索」処理に秘密計算処理が含まれるかどうかを判定する。例えばある年齢以上の人のidを検索する場合には、その年齢が秘匿にされる。
 また、判定部13は、データベースから参照しようとする情報が秘匿にされているかどうかを判定する(ステップB2)。例えば、判定部13は、検索対象の列に断片が含まれている場合には、データベースから参照しようとする情報が秘匿にされていると判定する。
 判定部13において検索条件の全部又は一部を秘匿にすると判定された場合には、端末装置1の秘匿部12は、検索条件の全部又は一部を秘密分散することにより断片検索情報を生成しシステム管理装置2に送信する(ステップB3)。その際、判定部13は、データベースを参照するための検索条件の全部又は一部を秘匿にするかどうかの判定結果と、データベースから参照しようとする情報が秘匿にされているかどうかの判定結果とについての情報をシステム管理装置2に送信してもよい。断片検索情報は、CをK以上N以下の正の整数として、C個生成される。各断片検索情報は、データベース装置3の何れかに対応付けされている。
 (1)データベースを参照するための検索条件の全部又は一部を秘匿にすると判定されている場合、すなわち検索条件の全部又は一部を秘密分散することにより断片検索情報が生成されている場合には、システム管理装置2は、C個の断片検索情報のそれぞれを、対応するデータベース装置3に送信する(ステップB4)。
 この場合、C個の断片検索情報をそれぞれ受信したC個のデータベース装置3は、上記C個の断片検索情報に対応するC個の断片情報を秘密計算により見つける(ステップB5)。
 システム管理装置2は、見つかったC個の断片情報の中のK個の断片情報を端末装置1に送信する(ステップB6)。例えば、システム管理装置2は、C個の断片情報をそれぞれC個のデータベース装置3から受信して、受信したC個の断片情報の中のK個の断片情報を端末装置1に送信する。また、システム管理装置2は、見つかったC個の断片情報がそれぞれ格納されているC個のデータベース装置3の中のK個のデータベース装置を選択し、選択されたK個のデータベース装置3からそれぞれK個の断片情報を受信し、受信したK個の断片情報を端末装置1に送信してもよい。
 端末装置1の復元部14は、受信したK個の断片情報に基づいて元の情報を復元する(ステップB7)。その後、端末装置1のクエリ解釈部11により、入力されたクエリに対応した応答がユーザに通知される。
 (2)データベースを参照するための検索条件の全部又は一部を秘匿にすると判定されていない場合、かつ、データベースから参照しようとする情報が秘匿にされていると判定されている場合には、システム管理装置2は、N個のデータベース装置3の中のK個のデータベース装置3にそれぞれ格納されたK個の断片情報を読み込み端末装置1に送信する(ステップB6)。例えば、システム管理装置2は、N個の断片情報をそれぞれN個のデータベース装置3から受信して、受信したN個の断片情報の中のK個の断片情報を端末装置1に送信する。また、システム管理装置2は、N個のデータベース装置3の中のK個のデータベース装置3を選択し、選択されたK個のデータベース装置3からそれぞれK個の断片情報を受信し、受信したK個の断片情報を端末装置1に送信してもよい。
 端末装置1の復元部14は、受信したK個の断片情報に基づいて元の情報を復元する(ステップB7)。その後、端末装置1のクエリ解釈部11により、入力されたクエリに対応した応答がユーザに通知される。
 この(2)の場合には、図3のステップB3からステップB5の処理は行われない。
 (3)データベースを参照するための検索条件の全部又は一部を秘匿にすると判定されていない場合、かつ、データベースから参照しようとする情報が秘匿にされていると判定されていない場合には、システム管理装置2は、少なくとも1個のデータベース装置3に検索命令を送信する。
 検索命令を受けたデータベース装置3は、記録部31から検索対象情報を取得し、検索結果をシステム管理装置2に返却する。
 システム管理装置2は、データベース装置3からの結果を端末装置1に返却する。
 その後、端末装置1のクエリ解釈部11により、入力されたクエリに対応した応答がユーザに通知される。
 この(3)の場合には、図3のステップB3からステップB7の処理は行われない。
 [データ更新]
 データ更新は、格納された対象のデータを更新する操作である。
 端末装置1に入力されたクエリ(例えばSQL文)が、クエリ解釈部11によって「データ更新」処理と判定された場合には、データを更新するテーブル名をシステム管理装置2に送信する。
 システム管理装置2は、少なくとも1個のデータベース装置3から対象のテーブルに関する情報を取得し、その情報を端末装置1に返却する。
 端末装置1は、返却された情報から秘匿する列および実行する「データ更新」処理に秘密計算処理が含まれるかを判定する。秘匿する列に格納する情報は、端末装置1の秘匿部12により秘密分散される。秘密分散により断片に変換された情報と、秘匿しない列に格納する平文の情報および秘密計算処理の有無はシステム管理装置2に送信される。例えば住所、電話番号等の秘匿にすべきプライベートな情報を秘匿にしたまま更新する場合に、「データ更新」処理に秘密計算が行われる。
 システム管理装置2は、データベース制御部21によりN個のデータベース装置3に「データ更新」処理に必要なテーブル名、更新する平文/秘匿データなどの情報を送信する。
 データベース装置3は、秘密計算処理が含まれる場合のみ秘密計算処理部32による秘密計算処理を実施し、更新する情報を記録部31に記録し、完了通知をシステム管理装置2に返却する。
 システム管理装置2は、N個のデータベース装置から正常に完了通知を受信したことを確認し、端末装置1に「テーブル更新」処理が正常に完了したことを知らせる。
 端末装置1は、クエリ解釈部11により、入力されたクエリに対応した応答をユーザに通知する。
 [データ削除]
 データ削除は、格納された対象のデータを削除する操作である。
 端末装置1に入力されたクエリ(例えばSQL文)が、クエリ解釈部11によって「データ削除」処理と判定された場合には、データを削除するテーブル名をシステム管理装置2に送信する。
 システム管理装置2は、少なくとも1個のデータベース装置3から対象のテーブルに関する情報を取得し、その情報を端末装置1に返却する。
 端末装置1の判定部13は、返却された情報から「データ削除」処理に秘密計算処理が含まれるか判定し、システム管理装置2のデータベース制御部21によりN個のデータベース装置3に「データ削除」処理に必要なテーブル名、削除条件などの情報を送信する。例えば秘匿にされたid等の情報を秘匿にされた状態のまま削除する場合に、「データ削除」処理に秘密計算処理が行われる。
 データベース装置3は、秘密計算処理が含まれる場合のみ秘密計算処理部32による秘密計算処理を実施し、削除する情報を記録部31から削除し、完了通知をシステム管理装置2に返却する。
 システム管理装置2は、N個のデータベース装置から正常に完了通知を受信したことを確認し端末装置1に「データ削除」処理が正常に完了したことを知らせる。
 端末装置1は、クエリ解釈部11により、入力されたクエリに対応した応答をユーザに通知する。
 [テーブル削除]
 テーブル削除は、定義された対象の表を削除する操作である。
 端末装置1に入力されたクエリ(例えばSQL文)は、クエリ解釈部11によって「テーブル削除」処理と判定され、削除するテーブル名をシステム管理装置2に送信する。
 システム管理装置2は、データベース制御部21によりN個のデータベース装置3に「テーブル削除」処理に必要なテーブル名などの情報を送信する。
 データベース装置3は、削除する情報を記録部から削除し、完了通知をシステム管理装置2に返却する。
 システム管理装置2は、N個のデータベース装置3から正常に完了通知を受信したことを確認し、端末装置1に「テーブル削除」処理が正常に完了したことを知らせる。
 端末装置1は、クエリ解釈部11により、入力されたクエリに対応した応答をユーザに通知する。
 [変形例等]
 端末装置1のクエリ解釈部11は、一般的なデータベース操作命令(例えば、SQL文)に対応していてもよい。これにより、データベースを利用する外部プログラムを改造せずにセキュアなデータベースを利用することができる。
 例えば、外部プログラムが一般的なWeb三層モデルのシステム上に存在する場合、データベースに対する操作命令はアプリケーション・サーバからデータベース・サーバに送信されるため、アプリケーション・サーバからのデータベース操作命令を端末装置1に送信することで、アプリケーション・サーバ上の外部プログラムを改造することなくセキュアなデータベースを利用できる。
 また、データベース装置3として、既存のデータベース装置を用いてもよい。これにより、コストの削減を行うことができる。
 データベースの機能は、秘密計算を含む操作と秘密計算を含まない操作に分けられる。例えば、秘匿した年齢に対する検索には秘密計算が含まれるが、条件の指定されていない検索には秘密計算が含まれない。秘密計算が含まれない操作は、一般のデータベースの操作と同等であるため、既存のデータベースの該当機能をそのまま利用することで処理可能である。秘密計算が含まれる場合にのみ、秘密計算処理部32が処理を行えばよい。例えば、既存のデータベースに備えられた外部機能呼出部により呼び出されれることにより、秘密計算処理部32が処理を行う。
 これにより、秘密計算が含まれない操作についてのプログラムが、既存データベースで代用されるため、不要となり、発明全体のプログラムの量を削減することができる。
 上記の例では、判定部13は、端末装置1に備えられているが、判定部13は端末装置1の外部に備えられていてもよい。例えば、判定部13は、システム管理装置2に備えられていてもよい。
 [プログラム及び記録媒体]
 データベースシステム、データベース処理方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
 また、データベースシステムを構成する各装置又は各部における各処理をコンピュータによって実現する場合、その各装置又は各部が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、その各処理がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 また、各装置又は各部は、上記の通り、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
 その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。

Claims (4)

  1.  データベースに登録しようとする情報を秘匿にするかどうかを判定する判定部と、
     上記判定部において秘匿にすると判定された場合には、Nを所定の正の整数として、上記情報を秘密分散することによりN個の断片情報を生成しシステム管理装置に送信する端末装置と、
     上記端末装置から受信したN個の断片情報をそれぞれN個のデータベース装置に送信する上記システム管理装置と、
     上記システム管理装置から受信したN個の断片情報をそれぞれ格納するN個のデータベース装置と、
     を含むデータベースシステム。
  2.  請求項1のデータベースシステムにおいて、
     上記判定部は、データベースから参照しようとする情報が秘匿にされているかどうかを判定し、
     KをN以下の所定の正の整数として、上記判定部において秘匿にされていると判定された場合には、上記システム管理装置は、上記N個のデータベース装置の中のK個のデータベース装置にそれぞれ格納されたK個の断片情報を読み込み上記端末装置に送信し、
     上記端末装置は、上記システム管理装置から受信したK個の断片情報に基づいて元の情報を復元する、
     データベースシステム。
  3.  請求項1又は2のデータベースシステムにおいて、
     上記判定部は、データベースを参照するための検索条件の全部又は一部を秘匿にするかどうかを判定し、
     CをK以上N以下の正の整数として、上記判定部において上記検索条件の全部又は一部を秘匿にすると判定された場合には、上記端末装置は、上記検索条件の全部又は一部を秘密分散することによりC個の断片検索情報を生成し上記システム管理装置に送信し、
     上記システム管理装置は、上記端末装置から受信したC個の断片検索情報をそれぞれC個のデータベース装置に送信し、
     上記C個のデータベース装置が、上記C個の断片検索情報に対応するC個の断片情報を秘密計算により見つけ、
     上記システム管理装置は、上記C個の断片情報の中のK個の断片情報を上記端末装置に送信し、
     上記端末装置は、受信したK個の断片情報に基づいて元の情報を復元する、
     データベースシステム。
  4.  判定部が、データベースに登録しようとする情報を秘匿にするかどうかを判定する判定ステップと、
     端末装置が、上記判定ステップにおいて秘匿にすると判定された場合には、Nを所定の正の整数として、上記情報を秘密分散することによりN個の断片情報を生成しシステム管理装置に送信するステップと、
     システム管理装置が、上記端末装置から受信したN個の断片情報をそれぞれN個のデータベース装置に送信するステップと、
     N個のデータベース装置が、上記システム管理装置から受信したN個の断片情報をそれぞれ格納するステップと、
     を含むデータベース処理方法。
PCT/JP2016/063662 2015-05-14 2016-05-06 データベースシステム、データベース処理方法 WO2016181904A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201680025992.0A CN107533813B (zh) 2015-05-14 2016-05-06 数据库系统、数据库处理方法
US15/570,445 US10579813B2 (en) 2015-05-14 2016-05-06 Database system and database processing method
JP2017517915A JP6542883B2 (ja) 2015-05-14 2016-05-06 データベースシステム、データベース処理方法
EP16792629.4A EP3296980B1 (en) 2015-05-14 2016-05-06 Database system and database processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015099204 2015-05-14
JP2015-099204 2015-05-14

Publications (1)

Publication Number Publication Date
WO2016181904A1 true WO2016181904A1 (ja) 2016-11-17

Family

ID=57248113

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/063662 WO2016181904A1 (ja) 2015-05-14 2016-05-06 データベースシステム、データベース処理方法

Country Status (5)

Country Link
US (1) US10579813B2 (ja)
EP (1) EP3296980B1 (ja)
JP (1) JP6542883B2 (ja)
CN (1) CN107533813B (ja)
WO (1) WO2016181904A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019174621A (ja) * 2018-03-28 2019-10-10 日鉄ソリューションズ株式会社 情報処理装置、システム、情報処理方法及びプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
US11057208B2 (en) * 2016-08-22 2021-07-06 Rakuten, Inc. Management system, management device, management method, program, and non-transitory computer-readable information recording medium
WO2019216137A1 (ja) * 2018-05-08 2019-11-14 日本電信電話株式会社 安全性評価装置、安全性評価方法、およびプログラム
JP7359212B2 (ja) * 2019-08-07 2023-10-11 日本電気株式会社 秘密計算システム、秘密計算方法、および秘密計算プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009180912A (ja) * 2008-01-30 2009-08-13 Toshiba Solutions Corp 秘密分散装置及びプログラム
JP2009187339A (ja) * 2008-02-07 2009-08-20 Nec Corp 電子メール装置、電子メールシステム、電子メール検査方法、及び電子メール検査プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857076B1 (en) * 1999-03-26 2005-02-15 Micron Technology, Inc. Data security for digital data storage
US20050216754A1 (en) 2004-03-24 2005-09-29 Natan Ehud Method of encrypting digital items delivery through a communication network
CA2563354C (en) * 2004-04-26 2010-08-17 Jp Morgan Chase Bank System and method for routing messages
US8539600B2 (en) * 2008-10-31 2013-09-17 Nec Corporation Data processing system, and data processing apparatus and user terminal equipment therefor, and computer-readable storage medium and data processing method thereof
US9483656B2 (en) * 2009-04-20 2016-11-01 International Business Machines Corporation Efficient and secure data storage utilizing a dispersed data storage system
JP2011035800A (ja) * 2009-08-05 2011-02-17 National Institute Of Information & Communication Technology 電子価格提示システム、電子価格提示装置、及び電子価格提示方法
US8615668B2 (en) * 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system
US9124423B2 (en) * 2010-05-14 2015-09-01 International Business Machines Corporation Iterative data secret-sharing transformation
CA2800165A1 (en) * 2010-05-21 2011-11-24 Vaultive Ltd. System and method for secure use of messaging systems
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
US8700906B2 (en) * 2011-01-14 2014-04-15 Microsoft Corporation Secure computing in multi-tenant data centers
JP5812805B2 (ja) * 2011-10-31 2015-11-17 三菱スペース・ソフトウエア株式会社 文書秘匿システム、文書秘匿プログラムおよび文書秘匿方法
EP2778951B1 (en) * 2011-11-11 2017-04-26 NEC Corporation Database encryption system, method and program
GB201120314D0 (en) * 2011-11-24 2012-01-04 Business Partners Ltd Secure database searching
US9251355B2 (en) * 2013-07-30 2016-02-02 International Business Machines Corporation Field level database encryption using a transient key
JP2015032958A (ja) * 2013-08-01 2015-02-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 特定装置、特定方法、及び、プログラム
US9355271B2 (en) * 2013-10-18 2016-05-31 Robert Bosch Gmbh System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
US10067969B2 (en) * 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009180912A (ja) * 2008-01-30 2009-08-13 Toshiba Solutions Corp 秘密分散装置及びプログラム
JP2009187339A (ja) * 2008-02-07 2009-08-20 Nec Corp 電子メール装置、電子メールシステム、電子メール検査方法、及び電子メール検査プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KOJI CHIDA ET AL.: "Kokimitsu Data mo Anzen ni Niji Riyo Kano na 'Himitsu Keisan Gijutsu", NTT GIJUTSU JOURNAL, vol. 26, no. 3, 1 March 2014 (2014-03-01), pages 67 - 70, XP009501765 *
NAOTO KIRIBUCHI ET AL.: "Design of a Database System Processable under Keeping Data Confidentiality", COMPUTER SECURITY SYMPOSIUM 2015 (CSS 2015, 14 October 2015 (2015-10-14), pages 419 - 426, XP055499894 *
SHOTA MINAKAMI ET AL.: "Design and Implementation of Secret Sharing Distributed Database System", IEICE TECHNICAL REPORT, vol. 108, no. 415, 22 January 2009 (2009-01-22), pages 51 - 56, XP055499887 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019174621A (ja) * 2018-03-28 2019-10-10 日鉄ソリューションズ株式会社 情報処理装置、システム、情報処理方法及びプログラム
JP7011513B2 (ja) 2018-03-28 2022-01-26 日鉄ソリューションズ株式会社 情報処理装置、システム、情報処理方法及びプログラム

Also Published As

Publication number Publication date
CN107533813B (zh) 2021-02-19
EP3296980B1 (en) 2021-08-04
CN107533813A (zh) 2018-01-02
JP6542883B2 (ja) 2019-07-10
EP3296980A4 (en) 2018-12-26
US20180150642A1 (en) 2018-05-31
EP3296980A1 (en) 2018-03-21
US10579813B2 (en) 2020-03-03
JPWO2016181904A1 (ja) 2018-02-22

Similar Documents

Publication Publication Date Title
US10025951B2 (en) Systems and methods for implementing an encrypted search index
US10762229B2 (en) Secure searchable and shareable remote storage system and method
KR102194202B1 (ko) 특정 식별 정보를 공개하지 않고 식별자들 간의 링크를 설정
RU2531569C2 (ru) Защищенное и конфиденциальное хранение и обработка резервных копий для доверенных сервисов вычисления и данных
WO2016181904A1 (ja) データベースシステム、データベース処理方法
CN105493435A (zh) 虚拟服务提供商存储区
JP6250497B2 (ja) 情報管理システム
KR101979267B1 (ko) 클라우드 저장 기반 암호화 시스템 및 방법
US20200169393A1 (en) Secure handling of customer-supplied encryption secrets
CN109802832A (zh) 一种数据文件的处理方法、系统、大数据处理服务器和计算机存储介质
Kamara Restructuring the NSA metadata program
US11625368B1 (en) Data migration framework
Hetz et al. Scaling mobile private contact discovery to billions of users
JP6732887B2 (ja) データベースクエリのための方法及びシステム
Almarwani et al. Release-aware encryption adjustment query processing for document database
JP6965885B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
Ananthi et al. Secured Multikeyword Search over Encrypted Cloud Data Based On Quality and Usability
US20220360570A1 (en) Secure database with user-defined schemas
Sridhar et al. Querying methods of Encrypted Cloud Data
Baby et al. COBBS: a multicloud architecture for better business solutions
Saxena et al. Privacy preserving model in cloud environment
Mathew et al. Facilitating efficient encrypted document storage and retrieval in a cloud framework
Aman et al. Framework Design for Secured Local Cloud Data Query Processing Analysis
Shajahan et al. Secured cloud storage system based on privacy preserving weighted similarity keyword search scheme
Harne et al. Efficient and Secure Searchable Clinical Patient Information on Cloud Infrastructure.

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: 16792629

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017517915

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15570445

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE