WO2016129259A1 - サーバ装置、データ検索システム、検索方法および記録媒体 - Google Patents

サーバ装置、データ検索システム、検索方法および記録媒体 Download PDF

Info

Publication number
WO2016129259A1
WO2016129259A1 PCT/JP2016/000595 JP2016000595W WO2016129259A1 WO 2016129259 A1 WO2016129259 A1 WO 2016129259A1 JP 2016000595 W JP2016000595 W JP 2016000595W WO 2016129259 A1 WO2016129259 A1 WO 2016129259A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
search
secret
token
calculation
Prior art date
Application number
PCT/JP2016/000595
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 US15/549,580 priority Critical patent/US10417442B2/en
Priority to JP2016574663A priority patent/JP7020780B2/ja
Publication of WO2016129259A1 publication Critical patent/WO2016129259A1/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
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/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/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Definitions

  • the present invention relates to a server device or the like for extracting data in a system in which data is concealed and deposited in a server.
  • the method using SE is a cipher that can search for a sentence including a search word while the plaintext to be searched and a keyword (search word) included in the plaintext remain encrypted.
  • the encrypted plaintext to be searched is called ciphertext.
  • SE searchable encryption
  • This SE method is fast. However, in the SE method, in order for the client to generate a search token for inquiring of the system, the client terminal needs to hold and manage a secret key.
  • the secret sharing method is a method in which certain secret information (for example, a secret key) is converted into a plurality of pieces of shared information, and a combination of shared information satisfying a certain condition is collected to restore the original secret information. It is. At this time, it is ensured that information on the original secret information is not leaked even if a combination of distributed information that does not satisfy a certain condition is collected.
  • a typical method of the secret sharing method there is a method using Shamir's Secret ⁇ Sharing (SSS) described in Non-Patent Document 1.
  • SSS Shamir's Secret ⁇ Sharing
  • the threshold-type secret sharing method is a secret sharing method that can restore secret information by collecting a plurality of pieces of shared information among a plurality of pieces of shared information.
  • Secret calculation is a technique that allows two or more server devices each having secret information to cooperate to calculate an arbitrary function value with secret information input without leaking the secret information.
  • the secret calculation method using the secret sharing method includes the methods described in Non-Patent Document 2 and Non-Patent Document 3.
  • Confidential data is kept secret from system administrators who are third parties if data that is confidential information is distributed and held by multiple servers using the secret sharing method (hereinafter referred to as secret sharing).
  • secret sharing the secret sharing method
  • data can be extracted by calculating a function that determines whether or not a specified condition is satisfied by secret calculation.
  • the terminal side of the client making the inquiry has a key. There is an advantage that it is not necessary. However, on the other hand, there is a problem that it takes time to calculate the secret calculation.
  • each server holds the SE secret key together with the secret information of the database.
  • the inquiry side transmits secret sharing data of the search condition in which the secret is distributed to each server.
  • Each server uses the secret sharing data of the search condition and the secret sharing data of the SE secret key to execute a secret calculation and generate a search token.
  • the inquiry side can extract data without having a secret key.
  • the server needs to perform a secret calculation using the secret sharing data of the secret key, and there is a problem that it takes time to obtain the data extraction result.
  • Non-Patent Documents 1 to 3 described above have the following problems. That is, there are two methods for searching for concealed data: a method using secret computation and a method using SE.
  • the method using the secret calculation has a problem that the processing speed is slow.
  • the method using the SE has a problem that the client side needs to have a secret key.
  • the method of performing SE data search processing by secret calculation also has a problem that the processing speed becomes slow because secret calculation is also required for decoding the search result.
  • an object of the present invention is to provide a server device and the like that can extract data at high speed without having a secret key on the client side inquiring search processing.
  • the first feature of the present invention is: Data storage means for holding secret registration data including shared information by secret sharing method of registration data and ciphertext by searchable encryption of registration data; Token calculation means for generating a searchable cryptographic data search token by communicating with an external server device and executing a secret calculation using a search query and secret-distributed shared information; A data search means for executing a data search and outputting a search result from the data search token received from the token calculation means and the secret registration data acquired from the data storage means; It is a server apparatus provided with.
  • a data search system comprising a plurality of server devices and proxy devices connected via a network, Proxy device Registration data generating means for generating secret registration data registered in a plurality of server devices; Query data generation means for converting an analysis processing request input from the outside into confidential query data to be transmitted to a plurality of server devices, Secret sharing decryption means for restoring processing results from secret search results received from a plurality of server devices; Is a data search system.
  • the third feature of the present invention is that Using a search query acquired from an external server, and distributed information acquired from data storage means for storing secret registration data including shared information by secret sharing method of registered data and ciphertext by searchable encryption of registered data Generate a searchable cryptographic data search token by performing a secret calculation,
  • a data search is executed from the generated data search token and the secret registration data acquired from the data storage means, and the search result is output.
  • the fourth feature of the present invention is that Using a search query acquired from an external server, and distributed information acquired from data storage means for storing secret registration data including shared information by secret sharing method of registered data and ciphertext by searchable encryption of registered data A function for generating a searchable cryptographic data search token by executing a secret calculation, A search program for causing a computer to realize a function of executing a data search and outputting a search result from a generated data search token and secret registration data acquired from a data storage unit.
  • the search program may be stored in a recording medium.
  • FIGS. 1 to 6 show an example, and do not limit the direction of signals between blocks.
  • FIG. 1 is a block diagram illustrating a functional configuration example of the data search system 10 according to the first embodiment.
  • the data search system 10 includes a plurality of server devices 100_n (1 ⁇ n ⁇ N: N is an integer of 2 or more) and a secret sharing proxy device 200.
  • server devices 100_n (1 ⁇ n ⁇ N: N is an integer of 2 or more
  • secret sharing proxy device 200 the server device 100_n and the secret sharing proxy device 200 will be described in detail with reference to the drawings.
  • FIG. 2 is a block diagram showing in detail an example of the functional configuration of the server apparatus 100_n shown in FIG.
  • the server device 100_n includes a data storage unit 101_n, a token calculation unit 102_n, and a data search unit 103_n.
  • the data storage unit 101_n stores secret sharing data and SE ciphertext.
  • the secret sharing data is sharing information of the secret-distributed registration data.
  • the SE ciphertext is registration data (ciphertext) to be described later encrypted by the SE. Further, the data storage unit 101_n receives and stores the data extracted by the data search unit 103_n.
  • the token calculation unit 102_n uses other external server devices (for example, server devices 100_1 to 100_ (n ⁇ 1), 100_ (n + 1) to 100_N), a search token for data search is generated.
  • the data search unit 103_n searches the data stored in the data storage unit 101_n for data that matches the search token received from the token calculation unit 102_n, and returns the search result to the data storage unit 101_n.
  • FIG. 3 shows an example of the internal configuration of the secret sharing proxy device 200 shown in FIG. 1 in detail.
  • the secret sharing proxy apparatus 200 includes a registration data generation unit 201, a query data generation unit 202, and a secret sharing decryption unit 203.
  • the registration data generation unit 201 receives the registration data 210 that is data to be registered input from an external client terminal (not shown) or the like, the registration data generation unit 201 secretly distributes the registration data 210 and stores a plurality of pieces of secret registration data 110_1 to 110_N. Generate.
  • the secret registration data 110_1 to 110_N includes the sharing information of the secret-distributed registration data and the registration data (ciphertext) encrypted by the SE.
  • the query data generation unit 202 When the query data generation unit 202 receives the search processing request 220 received from an external client terminal or the like, the query data generation unit 202 generates a plurality of query data 120_1 to 120_N from the search processing request 220. The query data generation unit 202 transmits the generated query data 120_1 to 120_N to the server devices 100_1 to 100_N.
  • the secret sharing decryption unit 203 When receiving the secret search results 130_1 to 130_N from the server devices 100_1 to 100_N, the secret sharing decryption unit 203 generates a processing result 230 (search result) from the received plurality of secret search results 130_1 to 130_N, and external client terminals Output for.
  • the data search system 10 in the present embodiment mainly performs two types of processing: (1) data registration processing and (2) data search processing.
  • (1) data registration processing and (2) data search processing.
  • these operations will be described with reference to the flowcharts shown in FIGS.
  • the secret sharing proxy apparatus 200 inputs registration data 210, which is data to be registered, input from an external client terminal or the like to the registration data generation unit 201.
  • the registration data generation unit 201 secretly distributes the registration data 210 and generates a plurality of secret registration data 110_1 to 110_N.
  • the secret registration data 110_1 to 110_N includes secret information sharing information sharing information and ciphertext of SE registration data.
  • the registration data generation unit 201 of the secret sharing proxy device 200 transmits a plurality of pieces of secret registration data 110_1 to 110_N to the server devices 100_1 to 100_N.
  • step S102 the server apparatus 100_n stores the secret registration data 110_n received from the secret sharing proxy apparatus 200 in the data storage unit 101_n.
  • step S201 the query data generation unit 202 of the secret sharing proxy device 200 generates a plurality of query data 120_1 to 120_N. Specifically, when receiving the search processing request 220 from an external client terminal or the like, the query data generating unit 202 receives a plurality of pieces of query data 120_1 for obtaining secret-distributed registration data based on the search processing request 220. ⁇ 120_N are generated. The query data generation unit 202 transmits the generated query data 120_1 to 120_N to the server devices 100_1 to 100_N.
  • step S202 the server apparatus 100_n performs a secret calculation on the query data 120_n and outputs a search token.
  • the server device 100_n inputs the query data 120_n received from the secret sharing proxy device 200 to the token calculation unit 102_n.
  • the token calculation unit 102_n performs secret calculation using the methods of Non-Patent Document 2 and Non-Patent Document 3 while communicating with other server devices, and the n-th search token by a method using SE Is output.
  • the server apparatus 100_n inputs the nth search token output from the token calculation unit 102_n and the secret registration data 110_n stored in the data storage unit 101_n to the data search unit 103_n.
  • step S203 the data search unit 103_n performs SE data search using the method of Non-Patent Document 4 or the like based on the n-th search token and the encrypted ciphertext included in the n-th secret registration data. Execute, search for the ciphertext corresponding to the input search token, and output the search result.
  • the data search unit 103_n also executes the secret calculation described in step S202 in the gate process (a process for executing a function that determines whether a given property is satisfied).
  • the data search unit 103_n may collectively distribute the gate processing for the plurality of query data 120_1 to 120_N.
  • the data search unit 103_n can extract data at high speed by utilizing SE, which is a high-speed search means.
  • the data search unit 103_n can execute gate processing for each bit of data in parallel by a technique called a bit slicing method, whereby search processing for a plurality of data can be performed in parallel by gate unit processing. Can be executed.
  • the data search unit 103_n decrypts the searched data by restoring the secret-distributed data.
  • the data search unit 130 since the retrieved data itself is distributed by the secret sharing method, the data search unit 130 does not require a secret calculation for the decryption process. Therefore, decoding is fast. Moreover, no key is required for decryption of the calculation result.
  • a search token is generated for a keyword (search word) using a secret calculation technique, so that a search token can be generated without a key in the client terminal.
  • data extraction processing which has a heavy load in the secret calculation, can be performed at high speed by a technique using SE.
  • step S204 the server apparatus 100_n outputs the n-th secret sharing data corresponding to the search result of the data search unit 103_n as the secret search result 130_n among the data stored in the data storage unit 101_n.
  • the server device 100_n transmits the secret search result 130_n to the secret sharing proxy device 200.
  • step S205 when the secret sharing decryption unit 203 of the secret sharing proxy device 200 receives the secret search result 130_n received from the server device 100_n, the secret sharing decryption unit 203 generates and outputs the processing result 230 from the secret search result 130_n.
  • a client that makes an inquiry for search processing can extract data at high speed without having a secret key.
  • a client that makes an inquiry for search processing can extract data at high speed. That is, by executing the secret calculation on the data extracted using the SE, it is possible to reduce the search processing time by the secret calculation. The reason is that the search process by the secret calculation is executed without disclosing the data deposited in the server device to the administrator of the server device. In general, when a search process is performed on all data deposited in the server apparatus using a secret calculation, the longer the amount of data, the longer it takes.
  • the second embodiment of the present invention is a modification of the above-described first embodiment.
  • parts having the same functions as those already described in the first embodiment are denoted by the same reference numerals, and description thereof is omitted.
  • FIG. 4 is a block diagram illustrating a functional configuration example of the data search system 20 according to the second embodiment.
  • the data search system 20 includes a plurality of server devices 300_1 to 300_N and a secret sharing proxy device 400.
  • FIG. 5 is a block diagram illustrating a functional configuration example of the server apparatus 300_n according to the second embodiment.
  • the server device 300_n includes a data storage unit 101_n, a token calculation unit 102_n, a data search unit 103_n, and an analysis processing unit 104_n.
  • the data storage unit 101_n stores confidential registration data 110_n received as an input from the outside.
  • the token calculation unit 102_n uses the query data 120_n received as an input from the outside to generate a search token for the nth data search while communicating with an external server device.
  • the data search unit 103_n searches the data required for the requested processing from the nth search token received from the token calculation unit 102_n and the data stored in the data storage unit 101_n, and the search result is the nth data. Return to the storage unit 101_n.
  • the analysis processing unit 104_n performs predetermined analysis processing according to the request from the client terminal on the data extracted by the data search unit 103_n using the search result while communicating with an external server device.
  • the secret analysis result 140_n is output.
  • FIG. 6 is a block diagram illustrating a functional configuration example of the secret sharing proxy apparatus 400 according to the second embodiment.
  • the secret sharing proxy apparatus 400 includes a registration data generation unit 201, a query data generation unit 202, and a secret sharing decryption unit 204, which will be described later.
  • the secret sharing decryption unit 204 Upon receiving the plurality of secret analysis results 140_1 to 140_N received from the server apparatuses 300_1 to 300_N, the secret sharing decryption unit 204 generates and outputs the analysis results 240 from the plurality of secret analysis results 140_1 to 140_N. Others are the same as in the first embodiment.
  • the secret data search system 20 performs two types of processing: (1) data registration processing and (2) data analysis processing.
  • step S ⁇ b> 301 the secret sharing proxy device 400 inputs registration data 210 input from the outside to the registration data generation unit 201.
  • the registration data generation unit 201 generates a plurality of secret registration data 110_1 to 110_N from the registration data 210.
  • the registration data generation unit 201 of the secret sharing proxy device 400 transmits the secret registration data 110_1 to 110_N to the server devices 300_1 to 300_N.
  • step S302 the server apparatus 300_n stores the secret registration data 110_n received from the secret sharing proxy apparatus 400 in the data storage unit 101_n.
  • step S401 the query data generation unit 202 of the secret sharing proxy device 400 receives the search processing request 220 received from the outside, and generates a plurality of query data 120_1 to 120_N based on the received search processing request 220.
  • the query data generation unit 202 of the secret sharing proxy device 400 transmits the query data 120_1 to 120_N to the server devices 300_1 to 300_N.
  • step S402 the token calculation unit 102_n of the server device 300_n receives the query data 120_n received from the secret sharing proxy device 400_n.
  • the token calculation unit 102_n performs secret calculation using the methods of Non-Patent Document 2 and Non-Patent Document 3 while communicating with other server devices, and outputs the nth search token of SE.
  • step S403 the server apparatus 300_n inputs the nth search token output from the token calculation unit 102_n and the confidential registration data 110_n stored in the data storage unit 101_n to the data search unit 103_n. Based on the input n-th search token and n-th secret registration data 110_n, the n-th data search unit 103_n performs a data search using the method of Non-Patent Document 4 and outputs a search result. .
  • the n-th data search unit 103 — n performs secret calculation for each gate process that constitutes a function that determines whether the given property is satisfied. At this time, the same gate of this function may be secretly shared simultaneously for a plurality of rows.
  • step S404 the server apparatus 300_n transmits the n-th secret sharing data corresponding to the search result of the data search unit 103_n among the data stored in the data storage unit 101_n to the analysis processing unit 104_n (1 ⁇ n ⁇ N). Output.
  • the analysis processing unit 104_n performs a predetermined analysis process on the retrieved data using the secret calculation while communicating with another server device, and outputs a confidential analysis result 140_n.
  • step S405 the analysis processing unit 104_n of the server device 300_n transmits the confidential analysis result 140_n to the secret sharing proxy device 400.
  • the secret sharing proxy device 400 inputs the secret analysis results 140_1 to 140_N received from the server devices 300_1 to 300_N to the secret sharing decryption unit 204.
  • the secret sharing decryption unit 204 generates and outputs an analysis result 240 from the plurality of secret analysis results 140_1 to 140_N.
  • the third effect can be applied to applications such as consigning analysis processing based on search results while concealing the processing contents to a third party server device using secret calculation.
  • the reason is that the analysis processing by the secret calculation can be performed on the retrieved data, so that the speed of the analysis processing is improved without leakage of information.
  • a server device 1 according to a third embodiment of the present invention will be described with reference to FIG.
  • the third embodiment of the present invention is a minimum configuration example for implementing the functions of the first and second embodiments described above.
  • the server device 1 is used in a system that conceals and deposits data on the server device side.
  • the server device 1 includes a data storage unit 2, a token calculation unit 3, and a data search unit 4.
  • the data storage unit 2 holds secret registration data including shared information based on the secret sharing method of registered data and ciphertexts using searchable encryption of the registered data.
  • the token calculation unit 3 communicates with the external server device, and generates a searchable cryptographic data search token by executing a secret calculation using the search query and the shared information that is secretly distributed.
  • the data search unit 4 performs a data search using the data search token received from the token calculation unit 3 and the secret registration data acquired from the data storage unit 2 and outputs a search result.
  • the server device 1 can extract data at high speed without a client making an inquiry for search processing having a secret key.
  • the reason for this is that the data storage unit 2 holds secret registration data for secret sharing, and the token calculator 3 does not disclose the data deposited with the server device 1 to the administrator of the server device 1. This is because analysis processing by calculation is executed.
  • the search method performed in the data search systems 10 and 20 and the server device 100_n can be realized by hardware, software, or a combination thereof.
  • “realized by software” means realized by a computer reading and executing a program.
  • Non-transitory computer readable media include various types of tangible storage media.
  • Examples of non-transitory computer-readable media are magnetic recording media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical disks), CD-ROM (Compact Disk-Read Only Memory) , CD-R (Read), CD-R / W (Write), semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable ROM), flash ROM, RAM (Random access memory)).
  • the program may also be supplied to the computer by various types of temporary computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • each component of each device represents a functional unit block.
  • a part or all of each component of each device (system) is realized by an arbitrary combination of an information processing device 500 and a program as shown in FIG. 12, for example.
  • the information processing apparatus 500 includes the following configuration as an example.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • a program 504 loaded into the RAM 503
  • storage device 505 for storing the program 504
  • a drive device 507 for reading / writing the recording medium 506
  • Communication interface 508 connected to the communication network 509
  • An input / output interface 510 for inputting / outputting data -Bus 511 connecting each component
  • Each component of each device in each embodiment is realized by the CPU 501 acquiring and executing a program 504 that realizes these functions.
  • the program 504 that realizes the function of each component of each device is stored in advance in the storage device 505 or the RAM 503, for example, and is read by the CPU 501 as necessary.
  • the program 504 may be supplied to the CPU 501 via the communication network 509 or may be stored in the recording medium 506 in advance, and the drive device 507 may read the program and supply it to the CPU 501.
  • each device may be realized by an arbitrary combination of the information processing device 500 and a program that are separately provided for each component.
  • a plurality of constituent elements included in each device may be realized by an arbitrary combination of one information processing device 500 and a program.
  • each device is realized by other general-purpose or dedicated circuit boards, processors, etc., or combinations thereof. These may be constituted by a single chip cage or may be constituted by a plurality of chip cages connected via a bus.
  • each device may be realized by a combination of the above-described circuit and the like and a program.
  • each device When some or all of the constituent elements of each device are realized by a plurality of information processing devices and circuits, the plurality of information processing devices and circuits may be centrally arranged or distributedly arranged. Also good.
  • the information processing apparatus, the circuit, and the like may be realized as a form in which each is connected via a communication network, such as a client and server system and a cloud computing system.
  • the present invention can be applied to a use of requesting a search process without disclosing data for data concealed and deposited with a third party server.

Landscapes

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

Abstract

 サーバにデータを秘匿化して預託するシステムにおいて、検索処理の問い合わせを行うクライアントが秘密鍵を持つことなく、高速にデータ抽出するサーバ装置等を提供する。 本発明によるサーバ装置1は、登録データの秘密分散法による分散情報と登録データの検索可能暗号による暗号文とを含む秘匿登録データを保持するデータ記憶部2と、外部サーバと通信を行い、検索クエリと秘密分散された分散情報とを用いて秘密計算を実行することで検索可能暗号のデータ検索トークンを生成するトークン計算部3と、トークン計算部3から受信するデータ検索トークンと、データ記憶部2から取得する秘匿登録データとから、データ検索を実行し検索結果を出力するデータ検索部4とを備える。

Description

サーバ装置、データ検索システム、検索方法および記録媒体
 本発明は、サーバにデータを秘匿化して預託するシステムにおいて、データを抽出するためのサーバ装置等に関する。
 クライアント(ユーザ)が外部の第三者にデータを預託できるサービスがある。このようなサービスで使用されるデータベースサーバにおいては、クライアントから預託されたデータは、当該サーバ内のデータベースに保存される。この際、データを格納するデータベース内の情報が、サーバ側から漏えい、窃盗等されることを防ぐために、当該データを秘匿化する必要がある。特に、サーバ側から特定の性質を満たす(属性がある値を持つなど)データを抽出する処理において、情報漏洩が発生し易い。これを防ぐためには、正当なクライアント以外に、当該データを保管するデータベースにアクセスできる権限を与えないことが望ましい。しかし、サーバの管理者には、当該データの管理のために当該データベースへのアクセス許可が必要な時がある。このため、このようなサーバまたはサーバを含むシステムにおいて、当該データを秘匿したまま、ユーザが所望のデータを抽出できる技術が開発されている。
 上記のようなシステム内のサーバに、データを秘匿したままデータの抽出を行う方法として、検索可能暗号(Searchable Encryption: SE)を用いた方法がある。SEを用いた方法は、検索対象の平文とその平文に含まれるキーワード(検索単語)とを暗号化したままの状態で、検索単語を含む文章を検索できる暗号である。暗号化された検索対象の平文を暗号文と呼ぶ。SEを用いた方法では、データベースに問い合わせる際に、検索単語と暗号化に用いた秘密鍵とを含む、検索トークンを生成する。更に、生成された検索トークンに含まれる暗号鍵を用いて暗号文を復号し、復号結果の平文内に検索単語が存在するかを確認する。このSE方法の処理は高速である。しかしながら、SE方法においては、クライアントがシステムに問い合わせるための検索トークンを生成するために、クライアントの端末が秘密鍵を保持し、管理する必要がある。
 一方で、秘密鍵を用いずにデータの抽出を行う方法として、秘密分散法を用いた秘密計算という技術がある。まず、秘密分散法について説明する。秘密分散法は、ある秘密情報(例えば秘密鍵など)を複数個の分散情報に変換し、ある条件を満たした組み合わせの分散情報を集めることによって、もとの秘密情報を復元することが出来る方法である。このとき、ある条件を満たさない組み合わせの分散情報を集めても、もとの秘密情報に関する情報は洩れないことが保障される。秘密分散法の代表的な方式としては、非特許文献1に記載のShamirのしきい値型秘密分散法(Shamir’s Secret Sharing:SSS)を用いる手法がある。ここで、しきい値型秘密分散法とは、複数個の分散情報のうち、ある個数以上の分散情報を集めることによって秘密情報を復元できる秘密分散法である。
 次に、秘密計算について説明を行う。秘密計算は、それぞれ秘密情報を持つ2台以上のサーバ装置が協力して計算することで、それぞれの秘密情報を漏らすことなく、秘密情報を入力とする任意の関数値を計算できる技術である。秘密分散法を利用した秘密計算の方法は、非特許文献2や非特許文献3に記載されている方法などがある。
 秘密情報であるデータを複数のサーバ装置で秘密分散法を利用して分散(以下、秘密分散と記載する)して保持すれば、第三者であるシステムの管理者から、預託データを秘匿することができ、ひいては、預託されるデータの窃盗を防ぐことができる。秘密分散法においては、指定した条件を満たすかどうかを判定する関数を秘密計算によって計算することで、データを抽出することができ、このデータの抽出において、問い合わせを行うクライアントの端末側が鍵を持つ必要がないという利点がある。しかし一方で、秘密計算の算出処理に時間がかかるという問題がある。
 秘密鍵を用いずに、SEを利用してデータの抽出を行う方法として、SEにおける検索用のトークンを、秘密計算技術を用いて計算する方法が考えられる。この方法では、SEの秘密鍵をデータベースの秘密情報とともに秘密分散して各サーバが保持する。検索を要求する際には、先ず、問い合わせ側が秘密分散された検索条件の秘密分散データをそれぞれのサーバに送信する。各サーバは検索条件の秘密分散データとSEの秘密鍵の秘密分散データとを用いて、秘密計算を実行し、検索トークンを生成する。
 この方法では、問い合わせ側が秘密鍵を持たずにデータ抽出を行うことができる。しかし、抽出されたデータを復号する際には、サーバは秘密鍵の秘密分散データを用いて秘密計算を行う必要があり、やはりデータ抽出結果を得るのに時間がかかるという問題がある。
Adi Shamir、 "How to Share a Secret、" Commun. ACM 22(11)、 pp.612-613、 1979. Michael Ben-Or、 Shafi Goldwasser and Avi Wigderson、 "Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation (Extended Abstract)、" Proceedings of the 20th Annual ACM Symposium on Theory of Computing、 1988. Oded goldreich、 Silvio Micali、 Avi Wigderson、 "How to Play any Mental game or A Completeness Theorem for Protocols with Honest Majority、" STOC1987、 pp.218-229、 1987. Reza Curtmola、 Juan A. Garay、 Seny Kamara、 Rafail Ostrovsky、  "Searchable Symmetric Encryption: Improved Definitions and Efficient Constructions、" Journal of Computer Security 19(5): 895-934、 2011.
 このように、上述の非特許文献1~3には以下の問題があった。すなわち、秘匿化されたデータに対して検索を行う技術は、秘密計算を用いた方法とSEを用いる方法がある。秘密計算を用いた方法では処理速度が遅くなるという問題があり、一方で、SEを用いた方法では、クライアント側が秘密鍵を持つ必要があるという問題がある。SEのデータ検索処理を秘密計算で行う方法は、検索結果の復号にも秘密計算を必要とするため、やはり、処理速度が遅くなるという問題がある。
 上記の問題点を鑑み、本発明は、検索処理の問い合わせを行うクライアント側が秘密鍵を持つことなく、高速にデータを抽出できるサーバ装置等を提供することを目的とする。
 上述の課題に鑑み、本発明の第1の特徴は、
 登録データの秘密分散法による分散情報と、登録データの検索可能暗号による暗号文とを含む秘匿登録データを保持するデータ記憶手段と、
 外部サーバ装置と通信を行い、検索クエリと秘密分散された分散情報とを用いて秘密計算を実行することで検索可能暗号のデータ検索トークンを生成するトークン計算手段と、
 トークン計算手段から受信するデータ検索トークンと、データ記憶手段から取得する秘匿登録データとから、データ検索を実行し検索結果を出力するデータ検索手段と、
を備えるサーバ装置である。
 本発明の第2の特徴は、
 ネットワークで接続された上記の複数のサーバ装置とプロキシ装置とを備えるデータ検索システムであって、
 プロキシ装置は、
 複数のサーバ装置に登録される秘匿登録データを生成する登録データ生成手段と、
 外部から入力される分析処理要求を、複数のサーバ装置へ送信する秘匿化されたクエリデータへと変換するクエリデータ生成手段と、
 複数のサーバ装置から受信する秘匿検索結果から処理結果を復元する秘密分散復号手段と、
を有するデータ検索システムである。
 本発明の第3の特徴は、
 外部サーバから取得する検索クエリと、登録データの秘密分散法による分散情報と登録データの検索可能暗号による暗号文とを含む秘匿登録データを格納するデータ記憶手段から取得する分散情報と、を用いて秘密計算を実行することで検索可能暗号のデータ検索トークンを生成し、
 生成されたデータ検索トークンと、データ記憶手段から取得する秘匿登録データとから、データ検索を実行し、検索結果を出力する
検索方法である。
 本発明の第4の特徴は、
 外部サーバから取得する検索クエリと、登録データの秘密分散法による分散情報と登録データの検索可能暗号による暗号文とを含む秘匿登録データを格納するデータ記憶手段から取得する分散情報と、を用いて秘密計算を実行することで検索可能暗号のデータ検索トークンを生成する機能と、
 生成されたデータ検索トークンと、データ記憶手段から取得する秘匿登録データとから、データ検索を実行し検索結果を出力する機能
とをコンピュータに実現させる検索プログラムである。
 尚、検索プログラムは、記録媒体に格納されていてもよい。
 本発明によれば、検索処理の問い合わせを行うクライアント側が秘密鍵を持つことなく、高速にデータを抽出することができる。
 本発明の更なる利点及び実施形態を、記述と図面を用いて下記に詳細に説明する。
本発明の第1の実施形態におけるデータ検索システムの機能構成例を示すブロック図である。 本発明の第1の実施形態によるサーバ装置の機能構成例を示すブロック図である。 図1における秘密分散プロキシ装置の機能構成例を示す図である。 本発明の第2の実施形態におけるデータ検索システムの機能構成例を示すブロック図である。 本発明の第2の実施形態によるサーバ装置の機能構成例を示すブロック図である。 図4における秘密分散プロキシ装置の機能構成例を示す図である。 本発明の第1の実施形態におけるデータ検索システムのデータ登録動作を例示するフローチャートである。 本発明の第1の実施形態におけるデータ検索システムのデータ検索動作を例示するフローチャートである。 本発明の第2の実施形態におけるデータ検索システムのデータ登録動作を例示するフローチャートである。 本発明の第2の実施形態におけるデータ検索システムのデータ検索動作を例示するフローチャートである。 本発明の第3の実施形態によるサーバ装置の構成例を示すブロック図である。 各実施形態において実用可能な情報処理装置の一例を示すブロック図である。
 以下、本発明の実施形態について図面を参照しつつ説明する。但し、以下に説明する実施形態によって本発明の技術的範囲は何ら限定解釈されることはない。図1~6の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
 (第1の実施の形態)
 まず、本発明の第1の実施形態について説明する。
 図1は、第1の実施形態にかかるデータ検索システム10の機能構成例を示すブロック図である。
 データ検索システム10は、複数のサーバ装置100_n(1≦n≦N:Nは2以上の整数)と、秘密分散プロキシ装置200とを備える。以下、サーバ装置100_nと秘密分散プロキシ装置200とについて、図面を参照して詳細に説明する。
(サーバ装置)
 図2は、図1に示したサーバ装置100_nの機能構成例を詳細に示したブロック図である。サーバ装置100_nは、データ記憶部101_nと、トークン計算部102_nと、データ検索部103_nとを備える。
 データ記憶部101_nは、秘密分散データと、SE暗号文とを格納する。秘密分散データは、秘密分散された登録データの分散情報である。SE暗号文は、SEにより暗号化された後述する登録データ(暗号文)である。更に、データ記憶部101_nは、データ検索部103_nによって抽出されたデータを受信し、格納する。
 トークン計算部102_nは、秘密分散プロキシ装置200から入力されるクエリデータ(検索クエリ)120_nを用いて、外部の他のサーバ装置(例えばサーバ装置100_1~100_(n-1)、100_(n+1)~100_N)と通信を行いながら、データ検索用の検索トークンを生成する。
 データ検索部103_nは、データ記憶部101_nに記憶されたデータから、トークン計算部102_nから受けた検索トークンと一致するデータを検索し、検索結果をデータ記憶部101_nに返す。
 (秘密分散プロキシ装置)
 図3に、図1に示した秘密分散プロキシ装置200の内部構成の一例を詳細に示す。秘密分散プロキシ装置200は、登録データ生成部201、クエリデータ生成部202、および、秘密分散復号部203を備える。
 登録データ生成部201は、外部のクライアント端末(不図示)等から入力された登録対象のデータである登録データ210を受信すると、登録データ210を秘密分散し、複数の秘匿登録データ110_1~110_Nを生成する。秘匿登録データ110_1~110_Nは、それぞれ秘密分散された登録データの分散情報と、SEにより暗号化された登録データ(暗号文)とを含む。
 クエリデータ生成部202は、外部のクライアント端末等から受けた検索処理要求220を受信すると、検索処理要求220から複数のクエリデータ120_1~120_Nを生成する。クエリデータ生成部202は、生成したクエリデータ120_1~120_Nをサーバ装置100_1~100_Nに送信する。
 秘密分散復号部203は、サーバ装置100_1~100_Nから秘匿検索結果130_1~130_Nを受信すると、受信した複数の秘匿検索結果130_1~130_Nから処理結果230(検索結果)を生成し、外部のクライアント端末等に対して出力する。
 次に、本発明の第1の実施の形態におけるデータ検索システム10の動作について詳細に説明する。本実施形態におけるデータ検索システム10は、主に(1)データ登録時の処理、 (2)データ検索時の処理の2種類の処理を行う。以下、これらの動作について図7および図8に示すフローチャートを参照して説明する。
 まず、データ検索システム10のデータ登録時の処理について図7を参照して説明する。
 ステップS101において、秘密分散プロキシ装置200は、外部のクライアント端末等から入力された登録対象のデータである登録データ210を登録データ生成部201に入力する。登録データ生成部201は、登録データ210を秘密分散し、複数の秘匿登録データ110_1~110_Nを生成する。秘匿登録データ110_1~110_Nは、それぞれ秘密分散された登録データの分散情報と、SEによる登録データの暗号文とを含む。秘密分散プロキシ装置200の登録データ生成部201は、複数の秘匿登録データ110_1~110_Nをサーバ装置100_1~100_Nに送信する。
 ステップS102において、サーバ装置100_nは、秘密分散プロキシ装置200から受けた秘匿登録データ110_nを、データ記憶部101_nに保存する。
 次に、データ検索システム10のデータ検索時の処理について図8のフローチャートを参照して説明する。
 ステップS201において、秘密分散プロキシ装置200のクエリデータ生成部202は、複数のクエリデータ120_1~120_Nを生成する。具体的に、クエリデータ生成部202は、外部のクライアント端末等から検索処理要求220を受けると、当該検索処理要求220を基に、秘密分散された登録データを得るための、複数のクエリデータ120_1~120_Nを生成する。クエリデータ生成部202は、生成したクエリデータ120_1~120_Nをサーバ装置100_1~100_Nに送信する。
 ステップS202において、サーバ装置100_nは、クエリデータ120_nに対し秘密計算を実行し、検索トークンを出力する。具体的には、サーバ装置100_nは、秘密分散プロキシ装置200から受けたクエリデータ120_nを、トークン計算部102_nに入力する。トークン計算部102_nは、他のサーバ装置と互いに通信を行いながら、非特許文献2や非特許文献3の方法などを用いて、秘密計算を実行し、SEを用いた方法で第nの検索トークンを出力する。サーバ装置100_nは、トークン計算部102_nから出力された第nの検索トークンと、データ記憶部101_nに保存された秘匿登録データ110_nとを、データ検索部103_nに入力する。
 ステップS203において、入力された第nの検索トークンおよび第nの秘匿登録データに含まれるSEの暗号文を基に、データ検索部103_nは非特許文献4の方法などを用いてSEのデータ検索を実行し、入力された検索トークンに対応する暗号文を検索して、その検索結果を出力する。
 尚、データ検索部103_nは、上記のステップS202に記載した秘密計算を、ゲート処理(与えられた性質を満たすかを判定する関数を実行する処理)においても実行する。この際、データ検索部103_nは、複数のクエリデータ120_1~120_Nに対するゲート処理を纏めて秘密分散しても良い。このことで、データ検索部103_nは、高速な検索手段であるSEを活用して、高速にデータ抽出を行うことができる。また、データ検索部103_nは、データの各ビットに対するゲート処理を,ビットスライス法と呼ばれる手法によって並列に実行することができ、これによって複数のデータに対する検索処理を、ゲート単位の処理により並列して実行することができる。データ検索部103_nは、検索されたデータの復号を、秘密分散されたデータを復元することによって行う。また、検索されたデータ自身は秘密分散法で分散しているため、データ検索部130は、復号処理に秘密計算を必要としない。したがって、復号が早い。また計算結果の復号に関して鍵を要しない。具体的には、本実施形態では、キーワード(検索単語)に対する検索トークンの生成を、秘密計算技術を用いて行うことで、クライアント端末において鍵が無くとも検索トークンを生成することが可能になる。これにより、秘密計算において負荷の大きかったデータ抽出処理を、SEを用いた手法で高速に行うことができる。
 ステップS204において、サーバ装置100_nはデータ記憶部101_nに保存されたデータのうち、データ検索部103_nの検索結果に対応する第nの秘密分散データを秘匿検索結果130_nとして出力する。サーバ装置100_nは秘匿検索結果130_nを、秘密分散プロキシ装置200に送信する。
 ステップS205において、秘密分散プロキシ装置200の秘密分散復号部203は、サーバ装置100_nから受けた秘匿検索結果130_nを受信すると、秘匿検索結果130_nから処理結果230を生成して出力する。
 本発明の第1の実施の形態によると、検索処理の問い合わせを行うクライアントが秘密鍵を持つことなく、高速にデータを抽出することができる。
 より詳細に説明すると、第1に、検索処理の問い合わせを行うクライアントが、高速にデータを抽出できる。即ち、SEを用いて抽出したデータに対して秘密計算を実行することにより、秘密計算による検索処理の時間を削減できる。その理由は、サーバ装置に預託したデータをサーバ装置の管理者に開示することなく、秘密計算による検索処理を実行するからである。尚、一般的に、サーバ装置に預託したデータのすべてに対して秘密計算を用いて検索処理を行う場合、データの量が多くなればなるほど時間を要する。
 第2に、検索処理の問い合わせを行うクライアントが秘密鍵を持つ必要が無い。これにより、サーバ管理者等に対するデータの情報漏えいを防止する効果がある。その理由は、データを秘密分散して保持するからである。
 (第2の実施の形態)
 続いて、本発明の第2の実施形態について説明する。本発明の第2の実施形態は、上述した第1の実施形態の変形例である。以下、本実施形態において、第1の実施形態においてすでに説明した部分と同様な機能を有する部分には同一符号を付し、説明は省略する。
 図4は、第2の実施形態によるデータ検索システム20の機能構成例を示すブロック図である。データ検索システム20は、複数のサーバ装置300_1~300_Nと、秘密分散プロキシ装置400とを備える。
 図5は、第2の実施形態によるサーバ装置300_nの機能構成例を示すブロック図である。サーバ装置300_nは、データ記憶部101_nと、トークン計算部102_nと、データ検索部103_nと、分析処理部104_nとを備えている。
 データ記憶部101_nは、外部から入力として受けた秘匿登録データ110_nを記憶する。
 トークン計算部102_nは、外部から入力として受けたクエリデータ120_nを用いて、外部のサーバ装置と通信を行いながら、第nのデータ検索用の検索トークンを生成する。
 データ検索部103_nは、トークン計算部102_nから受けた第nの検索トークンと、データ記憶部101_nに記憶されたデータから、要求された処理に必要なデータを検索し、検索結果を第nのデータ記憶部101_nに返す。
 分析処理部104_nは、データ検索部103_nによって抽出されたデータに対して、外部のサーバ装置と通信を行いながら、クライアント端末からの要求に応じた所定の分析処理を、検索結果を用いて行い、秘匿分析結果140_nを出力する。
 図6は、第2の実施形態による秘密分散プロキシ装置400の機能構成例を示すブロック図である。秘密分散プロキシ装置400は後述する登録データ生成部201、クエリデータ生成部202、および、秘密分散復号部204を有する。
 秘密分散復号部204は、サーバ装置300_1~300_Nから受けた複数の秘匿分析結果140_1~140_Nを受信すると、複数の秘匿分析結果140_1~140_Nから分析結果240を生成して出力する。
 その他は第1の実施形態と同様である。
 次に、本発明の第2の実施の形態におけるデータ検索システム20の動作について図9および図10のフローチャートを用いて詳細に説明する。本実施形態における秘匿データ検索システム20は、(1)データ登録時の処理、(2)データ分析時の処理の2種類の処理を行う。
 まず、データ登録時の処理について図9を参照して説明する。
 ステップS301において、秘密分散プロキシ装置400は、外部から入力された登録データ210を登録データ生成部201に入力する。登録データ生成部201は、登録データ210から複数の秘匿登録データ110_1~110_Nを生成する。秘密分散プロキシ装置400の登録データ生成部201は、秘匿登録データ110_1~110_Nをサーバ装置300_1~300_Nに送信する。
 ステップS302において、サーバ装置300_nは、秘密分散プロキシ装置400から受けた秘匿登録データ110_nを、データ記憶部101_nに保存する。
 次に、データ分析時の処理について図10を参照して説明する。
 ステップS401において、秘密分散プロキシ装置400のクエリデータ生成部202は、外部から受けた検索処理要求220を受信し、受信した検索処理要求220を基に、複数のクエリデータ120_1~120_Nを生成する。秘密分散プロキシ装置400のクエリデータ生成部202は、クエリデータ120_1~120_Nをサーバ装置300_1~300_Nに送信する。
 ステップS402において、サーバ装置300_nのトークン計算部102_nは、秘密分散プロキシ装置400_nから受けたクエリデータ120_nを、受信する。トークン計算部102_nは、他のサーバ装置と互いに通信を行いながら、非特許文献2や非特許文献3の方法などを用いて、秘密計算を実行し、SEの第nの検索トークンを出力する。
 ステップS403において、サーバ装置300_nは、トークン計算部102_nから出力された第nの検索トークンと、データ記憶部101_nに保存された秘匿登録データ110_nをデータ検索部103_nに入力する。入力された第nの検索トークンおよび第nの秘匿登録データ110_nを基に、第nのデータ検索部103_nは、非特許文献4の方法などを用いてデータ検索を実行し、検索結果を出力する。この秘密計算時に、第nのデータ検索部103_nは与えられた性質を満たすかを判定する関数を構成する各ゲート処理を秘密計算する。この時、複数の行に関して同時に、本関数の同じゲートを秘密分散してもよい。
 ステップS404において、サーバ装置300_nは、データ記憶部101_nに保存されたデータのうち、データ検索部103_nの検索結果に対応する第nの秘密分散データを分析処理部104_n(1≦n≦N)に出力する。分析処理部104_nは、他のサーバ装置と互いに通信を行いながら、秘密計算を用いて検索されたデータに対する所定の分析処理を行い、秘匿分析結果140_nを出力する。
 ステップS405において、サーバ装置300_nの分析処理部104_nは、秘匿分析結果140_nを、秘密分散プロキシ装置400に送信する。秘密分散プロキシ装置400は、サーバ装置300_1~300_Nから受けた秘匿分析結果140_1~140_Nを秘密分散復号部204に入力する。秘密分散復号部204は、複数の秘匿分析結果140_1~140_Nから分析結果240を生成して出力する。
 以上説明した本発明の第2の実施形態においては、第1の実施形態で述べた第1及び第2の効果の他に以下に記載するような第3の効果を奏する。
 第3の効果は、秘密計算を用いて、第三者のサーバ装置に処理の内容を秘匿しながら、検索結果を基に、分析処理を委託するといった用途に適用できる。その理由は、検索したデータに対して秘密計算による分析処理を行うことができるため、情報の漏洩なく、分析処理の速度を向上させるからである。
 (第3の実施の形態)
 本発明の第3の実施形態に係るサーバ装置1について図11を参照して説明する。本発明の第3実施形態は、上述した第1および2の実施形態の機能を実施する為の最小構成例である。サーバ装置1は、サーバ装置側にデータを秘匿化して預託するシステム等において使用される。サーバ装置1は、データ記憶部2と、トークン計算部3と、データ検索部4とを備える。
 データ記憶部2は、登録データの秘密分散法による分散情報と、登録データの検索可能暗号による暗号文とを含む秘匿登録データを保持する。
 トークン計算部3は、外部サーバ装置と通信を行い、検索クエリと秘密分散された分散情報とを用いて秘密計算を実行することで検索可能暗号のデータ検索トークンを生成する。
 データ検索部4は、トークン計算部3から受信するデータ検索トークンと、データ記憶部2から取得する秘匿登録データとを用いて、データ検索を実行し検索結果を出力する。
 本実施形態に係るサーバ装置1は、検索処理の問い合わせを行うクライアントが秘密鍵を持つことなく、高速にデータを抽出することができる。この理由は、データ記憶部2が、秘密分散のための秘匿登録データを保持し、トークン計算部3が、サーバ装置1に預託したデータを、サーバ装置1の管理者に開示することなく、秘密計算による分析処理を実行するからである。
 なお、上記のデータ検索システム10、20やサーバ装置100_nにおいて行われる検索方法は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
 プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Compact Disk-Read Only Memory)、CD-R(Read)、CD-R/W(Write)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 本発明の各実施形態において、各装置(システム)の各構成要素は、機能単位のブロックを示している。各装置(システム)の各構成要素の一部又は全部は、例えば図12に示すような情報処理装置500とプログラムとの任意の組み合わせにより実現される。情報処理装置500は、一例として、以下のような構成を含む。
  ・CPU(Central Processing Unit)501
  ・ROM502
  ・RAM503
  ・RAM503にロードされるプログラム504
  ・プログラム504を格納する記憶装置505
  ・記録媒体506の読み書きを行うドライブ装置507
  ・通信ネットワーク509と接続する通信インターフェース508
  ・データの入出力を行う入出力インターフェース510
  ・各構成要素を接続するバス511
 各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム504をCPU501が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム504は、例えば、予め記憶装置505やRAM503に格納されており、必要に応じてCPU501が読み出す。なお、プログラム504は、通信ネットワーク509を介してCPU501に供給されてもよいし、予め記録媒体506に格納されており、ドライブ装置507が当該プログラムを読み出してCPU501に供給してもよい。
 各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個の情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つの情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。
 また、各装置の各構成要素の一部又は全部は、その他の汎用または専用の回路 、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップ によって構成されてもよいし、バスを介して接続される複数のチップ によって構成されてもよい。
 各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
 各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 本発明によれば、第三者のサーバに秘匿化して預託したデータに対して、データを開示せずに検索処理を依頼するといった用途に適用できる。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は2015年2月9日に出願された日本出願特願2015-022891を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100_n サーバ装置
 101_n データ記憶部
 102_n トークン計算部
 103_n データ検索部
 104_n 分析処理部
 110_n 秘匿登録データ
 120_n クエリデータ
 130_n 秘匿検索結果
 140_n 秘匿分析結果
 200 秘密分散プロキシ装置
 201 登録データ生成部
 202 クエリデータ生成部
 203 秘密分散復号部
 210 登録データ
 220 検索処理要求
 230 処理結果
 240 分析結果

Claims (10)

  1.  登録データの秘密分散法による分散情報と、前記登録データの検索可能暗号による暗号文とを含む秘匿登録データを保持するデータ記憶手段と、
     外部のサーバ装置と通信を行い、検索クエリと前記分散情報とを用いて秘密計算を実行することで、前記検索可能暗号のデータ検索トークンを生成するトークン計算手段と、
     前記トークン計算手段から受信する前記データ検索トークンと、前記データ記憶手段から取得する前記秘匿登録データとから、データ検索を実行し検索結果を出力するデータ検索手段と、
    を備えるサーバ装置。
  2.  前記データ検索手段によって抽出された前記検索結果から、要求に応じて前記秘密計算を用いて分析処理を行う分析処理手段
    をさらに備える請求項1に記載のサーバ装置。
  3.  前記データ検索手段は、前記データ記憶手段に保持された前記秘匿登録データの各行に対する検索処理を、ゲート単位の処理によって並列して前記秘密計算を行う、
    請求項1又は2に記載のサーバ装置。
  4.  ネットワークで接続された請求項1乃至3のいずれか一項に記載の複数のサーバ装置とプロキシ装置とを備えるデータ検索システムであって、
     前記プロキシ装置は、
     前記複数のサーバ装置に登録される前記秘匿登録データを生成する登録データ生成手段と、
     外部から入力される分析処理要求を、前記複数のサーバ装置へ送信する秘匿化されたクエリデータへと変換するクエリデータ生成手段と、
     前記複数のサーバ装置から受信する秘匿検索結果から処理結果を復元する秘密分散復号手段と、
    を有するデータ検索システム。
  5.  外部サーバから取得する検索クエリと、登録データの秘密分散法による分散情報と前記登録データの検索可能暗号による暗号文とを含む秘匿登録データを格納するデータ記憶手段から取得する前記分散情報と、を用いて秘密計算を実行することで前記検索可能暗号のデータ検索トークンを生成し、
     生成された前記データ検索トークンと、前記データ記憶手段から取得する前記秘匿登録データとから、データ検索を実行し、検索結果を出力する
    検索方法。
  6.  前記検索結果から、要求に応じて前記秘密計算を用いて分析処理を行う
    ことを更に含む請求項5に記載の検索方法。
  7.  前記データ検索手段が、前記データ記憶手段に保持された前記秘匿登録データの各行に対する検索処理を、ゲート単位の処理によって並列して前記秘密計算を行う、
    請求項5又は6に記載の検索方法。
  8.  外部サーバから取得する検索クエリと、登録データの秘密分散法による分散情報と前記登録データの検索可能暗号による暗号文とを含む秘匿登録データを格納するデータ記憶手段から取得する前記分散情報と、を用いて秘密計算を実行することで前記検索可能暗号のデータ検索トークンを生成する機能と、
     生成された前記データ検索トークンと、前記データ記憶手段から取得する前記秘匿登録データとから、データ検索を実行し検索結果を出力する機能
    とをコンピュータに実現させる検索プログラムを格納する記録媒体。
  9.  前記検索結果から、要求に応じて前記秘密計算を用いて分析処理を行う機能
    を更に含む請求項8に記載の記録媒体。
  10.  保持された前記秘匿登録データのデータベースの各行に対する検索処理を、ゲート単位の処理によって並列して前記秘密計算を行う機能
    を更に含む請求項8又は9に記載の記録媒体。
PCT/JP2016/000595 2015-02-09 2016-02-05 サーバ装置、データ検索システム、検索方法および記録媒体 WO2016129259A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/549,580 US10417442B2 (en) 2015-02-09 2016-02-05 Server device, data search system, search method, and recording medium for extracting concealed data
JP2016574663A JP7020780B2 (ja) 2015-02-09 2016-02-05 サーバ装置、データ検索システム、検索方法および検索プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-022891 2015-02-09
JP2015022891 2015-02-09

Publications (1)

Publication Number Publication Date
WO2016129259A1 true WO2016129259A1 (ja) 2016-08-18

Family

ID=56614301

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/000595 WO2016129259A1 (ja) 2015-02-09 2016-02-05 サーバ装置、データ検索システム、検索方法および記録媒体

Country Status (3)

Country Link
US (1) US10417442B2 (ja)
JP (1) JP7020780B2 (ja)
WO (1) WO2016129259A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3531365A1 (en) * 2018-02-22 2019-08-28 Hitachi, Ltd. Computer system, connection apparatus, and processing method using transaction

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097522B2 (en) * 2015-05-21 2018-10-09 Nili Philipp Encrypted query-based access to data
US11023595B1 (en) * 2018-12-07 2021-06-01 Amazon Technologies, Inc. System and method for processing encrypted search
AU2018389418B2 (en) * 2017-12-19 2021-11-04 Nippon Telegraph And Telephone Corporation Retrieval device, retrieval method, program, and recording medium
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US11475020B2 (en) 2019-06-06 2022-10-18 International Business Machines Corporation Encryption scheme recommendation
US11907392B2 (en) * 2021-05-12 2024-02-20 Seagate Technology Llc System and method utilizing function secret sharing with conditional disclosure of secrets
CN117993020B (zh) * 2024-04-03 2024-07-09 青岛国创智能家电研究院有限公司 基于安全多方计算的家电网络图的搜索方法、装置和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004336702A (ja) * 2003-04-15 2004-11-25 Ntt Communications Kk データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム
JP2011199821A (ja) * 2010-02-24 2011-10-06 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、秘密計算方法、計算装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60035171T2 (de) * 2000-01-06 2008-02-14 International Business Machines Corp. Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen
JP4666943B2 (ja) * 2004-04-23 2011-04-06 株式会社エヌ・ティ・ティ・ドコモ Idタグ、タグリーダ、idタグセキュリティシステム及びidタグ送信復元方法
WO2010122678A1 (en) * 2009-04-23 2010-10-28 Hitachi,Ltd. Online storage service system and its data control method
US8539220B2 (en) * 2010-02-26 2013-09-17 Microsoft Corporation Secure computation using a server module
US9177058B2 (en) * 2010-11-18 2015-11-03 Google Inc. Multi-step search result retrieval
US8745384B2 (en) * 2011-08-11 2014-06-03 Cisco Technology, Inc. Security management in a group based environment
US8930691B2 (en) * 2011-08-16 2015-01-06 Microsoft Corporation Dynamic symmetric searchable encryption
CN104081390B (zh) * 2012-01-25 2017-11-03 三菱电机株式会社 数据检索装置、数据检索方法、数据检索程序、数据登记装置、数据登记方法、数据登记程序以及信息处理装置
EP2951945B1 (en) * 2013-01-29 2020-09-09 NEC Corporation Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
CN103269271B (zh) * 2013-05-23 2016-12-07 天地融科技股份有限公司 一种备份电子签名令牌中私钥的方法和***
US9069986B2 (en) * 2013-06-18 2015-06-30 International Business Machines Corporation Providing access control for public and private document fields
US9213764B2 (en) * 2013-11-22 2015-12-15 Sap Se Encrypted in-memory column-store
WO2015114947A1 (ja) * 2014-01-28 2015-08-06 日本電信電話株式会社 秘密計算方法、秘密計算システム、秘密計算サーバ、登録者端末、利用者端末及びプログラム
US9363243B2 (en) * 2014-03-26 2016-06-07 Cisco Technology, Inc. External indexing and search for a secure cloud collaboration system
US9342707B1 (en) * 2014-11-06 2016-05-17 Sap Se Searchable encryption for infrequent queries in adjustable encrypted databases
US9537838B2 (en) * 2014-12-22 2017-01-03 Sap Se Adjustable proxy re-encryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004336702A (ja) * 2003-04-15 2004-11-25 Ntt Communications Kk データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム
JP2011199821A (ja) * 2010-02-24 2011-10-06 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、秘密計算方法、計算装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KOICHI ITO ET AL.: "Kensaku Kano Himitsu Bunsan Hoshiki no Teian", IPSJ SIG NOTES, vol. 2014 -CS, no. 13, 6 March 2014 (2014-03-06), pages 1 - 6 *
MASARU IGARASHI ET AL.: "Keiryo Keisan Kano 3 Party Hitoku Kansu Keisan no Koritsuka Oyobi kore o Mochiita Secure na Database Shori", SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2011, 25 January 2011 (2011-01-25), pages 1 - 8 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3531365A1 (en) * 2018-02-22 2019-08-28 Hitachi, Ltd. Computer system, connection apparatus, and processing method using transaction

Also Published As

Publication number Publication date
US20180039792A1 (en) 2018-02-08
US10417442B2 (en) 2019-09-17
JP7020780B2 (ja) 2022-02-16
JPWO2016129259A1 (ja) 2017-11-16

Similar Documents

Publication Publication Date Title
WO2016129259A1 (ja) サーバ装置、データ検索システム、検索方法および記録媒体
US10785033B2 (en) Method for storing an object on a plurality of storage nodes
Saraladevi et al. Big data and hadoop-a study in security perspective
US9111106B2 (en) Data processing apparatus and data storage apparatus
EP2901359B1 (en) Secure private database querying with content hiding bloom filters
US9020149B1 (en) Protected storage for cryptographic materials
US9602280B2 (en) System and method for content encryption in a key/value store
JP5836506B2 (ja) 鍵生成装置、鍵生成プログラム、秘匿検索システム及び鍵配布方法
CN112000632B (zh) 密文的分享方法、介质、分享客户端及***
Kareem et al. An approach for enhancing data confidentiality in hadoop
JP6352441B2 (ja) ストリーミングデータの匿名化
WO2018047698A1 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム
Lee et al. A secure index management scheme for providing data sharing in cloud storage
Chamili et al. Searchable encryption: a review
CN105553661B (zh) 密钥管理方法和装置
Yousif et al. Information security for big data using the NTRUEncrypt method
WO2018212794A1 (en) Encrypted search cloud service with cryptographic sharing
Al-Sabri et al. Building a cloud storage encryption (cse) architecture for enhancing cloud security
JP6693503B2 (ja) 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、およびプログラム
Chen Cloud storage third-party data security scheme based on fully homomorphic encryption
Bhargavi et al. Securing BIG data: a comparative study across RSA, AES, DES, EC and ECDH
CN113609077A (zh) 一种文件检索方法、***、存储介质及设备
Mishra et al. Improved cloud security approach with threshold cryptography
Sude et al. Authenticated CRF based improved ranked multi-keyword search for multi-owner model in cloud computing
Lee et al. A study of practical proxy reencryption with a keyword search scheme considering cloud storage structure

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016574663

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15549580

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16748905

Country of ref document: EP

Kind code of ref document: A1