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

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

Info

Publication number
WO2016136201A1
WO2016136201A1 PCT/JP2016/000830 JP2016000830W WO2016136201A1 WO 2016136201 A1 WO2016136201 A1 WO 2016136201A1 JP 2016000830 W JP2016000830 W JP 2016000830W WO 2016136201 A1 WO2016136201 A1 WO 2016136201A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
search
distributed
nth
secret
Prior art date
Application number
PCT/JP2016/000830
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 JP2017501912A priority Critical patent/JP6693503B2/ja
Publication of WO2016136201A1 publication Critical patent/WO2016136201A1/ja

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present invention relates to a search system for searching for data, and more particularly, to a secret search system that can keep search conditions and held data secret when the data is distributed and held in a plurality.
  • a service in which a user deposits information in an external server device such as a cloud is known.
  • a method of concealing data by encryption or the like is generally employed.
  • the general concealment method has the following problems. Specifically, when searching for desired data from the concealed data on the server device side, the search can be performed by restoring the concealed data on the server device side. However, in such a method involving restoration on the server device side, there is a risk of data leakage from the server device.
  • a multi-party calculation (MPC) technique is known as one technique for realizing a secret search (see, for example, Patent Document 1 and Patent Document 2).
  • the MPC calculates an arbitrary function value with the secret information as an input without leaking the secret information by two or more server apparatuses having secret information in cooperation.
  • the secret search using MPC is realized as follows. First, data to be deposited is distributed and held in the two or more server devices by a secret sharing method (see, for example, Non-Patent Document 1). Then, the above function is defined as “a function that returns 1 when data including partial data is secretly distributed and stored in the server device, and returns 0 otherwise”.
  • Non-Patent Document 1 As a method for realizing MPC, there is a Shamir threshold secret sharing scheme (TSSS) described in Non-Patent Document 1. First, Non-Patent Document 1 will be described.
  • TSSS Shamir threshold secret sharing scheme
  • Threshold type secret sharing method is a method for restoring secret information by converting secret information into a plurality of pieces of shared information and collecting the number of converted pieces of distributed information that are equal to or greater than a threshold value.
  • the original secret information is not leaked from the number of pieces of shared information equal to or less than the threshold value.
  • the threshold secret sharing method (TSSS) of Non-Patent Document 1 is a method of secretly distributing the number a belonging to the finite field Zp with N server devices, and uses a k ⁇ 1 order polynomial f_a (x).
  • f_a (0) a
  • a point f_a (i) on the polynomial is distributed to the i-th server device (1 ⁇ i ⁇ N).
  • the distributed information f_a (i) is referred to as x shared information in the threshold secret sharing method (TSSS).
  • TSSS threshold secret sharing method
  • Non-Patent Document 2 describes an MPC method in which a plurality of server apparatuses that hold shared information using the threshold secret sharing method (TSSS) of Non-Patent Document 1 perform arithmetic operations without restoring secret information through cooperative calculation. Is disclosed. Next, the method of Non-Patent Document 2 will be described.
  • TSSS threshold secret sharing method
  • the polynomial f_ (a + b) (x) for distributing the secret information a + b is a polynomial f_a (x) for distributing the secret information a and a polynomial f_b (x) for distributing the secret information b.
  • f_ (a + b) (x) f_a (x) + f_b (x) mod p.
  • N (N ⁇ 1) times of communication is required when calculating the product.
  • Non-Patent Document 2 an arbitrary function that can be calculated by addition and multiplication is calculated by combining such methods of secretly distributing the sum and product of secret information.
  • Non-Patent Document 2 As described above, an arbitrary function can be calculated by the method of Non-Patent Document 2, and a character string search can be realized.
  • the confidential search using the method of Non-Patent Document 1 is realized as follows.
  • the client device requesting the search generates the distributed information for the search request data s and transmits it to each server device.
  • the N server devices share data [t′_1] _p,..., [T′_l] _p of partial information of data t held by itself, and s shared information [s] _p of s as search request data Then, [s ⁇ t′_1] _p, [s ⁇ t′_2] _p,..., [S ⁇ t′_l] _p are calculated by multi-party calculation (MPC) of Non-Patent Document 2.
  • MPC multi-party calculation
  • the difference value is 0 when there is distributed data that matches the search request data.
  • the N server apparatuses share the random number distribution information, mask the difference information by the product calculation of the secret information described in Non-Patent Document 1, and use the masked difference information as the search result distribution information. Output as.
  • Non-Patent Document 3 discloses a method for reducing the size of random number distribution information.
  • a replicated secret sharing scheme (RSSS) is used.
  • RSSS replica secret sharing method
  • adding all of b_1, b_2,..., b_ (N ⁇ 1), b_N returns to the original secret information b.
  • b_1, b_2,..., B_ (N ⁇ 1), b_N to the server device, a plurality of server devices cooperate to form b_1, b_2,..., B_ (N ⁇ 1), b_N. Only when everything is available, the secret information can be restored.
  • a combination of server apparatuses capable of restoring secret information can be arbitrarily designed depending on how b_1, b_2,..., B_ (N ⁇ 1), b_N are allocated.
  • Non-Patent Document 3 discloses a method for generating shared information by pseudo-random SSS by calculation without communication using shared information of random numbers RSSS among server devices and using the distributed information of random numbers. It is described. If this method is used, the SSS random number distribution information can be generated as needed at the time of calculation, so there is no need to distribute it in advance. Therefore, the size of the random number distribution information to be held becomes small.
  • the method of Non-Patent Document 3 is not a data that can be arbitrarily selected, but a method for reducing the size of random number distributed information.
  • the distributed data is confidential information of the user of the confidential search system, not a random number. For this reason, the method of Non-Patent Document 3 cannot be directly applied to the confidential search.
  • An object of the present invention is to provide a server device, a search method, and the like that reduce the size of data (distributed information) held by each server device without impairing the search function in a secret search system using a secret sharing method. There is to do.
  • the server device includes a data storage unit that stores distributed registration data for each symbol of secret information; and the distributed registration data stored in the data storage unit is used as search data for data obtained by concatenating a plurality of symbols.
  • the search method of the present invention is a search method for executing a search in a server device, storing distributed registration data for each symbol of secret information, and storing the distributed registration data for data obtained by concatenating a plurality of symbols.
  • the data is converted into search data, and the search data and the distributed search request data are used to communicate with other server devices, search the distributed registration data, and output the distributed search result.
  • the recording medium of the present invention stores, in a computer, distributed registration data for each symbol of secret information, converts the stored distributed registration data into search data for data obtained by concatenating a plurality of symbols, and performs the search
  • the size of data (distributed information) stored in each server device can be reduced.
  • each server device has to have all pieces of searchable partial character string shared information.
  • a process for generating shared information of secret information obtained by concatenating m symbols from secret information distributed for each symbol I do.
  • a method using a duplicate secret sharing method (first method) and a method using a Shamir threshold type secret sharing method ( There is a second method).
  • the distributed secret sharing scheme (RSSS) is converted to the Shamir threshold type.
  • a technique for converting to secret sharing (TSSS) sharing information is used.
  • MPC multi-party calculation
  • the distributed information generated by the threshold secret sharing method (TSSS) on a small body Is handled as shared information of the threshold type secret sharing method on the extension field, and the shared information is linked.
  • the secret search system includes N server devices and one client device.
  • the server device of this embodiment is one computing device in the confidential search system.
  • data stored in each server device is stored as distributed information for each symbol. Then, a pre-processing for generating shared information corresponding to partial data necessary for the search process is performed, and then a search is performed. This reduces the size of data (distributed information) stored in each server device.
  • the secret search system can determine whether or not there is data including partial data specified by the user among a plurality of data distributed and held in N server devices without decrypting the data. Also, it is possible to search without revealing data designated by the user to the server.
  • the amount of distributed data held by each server device is, for example, about 12 times the data before distribution in the first method.
  • the calculation cost is the same except for the data conversion process, and each server device can calculate the data conversion process individually. I can do it.
  • the secret search system of this embodiment does not require communication for the data conversion process and can be executed at high speed.
  • each server device holds partial data for each symbol of secret information.
  • each server device When the partial information of the m-symbol search request data is input, each server device generates shared information corresponding to the partial data for m symbols of the secret information by a process that does not involve communication. For this reason, in this embodiment, the number of communications can be reduced without increasing the amount of distributed data held in advance.
  • data can be distributed to a plurality of server devices, and any data can be searched while the data is hidden in each server device. This prevents a server device administrator from stealing data when a certain server device provides some service for entrusting secret data to an external server device. That is, unless a plurality of managers collide, it is impossible for the manager to decrypt the secret information in the server device, which contributes to protecting the secret information of the service user.
  • This embodiment has an effect of reducing the data size from approximately 1/80 to 1/1000, for example, as compared with related technology.
  • FIG. 1 is a block diagram showing a configuration of a secret search system according to the first embodiment of the present invention.
  • the secret search system includes N (N is an integer of 2 or more) server devices 100_1, 100_2,..., 100_N and a client device 200.
  • the server apparatuses 100_1 to 100_N are also referred to as first to Nth server apparatuses, respectively.
  • the client device 200 communicates with the N server devices 100_1 to 100_N. Further, the N server apparatuses 100_1 to 100_N communicate with each other.
  • FIG. 2 is a block diagram showing a configuration of the nth server device 100_n (1 ⁇ n ⁇ N).
  • the nth server device 100_n includes an nth data storage unit 101_n, an nth data conversion unit 102_n, and an nth data search unit 103_n.
  • the nth data storage unit 101_n receives the nth distributed registration data 104_n from the client device 200 to be described later, and stores it. In the search, the nth data storage unit 101_n outputs the stored nth distributed registration data to the nth data conversion unit 102_n.
  • the n-th data conversion unit 102_n converts the n-th distributed registration data stored in the n-th data storage unit 101_n into n-th search shared information (n-th search data) 105_n.
  • the n-th data search unit 103_n uses the n-th search data 105_n received from the n-th data conversion unit 102_n and the n-th distributed search request data 106_n received from the client device 200 to generate other data While communicating with each of the search units 103_1 to 103_N (excluding 103_n), the nth distributed registration data in the nth data storage unit 101_n is searched, and the nth distributed search result 107_n is output.
  • FIG. 3 is a block diagram showing the configuration of the client device 200.
  • the client device 200 includes a registered data share generation unit 201, a query data share generation unit 202, and a secret sharing decryption unit 203.
  • the registration data share generation unit 201 receives registration data 204 from an input device (not shown).
  • the registration data share generation unit 201 generates the first to Nth distributed registration data 104_1,..., 104_N using the secret sharing method for the registration data 204.
  • the registration data share generation unit 201 transmits the nth distributed registration data 104_n (1 ⁇ n ⁇ N) to the nth server device 100_n.
  • the query data share generation unit 202 receives search request data 205 from an input device (not shown).
  • the query data share generation unit 202 generates the first to Nth distributed search request data 106_1,..., 106_N using the secret sharing method for the search request data 205.
  • the query data share generation unit 202 transmits the nth distributed search request data 106_n (1 ⁇ n ⁇ N) to the nth server device 100_n.
  • the secret sharing decryption unit 203 receives the nth distributed search result 107_n from the nth server device 100_n (1 ⁇ n ⁇ N). The secret sharing decryption unit 203 restores the search result 206 using the secret sharing method for the first to Nth distributed search results 107_1,..., 107_N.
  • the secret search system performs two types of processing: (1) data registration processing and (2) data search processing.
  • 4 and 5 are flowcharts showing the data registration process and the data search process, respectively.
  • FIG. 4 is a flowchart showing the data registration processing operation of the secret search system according to the first embodiment of the present invention.
  • the secret search system inputs registration data 204 (t_1,..., T_n) to be newly distributed to the registration data share generation unit 201 of the client device 200.
  • t_1,..., T_n each correspond to one symbol of data, and each size is logq (q is a prime number, the base is 2) (step S101). In the following log, the bottom is 2 but is omitted and described as log.
  • the registration data share generation unit 201 converts the registration data 204 to the nth distributed registration data 104_n (1 ⁇ n ⁇ N) by RSS (step S102).
  • the n-th distributed registration data 104_n is a set of t_i shared information (t_ ⁇ 1, n ⁇ ,..., T ⁇ N, n ⁇ ) and b_i shared information b_ ⁇ i, n ⁇ .
  • the registration data share generation unit 201 transmits the nth distributed registration data 104_n to the nth server apparatus 100_n (1 ⁇ n ⁇ N) (step S103).
  • Step S104 The nth server device 100_n (1 ⁇ n ⁇ N) stores the received nth distributed registration data 104_n in the nth data storage unit 101_n.
  • FIG. 5 is a flowchart showing an operation at the time of data search of the secret search system according to the first embodiment of the present invention.
  • the secret search system inputs search request data 205 (s_1,..., S_m) that is data to be searched to the query data share generation unit 202 of the client device 200 (step S201).
  • s_1,..., s_m represent each character of the search request data, and each size is logq.
  • the query data share generation unit 202 is the first to Nth distributed search request data (106_1,..., 106_N) [s_1, s_2,. Is generated (step S202).
  • the query data share generation unit 202 transmits the nth distributed search request data 106_n to the nth data search unit 103_n of the nth server device 100_n.
  • logp logq ⁇ m (p and q are prime numbers, m is an arbitrary positive integer, and m> n).
  • the n-th server device 100_n (1 ⁇ n ⁇ N) reads out the n-th distributed registration data from the n-th data storage unit 101_n and transmits it to the n-th data conversion unit 102_n (step S203).
  • the distributed registration data is distributed in the form of ⁇ t_1> q,..., ⁇ T_n> q for each n character text.
  • the n-th data conversion unit 102_n receives the RSS shared data ⁇ t_1> q,..., ⁇ T_n> q received from the n-th data storage unit 101_n according to the method described in Non-Patent Document 3.
  • [T * _1] _p,..., [T * _n] _p are converted (step S204).
  • the n-th data conversion unit 102_n uses the method described in Non-Patent Document 2 and uses the fact that the calculation of the sum and the constant multiplication can be executed without requiring communication. Convert to SSS distributed data for combined data.
  • the nth data conversion unit 102_n sends [s ′] _ p as the nth search data 105_n to the nth data search unit 103_n.
  • the n-th data search unit 103_n uses the n-th search data 105_n transmitted from the n-th data conversion unit 102_n and the n-th distributed search request data 106_n transmitted from the query data share generation unit 202. Then, the distributed data [s′_0] _p,..., [S ′ _ ⁇ n ⁇ m ⁇ ] _ p is generated by the calculation of Equation 3 below (step S205).
  • the first to Nth data search units 103_1 to 103_N perform calculations as shown in the following equation 4 while communicating with each other, and the nth data search unit 103_n uses the obtained result as the nth distributed search.
  • the result 107_n is transmitted to the client apparatus 200.
  • the client apparatus 200 inputs all of the first to Nth distributed search results 107_1,..., 107_N received from the first to Nth server apparatuses 100_1,. Decoding is performed (step S206). When the decrypted result is 0, it means that there is data including search request data in the registered data. When it is not 0, it indicates that such data does not exist. .
  • the size of data (distributed information) stored in each server device can be reduced.
  • data stored in each server device is stored as shared information for each symbol. This is because the search is performed after the preprocessing for generating the shared information corresponding to the partial data necessary for the search process.
  • secret information is stored in RSSS for each symbol, and the data conversion unit converts this into TSSS distributed information by the method of Non-Patent Document 3.
  • FIG. 6 is a block diagram showing a configuration of a confidential search system according to the second embodiment of the present invention.
  • the confidential search system includes a client device 200A and first to Nth server devices 100A_1, 100A_2,..., 100A_N.
  • Server apparatuses 100A_1 to 100A_N are also referred to as first to Nth server apparatuses, respectively.
  • the client device 200A communicates with the N server devices 100A_1 to 100A_N.
  • the N server apparatuses 100A_1,..., 100A_N communicate with each other.
  • FIG. 7 is a block diagram showing a configuration of the nth server device 100A_n (1 ⁇ n ⁇ N).
  • the nth server device 100A_n (1 ⁇ n ⁇ N) includes an nth data storage unit 101A_n, an nth data conversion unit 102A_n, and an nth data search unit 103A_n.
  • the nth data storage unit 101A_n receives the nth distributed registration data 104A_n from the client device 200A and stores it.
  • the nth data storage unit 101A_n outputs the nth distributed registration data 104A_n stored at the time of the search to the nth data conversion unit 102A_n.
  • the n-th data conversion unit 102A_n converts the n-th distributed registration data stored in the n-th data storage unit 101A_n into n-th search shared information (search data) 105A_n.
  • the n-th data search unit 103A_n uses the n-th search data 105A_n received from the n-th data conversion unit 102A_n and the n-th distributed search request data 106A_n received from the client device 200A to generate other data. While communicating with each of the search units 103A_1 to 103A_N (except 103A_n), a search is performed on the nth distributed registration data in the nth data storage unit 101A_n, and an nth distributed search result 107A_n is output.
  • FIG. 8 is a block diagram showing the configuration of the client device 200A.
  • the client device 200A includes a registered data share generation unit 201A, a query data share generation unit 202A, and a secret sharing decryption unit 203A.
  • the registration data share generation unit 201A receives registration data 204A from an input device (not shown).
  • the registered data share generation unit 201A executes the shared data generation procedure of the secret sharing method to generate the first to Nth distributed registration data 104A_1, ..., distributed registration data 104A_N.
  • the registration data share generation unit 201A transmits the nth distributed registration data 104A_n (1 ⁇ n ⁇ N) to the nth server device 100A_n.
  • the query data share generation unit 202A receives search request data 205A from an input device (not shown).
  • the query data share generation unit 202A executes the shared data generation procedure of the secret sharing method to generate the first to Nth distributed search request data 106A_1,... 106A_N.
  • the query data share generation unit 202A transmits the nth distributed search request data 106A_n (1 ⁇ n ⁇ N) to the nth server device 100A_n.
  • the secret sharing decryption unit 203A receives the nth distributed search result 107A_n from the nth server device 100A_n (1 ⁇ n ⁇ N). The secret sharing decryption unit 203A executes the secret sharing decryption procedure on the first to Nth distributed search results 107A_1,..., 107A_N to restore the search result 206A.
  • the secret search system performs two types of processing: (1) data registration processing and (2) data search processing.
  • 9 and 10 are flowcharts showing the flow of data registration processing and data search processing, respectively.
  • FIG. 9 is a flowchart showing an operation at the time of data registration of the secret search system according to the second embodiment of the present invention.
  • the secret search system inputs registration data 204A (t_1,..., T_n) to be newly distributed to the registration data share generation unit 201A of the client device 200A (step S101A).
  • t_1,..., T_n each correspond to one symbol of data
  • each t_i is an element of a finite field GF (q).
  • the registration data share generation unit 201A generates a share [t_i] q of t_i by SSS for 1 ⁇ i ⁇ n, and [t_1] q,... [T_n] q is the first to Nth distributed registration data 104A_1, respectively. ,..., 104A_N (step S102A).
  • the registration data share generation unit 201A transmits the nth distributed registration data 104A_n to the nth server device 100A_n (1 ⁇ n ⁇ N) (step S103A).
  • the nth server device 100A_n (1 ⁇ n ⁇ N) stores the received nth distributed registration data 104A_n in the nth data storage unit 101A_n (step S104A).
  • FIG. 10 is a flowchart showing an operation at the time of data search of the secret search system according to the second embodiment of the present invention.
  • the secret search system inputs search request data 205A (s_1,..., S_m), which is data to be searched, to the query data share generation unit 202A of the client device 200A (step S201A).
  • s_1,..., s_m represent each character of the search request data, and each size is logq.
  • p q ⁇ m
  • s is an element of a finite field GF (q ⁇ m).
  • the query data share generation unit 202A transmits the nth distributed search request data 106A_n (1 ⁇ n ⁇ N) to the nth server device 100A_n.
  • the n-th server device 100A_n (1 ⁇ n ⁇ N) reads the n-th distributed registration data from the n-th data storage unit 101A_n and sends it to the n-th data conversion unit 102A_n (step S203A).
  • the n-th data conversion unit 102A_n converts the SSS shared information [t_1] q,..., [T_n] q received from the n-th data storage unit 101A_n into search data by the following method (step S204A). ).
  • the distributed information t_ ⁇ 1, j ⁇ , t_ ⁇ 2, j ⁇ ,. . . , T_ ⁇ n, j ⁇ , t ′ _ ⁇ i, j ⁇ t_ ⁇ i, j ⁇
  • t_ ⁇ i + m ⁇ 1 ⁇ . That is, [t′_i] _p [t_ ⁇ i ⁇
  • t_ ⁇ i + m ⁇ 1 ⁇ ] _ p. However, p q ⁇ m, and each t'_i is an element of a finite field GF (2 ⁇ q).
  • the nth data conversion unit 102A_n is [t′_0] _p,. . . , [T ′ _ ⁇ n ⁇ m ⁇ ] _ p are transmitted to the nth data search unit 103A_n as the nth search data 105A_n.
  • the nth data search unit 103A_n uses the nth search data 105A_n transmitted from the nth data conversion unit 102A_n and the nth distributed search request data 106A_n transmitted from the query data share generation unit 202A.
  • [S ′ _ ⁇ n ⁇ m ⁇ ] _ p is generated by the calculation of Equation 3 (step S205A). If any of the partial data to be searched t′_0,..., T ′ _ (nm) matches the search request data, any of s′_0,..., S ′ _ ⁇ n ⁇ m ⁇ Note that is 0.
  • the n-th data search unit 103A_n performs the calculation shown in the above equation 4, and transmits the obtained result to the client device 200A as the n-th distributed search result 107A_n.
  • the client device 200A inputs all the first to Nth distributed search results 106A_1,..., 106A_N received from the first to Nth server devices 100A_1,. Decoding is performed (step S206A). When the decrypted result is 0, it means that there is data including search request data in the registered data. When it is not 0, it indicates that such data does not exist. .
  • the size of data (distributed information) stored in each server device can be reduced.
  • data stored in each server device is stored as shared information for each symbol. This is because the search is performed after the preprocessing for generating the shared information corresponding to the partial data necessary for the search process.
  • T_ ⁇ n, j ⁇ is an element of a finite field GF (q)
  • a concatenation of m elements is an element of the finite field GF (q ⁇ m)
  • the original secret information t (t1 ,..., T_n) is distributed information for partial data of m symbols.
  • T (t_1,..., T_200)
  • t_i (1 ⁇ i ⁇ n) is each character of the text.
  • sets of character strings are distributed and stored as ⁇ t_1> q,..., ⁇ T_200> q using RSSS for each character.
  • the nth server apparatus 100_n (1 ⁇ n ⁇ 3) receives the RSSS nth distributed registration data 104_n for the search request data of 10 characters, and then stores the text stored in the nth data storage unit 101_n.
  • the RSSS shared information ⁇ t_1> q,..., ⁇ T_200> q for each character, information held by itself is input to the nth data conversion unit 102_n, and the TSSS shared information [ t * _1] _p,..., [t * _n] _p.
  • the nth server device 100_n uses the nth distributed search request data 106_n received from the client device 200 and the nth search data 105_n converted from the data in the nth data storage unit 101_n as the nth data. Input to the search unit 103_n.
  • the search request data and the partial character string are matched in the calculation of.
  • the nth data search unit 103_n outputs the distributed information of S as the nth distributed search result 107_n.
  • the nth server device 100_n transmits the nth distributed search result 107_n to the client device 200.
  • the client device 200 receives the partial information 107_1, 107_2, 107_3 of the search result S from the three server devices 100_1, 100_2, 100_3, and restores the search result S by the TSSS restoration algorithm.
  • the size of the shared information can be reduced to 1/83 compared to the related technology.
  • a configuration of a character string search system including three server devices 100A_1, 100A_2, 100A_3 and a client device 200A is shown.
  • T (t_1,..., T_200)
  • t_i (1 ⁇ i ⁇ n) is each character of the text.
  • a set of character strings is distributed and stored in TSSS as [t_1] q,..., [T_200] q for each character.
  • the n-th server device 100A_n (1 ⁇ n ⁇ 3) receives the TSSS distributed registration data 104A_n for the 10-character search request data, and then stores each text character stored in the n-th data storage unit 101A_n.
  • the shared information [t_1] q,..., [T_200] q of the SSS information t_ ⁇ 1, j ⁇ , t_ ⁇ 2, j ⁇ ,. . . , T_ ⁇ n, j ⁇ are input to the nth data conversion unit 102A_n.
  • the nth data conversion unit 102A_n t '_ ⁇ i, j ⁇ t_ ⁇ i, j ⁇
  • t_ ⁇ i + m ⁇ 1, j ⁇ Are calculated for 0 ⁇ i ⁇ nm, and [t ′ _ ⁇ 0 ⁇ ] _ p,. . . , [T ′ _ ⁇ n ⁇ m ⁇ ] _ p is transmitted to the nth data search unit 103A_n as the nth search data 105A_n.
  • ⁇ 201 ⁇ 80 1608000 bits ( ⁇ 200 KB).
  • the size of the shared information can be reduced to 1/1000 compared to the related technology.
  • a component can be deform
  • Various inventions can be formed by appropriately combining a plurality of components. For example, in the specific example of the above-described embodiment, the case where there are three server apparatuses has been described.
  • the secret search system using the secret sharing method it is possible to reduce the size of data (distributed information) held by each server device without impairing the search function. It becomes.
  • the first and second embodiments can also contribute to more advanced confidential data analysis combined with confidential search.
  • a secret data analysis system that performs some processing on data including certain partial data can be realized by combining the embodiment and a technique for calculating a function while keeping other data secret.
  • the service price is usually determined by the data size and communication fee.
  • the secret search system to which the present embodiment is applied the data size held by the server device can be reduced, and it is possible to realize a reduction in the price and promotion of use of the service using the secret search system.
  • Programs for executing this method include floppy disks (registered trademark), magnetic disks such as hard disks, optical disks such as CD-ROM (Compact Disc-Read Only Memory), DVD (digital versatile disk), magneto-optical disks (MO), It can also be stored and distributed in a recording medium such as a semiconductor memory.
  • the storage format may be any form.
  • an operating system running on a computer middleware such as database management software, network software, or the like may execute a part of each process based on an instruction of a program installed in the computer from a recording medium.
  • the recording medium is not limited to a medium independent of the computer, but also includes a recording medium in which a program transmitted via a LAN (Local Area Network) or the Internet is downloaded and stored or temporarily stored.
  • LAN Local Area Network
  • the number of recording media is not limited to one, and the case where the processing in the above embodiment is executed from a plurality of recording media is included, and the media configuration may be any configuration.
  • the computer executes each process based on a program stored in a recording medium, and may have any configuration such as a device including a personal computer or a system in which a plurality of devices are connected to a network.
  • the computer is not limited to a personal computer, but includes an arithmetic processing device included in an information processing device, and is a device or device capable of realizing the functions of this embodiment by a program.
  • a data storage unit for storing distributed registration data for each symbol of secret information;
  • a data conversion unit that converts the distributed registration data stored in the data storage unit into search data for data obtained by connecting a plurality of symbols;
  • a server device A server device.
  • the data storage unit holds the distributed registration data as distributed information of a duplicate secret sharing method for each symbol,
  • the data conversion unit executes a process of generating, for each symbol, the shared information of the duplicate secret sharing scheme stored in the data storage unit into the shared information of one Shamir's threshold secret sharing scheme for a plurality of symbols.
  • the server device according to attachment 1.
  • maintains the dispersion
  • the data conversion unit obtains the search data by executing a process of connecting the shared data of secret information stored in the data storage unit,
  • the data search unit uses the data concatenated by the data conversion unit to execute a process of performing a search on an expanded body to obtain the distributed search result.
  • the server device according to attachment 1.
  • N is an integer of 2 or more server devices each including the server device according to any one of Supplementary Notes 1 to 3, and the first to Nth server devices
  • a secret search system comprising a client device connected via a network, the client device comprising: A registration data share generating unit that generates first to Nth distributed registration data to be registered in the first to Nth server devices, respectively, from registration data; A query data share generating unit for generating first to Nth distributed search request data to be transmitted from the search request data to the first to Nth server devices, respectively; A secret shared decryption unit that decrypts the shared information of the search results from the first to Nth distributed search results received from the first to Nth server devices, respectively; A secret search system having
  • a secret search method in a search system including a client device and first to Nth (N is an integer of 2 or more) server devices connected to the client device via a network.
  • a secret search method in which data is secretly shared by a secret sharing method and stored in the first to Nth server devices, and the data stored in the first to Nth server devices can be searched confidentially,
  • the client device executes shared data generation procedure of the secret sharing method on registration data to generate first to Nth distributed registration data, and each of the first to Nth distributed registration data is the first A registration data generation step to be transmitted to the first to Nth server devices;
  • a registration data storage step in which the nth (1 ⁇ n ⁇ N) server device stores the nth distributed registration data in the nth data storage unit;
  • the client device generates first to Nth distributed search data by executing a secret data generation procedure of the secret sharing method on the search request data, and each of the first to Nth distributed search data is A search request data generation step to be transmitted to the first to Nth server devices;
  • Secret search method including
  • the client device converts the registration data into the first to Nth distributed search data by a replica secret sharing method
  • the client device converts the search request data into the first to Nth distributed search data by Shamir's threshold secret sharing method
  • the n-th server device converts the n-th distributed registration data into the n-th search data, which is shared data of the Shamir threshold secret sharing method.
  • the confidential search method according to attachment 5.
  • the client device converts the registration data into the first to N-th distributed search data by Shamir's threshold secret sharing method
  • the client device converts the search request data into the first to Nth distributed search data according to the Shamir threshold secret sharing method
  • the nth server device concatenates the nth distributed registration data and converts it into the nth search data as one data.
  • a search method for executing a search on a server device A storage step of storing the distributed registration data for each symbol of the secret information in the data storage unit;
  • a data conversion unit converts the distributed registration data stored in the data storage unit into search data for data obtained by concatenating a plurality of symbols, and
  • a data search unit performs a search for the distributed registration data in the data storage unit while communicating with a data search unit of another server device using the search data and the distributed search request data, and performs a distributed search.
  • the distributed registration data is held in the data storage unit as distributed information of a duplicate secret sharing method for each symbol
  • the data conversion unit converts the distribution information of the duplicate secret sharing scheme for each symbol stored in the data storage unit into the sharing information of one Shamir's threshold secret sharing scheme for a plurality of symbols. Get the search data by executing the process to generate, The search method according to attachment 8.
  • the storage step as the distributed registration data, the shared data of the secret information generated by Shamir's threshold secret sharing method is held in the data storage unit,
  • the data conversion unit obtains the search data by executing a process of connecting distributed data of secret information stored in the data storage unit,
  • the data search unit uses the data concatenated by the conversion procedure to execute a process of performing a search on an expanded body to obtain the distributed search result.
  • save procedure makes the said computer store the said dispersion
  • the conversion procedure generates, in the computer, the shared information of the duplicate secret sharing scheme for each symbol stored in the data storage unit into the shared information of one Shamir threshold secret sharing scheme for a plurality of symbols. Let the process be executed to obtain the search data, The search program according to attachment 11.
  • save procedure makes the said data storage part hold
  • the conversion procedure causes the computer to obtain the search data by executing a process of connecting the shared data of secret information stored in the data storage unit
  • the search procedure causes the computer to obtain the distributed search result by executing a process of performing a search by an operation on an expansion field using the data concatenated by the conversion procedure.
  • the present invention also contributes to more advanced confidential data analysis combined with confidential search.
  • a secret data analysis system that performs some processing on data including certain partial data can be realized by combining the present invention and a technique for calculating a function while keeping other data secret.
  • service prices are usually determined by the data size and communication charges. Therefore, reducing the data size held by the server device in the secret search system is considered to lead to a reduction in the price of the service using the secret search system and to promote the use of the service.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

 秘密分散法を用いた秘匿検索システムにおいて、その検索機能を損なうことなく、各サーバ装置が保持するデータのサイズを低減する。サーバ装置は、秘密情報の1シンボルごとの分散登録データを保存するデータ記憶部と、データ記憶部に保存された分散登録データを、複数シンボルを連結したデータに対する検索用データに変換するデータ変換部と、検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索部と通信を行いながら、データ記憶部の分散登録データに対する検索を行って、分散検索結果を出力するデータ検索部と、を備える。

Description

秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体
 本発明は、データを検索する検索システムに関し、特に、データを複数に分散して保持する際に、検索条件と保持されたデータを秘匿できる秘匿検索システムに関する。
 クラウドなど外部のサーバ装置に、ユーザが情報を預けるサービスなどが知られている。そのようなサービスにおいては、預けたデータが漏洩することを防ぐために、暗号化などによってデータを秘匿化する方法が一般的に採用されている。一般的な秘匿化方法には、次に述べるような問題がある。具体的には、秘匿化されたデータから所望のデータをサーバ装置側で検索する場合、秘匿化されたデータをサーバ装置側で復元することで検索が可能となる。しかしながら、このようなサーバ装置側での復元が伴う方法では、サーバ装置からのデータ漏洩のリスクが発生する。
 このため秘匿化されたデータを秘匿化したままで検索できる秘匿検索技術が、種々提案されている。
 秘匿検索を実現する一つの技術として、マルチパーティ計算(Multi-Party Computation:MPC)技術が知られている(例えば、特許文献1、特許文献2参照)。
 MPCは、それぞれ秘密情報を持つ2台以上のサーバ装置が協力して計算することで、それぞれの秘密情報を漏らすことなく、秘密情報を入力とする任意の関数値を計算する。MPCを用いて秘匿検索は、以下のように実現する。まず、預けるデータを秘密分散法(例えば、非特許文献1参照)で上記2台以上のサーバ装置に分散して保持する。
そして、上記関数として「ある部分データを含むデータが秘密分散されてサーバ装置に保存されているときに1を、そうでないときに0を返す関数」のように定義する。
 MPCの実現方法として、非特許文献1に記載されている、Shamirのしきい値型秘密分散法(Threshold Secret Sharing Scheme:TSSS)がある。まず、非特許文献1について説明する。
 しきい値型秘密分散法(TSSS)は、秘密情報を複数の分散情報に変換し、変換された分散情報をしきい値以上の個数を集めることによって秘密情報を復元する方法である。しきい値型秘密分散法では、しきい値以下の個数の分散情報からは元の秘密情報が漏れない。
 非特許文献1のしきい値秘密分散法(TSSS)は、N台のサーバ装置で有限体Zpに属する数aを秘密に分散する方法であり、k-1次多項式f_a(x)を用いる。この方法では、例えばf_a(0)=aとし、第iのサーバ装置(1≦i≦N)には、それぞれ多項式上の点f_a(i)を配る。配られる情報f_a(i)をしきい値秘密分散法(TSSS)におけるxの分散情報と呼ぶ。このとき、k台のサーバ装置が協力すると、多項式上のk個の点からk-1次多項式f_a(x)を一意に復元することができるので、秘密情報であるf_a(0)を求めることができる。
 秘密情報aを、pを法とする多項式f_a(x)を用いてN台のサーバ装置で分散するときに生成される、秘密情報aの分散情報を、[a]_p=(f_a(1),f_a(2),…,f_a(N))と記述する。このとき、識別子i(1≦i<N)を持つ第iのサーバ装置にf_a(i)が保持されているものとする。
 非特許文献2は、分散情報を非特許文献1のしきい値秘密分散法(TSSS)で保持する複数台のサーバ装置が、協力計算によって秘密情報を復元することなく算術演算を行うMPCの方法を開示する。次に、非特許文献2の方法について説明する。
 非特許文献1の方法において、秘密情報a+bを分散する多項式f_(a+b)(x)は、秘密情報aを分散する多項式f_a(x)と、秘密情報bを分散する多項式f_b(x)との和で書き表すことができる。すなわち、f_(a+b)(x)=f_a(x)+f_b(x) mod pとなる。この性質より、識別子iを持つ各サーバ装置は、秘密情報aの分散情報と秘密情報bの分散情報とから秘密情報a+bの分散情報を計算したいときには、個別に計算を行えばよい。すなわち、各サーバ装置は、f_(a+b)(i)=f_a(i)+f_b(i) mod pを個別に計算することによって、サーバ装置間の通信なしに、秘密情報の和を秘密に分散して保持することができる。
 同様に、秘密情報の積を秘密に分散することも可能である。ただし、積の計算を行う場合にはN(N-1)回の通信を要する。
 非特許文献2では、このような秘密情報の和と積を秘密に分散する方法を組み合わせて、加法と乗法で計算可能な任意の関数を計算する。
 上記の通り、非特許文献2の方法によって任意の関数が計算でき、文字列検索を実現することができる。非特許文献1の方法を用いた秘匿検索は、次のように実現される。
 検索を依頼するクライアント装置は、検索要求データsに対して、その分散情報を生成して各サーバ装置に送信する。N台のサーバ装置は、自身が保持するデータtの部分情報の分散データ[t’_1]_p,…,[t’_l]_pと、検索要求データであるsの分散情報[s]_pとから、非特許文献2のマルチパーティ計算(MPC)で[s-t’_1]_p,[s-t’_2]_p,…,[s-t’_l]_pを計算する。検索要求データと一致した分散データが存在するとき、差の値が0になることに注意する。その後、N台のサーバ装置は、乱数の分散情報を共有し、非特許文献1に記載の秘密情報の積計算によって差の情報をマスクして、マスクされた差の情報を検索結果の分散情報として出力する。
 一方、非特許文献3は、乱数の分散情報のサイズを削減する方法が開示されている。非特許文献3では、複製型秘密分散法(Replicated Secret Sharing Scheme:RSSS)が利用されている。
 まず、非特許文献3に記載された複製型秘密分散法(RSSS)の方法について説明する。RSSSは、N台のサーバ装置で有限体Zqに属する整数bを秘密に分散する方法であり、次のような方法で秘密情報を分散する。
 N-1個の乱数b_1,b_2,…,b_(N-1)を選び、b_N=b-(b_1+b_2+…+b_(N-1)) mod qとする(qは素数)。b_1,b_2,…,b_(N-1),b_Nをすべて足し合わせると、もとの秘密情報bに戻ることに注意する。このb_1,b_2,…,b_(N-1),b_Nを、サーバ装置に適当に割り当てることによって、複数台のサーバ装置が協力してb_1,b_2,…,b_(N-1),b_Nがすべて揃うときに限り、秘密情報を復元することが出来る。秘密情報を復元することが可能なサーバ装置の組み合わせは、b_1,b_2,…,b_(N-1),b_Nの割り当て方によって任意に設計が可能である。
 例えば、3台のサーバ装置があり、いずれか2台のサーバ装置が協力したときに秘密情報bが復元できるRSSSは、b=b_1+b_2+b_3となるようにb_1,b_2,b_3を生成したのち、(b_1,b_2),(b_2,b_3),(b_3,b_1)のように2つずつの値を各サーバ装置に割り当てることで実現できる。
 秘密情報bを、b=b_1+b_2+…+b_N mod qとなるようなb_1,b_2,…,b_Nを用いてRSSSでN台のサーバ装置に分散するときに生成されるbの分散情報を<b>q=(v_1,v_2,…v_n)と書くことにする。このとき、識別子i(1≦i<N)を持つサーバ装置にv_iが保持されているものとする。上記の3台のサーバ装置のうち2台によって復号できるRSSSの例では、v_1=(b_1,b_2)、v_2=(b_2,b_3)、v_3=(b_3,b_1)である。
 非特許文献3は、乱数のRSSSによる分散情報をサーバ装置間で共有しておき、この乱数の分散情報を用いて、通信を伴わない計算によって、疑似乱数のSSSによる分散情報を生成する方法を記載している。この方法を用いると、SSSの乱数の分散情報は計算時に必要に応じて生成できるので、事前に分散しておく必要がない。したがって、保持する乱数の分散情報のサイズは小さくなる。
特開2007-114494号公報 特開2012-024182号公報
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. Ronald Cramer, Ivan Damgard, Yuval Ishai, "Share Conversion, Pseudorandom Secret-Sharing and Applications to Secure Computation," Theory of Cryptography, Second Theory of Cryptography Conference(TCC),pp. 342-362, 2005.
 非特許文献1を用いた方法では、次に述べるような問題がある。nシンボルのデータT=(t_1,t_2…,t_n)に対して任意の長さの検索要求データs=(s_1,…,s_m)(ただし、n>mとする)の検索に対応するとする。この場合、上記のような検索を実行するために、各サーバ装置はSSSによるTのあらゆる部分データに対する分散情報を保持する必要がある。具体的には、非特許文献1を用いた方法では、任意の1≦i<j≦nに対して(t_i,…,t_j)の分散情報を保持する必要がある。したがって、非特許文献1を用いた方法には、元データの(t_1,t_2…,t_n)に対して、各サーバ装置が保持すべき分散情報のデータサイズが非常に大きくなるという課題がある。
 一方、非特許文献3の方法は任意に選べるデータではなく、乱数の分散情報のサイズを削減するための方法である。秘匿検索という目的において、分散されるデータは秘匿検索システムの利用者の秘密情報であり、乱数ではない。そのため、非特許文献3の方法を、秘匿検索にそのまま適用することができない。
 本発明の目的は、秘密分散法を用いた秘匿検索システムにおいて、その検索機能を損なうことなく、各サーバ装置が保持するデータ(分散情報)のサイズを低減する、サーバ装置、検索方法等を提供することにある。
 本発明のサーバ装置は、秘密情報の1シンボルごとの分散登録データを保存するデータ記憶部と;前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換するデータ変換部と;前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索部と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って、分散検索結果を出力するデータ検索部と;を有する。
 本発明の検索方法は、サーバ装置で検索を実行する検索方法であって、秘密情報の1シンボルごとの分散登録データを保存し、保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換し、前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って、分散検索結果を出力する。
 本発明の記録媒体は、コンピュータに、秘密情報の1シンボルごとの分散登録データを保存し、保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換し、前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って、分散検索結果を出力する、ことを実行させる検索プログラムを格納した記録媒体。
 本発明によれば、各サーバ装置に保存するデータ(分散情報)のサイズを削減することができる。
第1の実施形態に係る秘匿検索システムの構成を示すブロック図である。 第1の実施形態の秘匿検索システムにおけるサーバ装置の構成を示すブロック図である。 第1の実施形態の秘匿検索システムにおけるクライアント装置の構成を示すブロック図である。 第1の実施形態の秘匿検索システムにおけるデータ登録時の処理を示すフローチャートである。 第1の実施形態の秘匿検索システムにおけるデータ検索時の処理を示すフローチャートである。 第2の実施形態に係る秘匿検索システムの構成を示すブロック図である。 第2の実施形態の秘匿検索システムにおけるサーバ装置の構成を示すブロック図である。 第2の実施形態の秘匿検索システムにおけるクライアント装置の構成を示すブロック図である。 第2の実施形態の秘匿検索システムのデータ登録時の処理を示すフローチャートである。 第1の実施形態の秘匿検索システムにおけるデータ検索時の処理を示すフローチャートである。
 はじめに、本発明の実施形態の概要について説明する。
[実施形態の概要]
 関連技術による方法では、各サーバ装置は検索可能な部分文字列の分散情報を全て持つ必要があった。これに対し、本実施形態では、検索として長さmシンボル分のデータが入力されたときに、1シンボルごとに分散された秘密情報から、mシンボルを連結した秘密情報の分散情報を生成する処理を行う。
 秘密情報の分散情報を生成するために秘密情報を1シンボルごとに持つ方法として、複製型秘密分散法を用いる方法(第1の方法)と、Shamirのしきい値型秘密分散法を用いる方法(第2の方法)とがある。
 第1の方法では、1シンボルごとの複製型秘密分散法の分散情報を連結したmシンボルの分散情報に変換するために、複製型秘密分散法(RSSS)の分散情報をShamirのしきい値型秘密分散法(TSSS)の分散情報に変換する手法を利用する。このとき、分散情報のサイズが大きくなるために、元の秘密情報がうまく復元できない可能性がある。そこで、これを補正するため、分散情報を復号せずに大小比較を行うマルチパーティ計算(MPC)を利用する。
 一方、検索対象の秘密情報をしきい値型秘密分散法(TSSS)で分散する方法(第2の方法)では、小さい体上のしきい値型秘密分散法(TSSS)で生成された分散情報を、拡大体上のしきい値型秘密分散法の分散情報として扱うことで分散情報の連結を行う。
 本実施形態の秘匿検索システムは、N台のサーバ装置と1台のクライアント装置とから成る。本実施形態のサーバ装置は、秘匿検索システムの中の1つの計算装置である。
 換言すると、本実施形態では、各サーバ装置に保存するデータを1シンボルごとの分散情報として保管する。そして、検索処理時に必要な部分データに対応する分散情報を生成する前処理を行ってから検索を行うという方法を取る。これによって、各サーバ装置に保存するデータ(分散情報)のサイズを削減する。
 本実施形態の秘匿検索システムは、N個のサーバ装置に分散されて保持された複数のデータの中に、ユーザが指定した部分データを含むデータが存在するかどうかを、データを復号することなく、またユーザが指定したデータをサーバに明かすことなく検索することができる。
 このとき、各サーバ装置が保持する分散データのデータ量は、例えば、上記第1の方法で分散前のデータの12倍程度である。非特許文献2を利用した通常の秘匿検索と比較して、後述する実施形態では、データの変換処理以外は同等の計算コストであり、データの変換処理を各サーバ装置が個々に計算することが出来る。このため、本実施形態の秘匿検索システムは、データの変換処理に通信を必要とせず、高速に実行できる。
 関連技術において、任意の長さのデータを検索するときに、複数シンボルをまとめて秘密計算することで、サーバ装置間の通信の回数を減らそうとすると、あらゆる長さの部分データに対する分散データを全て持つ必要があり、保持しなければならないデータのサイズが増大するという問題があった。
 これに対して、本実施形態では、各サーバ装置は秘密情報の1シンボルごとの部分データを保持する。そして、mシンボルの検索要求データの部分情報が入力されたときに、各サーバ装置は、秘密情報のmシンボル分の部分データに対応する分散情報を、通信を伴わない処理によって生成する。このため、本実施形態では、事前に保持する分散データのデータ量を増やさずに通信回数を減らすことができる。
 本実施形態を用いれば、複数のサーバ装置にデータを分散して、各サーバ装置にデータを隠ぺいしたまま任意のデータに対する検索を行うことができる。これはあるサーバ装置で秘密のデータを外部のサーバ装置に委託する何らかのサービスを提供するときに、サーバ装置の管理者がデータを盗み出すことを防止することになる。すなわち、複数の管理者が結託しない限り、サーバ装置の中の秘密情報を管理者が復号することは不可能であり、サービス利用者の秘密情報を保護することに貢献する。
 本実施形態は、例えば、関連技術と比べて、データサイズをおよそ1/80から1/1000に削減する効果がある。
 本発明の実施形態について、図面を用いて詳細に説明する。なお、実施形態の構成を示す図において図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
[第1の実施形態]
 図1乃至図3を参照して、本発明の第1の実施形態に係る秘匿検索システムについて説明する。
[構成の説明]
 図1は、本発明の第1の実施形態に係る秘匿検索システムの構成を示すブロック図である。
 図1を参照すると、本発明の第1の実施形態に係る秘匿検索システムは、N(Nは2以上の整数)台のサーバ装置100_1、100_2、…、100_Nと、クライアント装置200とからなる。ここでは、サーバ装置100_1~100_Nを、それぞれ、第1乃至第Nのサーバ装置とも呼ぶ。クライアント装置200は、N台のサーバ装置100_1~100_Nと通信する。また、N台のサーバ装置100_1~100_Nは互いに通信する。
 図2は、第nのサーバ装置100_n(1≦n≦N)の構成を示すブロック図である。第nのサーバ装置100_nは、第nのデータ記憶部101_nと、第nのデータ変換部102_nと、第nのデータ検索部103_nとを備える。
 第nのデータ記憶部101_nは、後述するクライアント装置200から第nの分散登録データ104_nを受け、それを保存する。また、検索時には、第nのデータ記憶部101_nは、保存した第nの分散登録データを第nのデータ変換部102_nに出力する。第nのデータ変換部102_nは、第nのデータ記憶部101_nに保存された第nの分散登録データを、第nの検索用の分散情報(第nの検索用データ)105_nに変換する。
 第nのデータ検索部103_nは、第nのデータ変換部102_nから受けた第nの検索用データ105_nと、クライアント装置200から受けた第nの分散検索要求データ106_nとを用いて、他のデータ検索部103_1~103_N(103_nを除く)と互いに通信を行いながら、第nのデータ記憶部101_nの第nの分散登録データに対する検索を行って、第nの分散検索結果107_nを出力する。
 図3は、クライアント装置200の構成を示すブロック図である。クライアント装置200は、登録データシェア生成部201と、クエリデータシェア生成部202と、秘密分散復号部203とを備える。
 登録データシェア生成部201は、図示しない入力装置から登録データ204を受ける。登録データシェア生成部201は、登録データ204に対して秘密分散法を用いて、第1乃至第Nの分散登録データ104_1、…、104_Nを生成する。登録データシェア生成部201は、第nの分散登録データ104_n(1≦n≦N)を第nのサーバ装置100_nに送信する。
 クエリデータシェア生成部202は、図示しない入力装置から検索要求データ205を受ける。クエリデータシェア生成部202は、検索要求データ205に対して秘密分散法を用いて、第1乃至第Nの分散検索要求データ106_1、…、106_Nを生成する。クエリデータシェア生成部202は、第nの分散検索要求データ106_n(1≦n≦N)を第nのサーバ装置100_nに送信する。
 秘密分散復号部203は、第nのサーバ装置100_n(1≦n≦N)から第nの分散検索結果107_nを受ける。秘密分散復号部203は、第1乃至第Nの分散検索結果107_1、…、107_Nに対して秘密分散法を用いて、検索結果206を復元する。
[動作の説明]
 次に、図1から図5を用いて、本発明の第1の実施形態に係る秘匿検索システムの動作について詳細に説明する。
 本発明の第1の実施形態に係る秘匿検索システムは、(1)データ登録処理と、(2)データ検索処理と、の2種類の処理を行う。図4、5は、それぞれ、データ登録処理およびデータ検索処理を示すフローチャートである。
(データ登録処理)
 図4は、本発明の第1の実施形態における秘匿検索システムのデータ登録処理の動作を示すフローチャートである。
 新規データを第1乃至第Nのサーバ装置100_1、…、100_Nに登録するときには、以下のようにする。
 秘匿検索システムは、新規に分散したい登録データ204(t_1,…,t_n)を、クライアント装置200の登録データシェア生成部201に入力する。ただし、t_1,…,t_nはそれぞれデータの1シンボルに対応するものであり、それぞれのサイズはlogqとする(qは素数、底は2)(ステップS101)。なお、以降のlogも底は2であるが、省略してlogとして記載する。
 登録データシェア生成部201は、登録データ204をRSSによって第nの分散登録データ104_n(1≦n≦N)に変換する(ステップS102)。
 詳述すると、まず、登録データシェア生成部201は、1≦i≦nについて、t_i=t{i,1}+t_{i,2}+…+t_{i,N} mod qとなるようなt_{i,1},…,t_{i,N}を生成し、適当な組み合わせで各サーバ装置に割り当てることによって、各シンボルi (1≦i≦n)について、<t_i>q=((t_{1,1},…,t_{N,1}),(t_{1,2},…,t_{N,2}),…,(t_{1,N},…,t_{N,N}))を生成する。
 また、登録データシェア生成部201は、(n-1)q ≦ t_i < qであればb_i=nとし、b_iのSSSによる分散情報[b_i]_p=(b_{i,1},b_{i,2},…,b_{i,N})を生成する。このとき,t_{i,1}+t_{i,2}+…+t_{i,N}=t_i+b_i ・qとなることに注意する。
 第nの分散登録データ104_nは,t_iの分散情報(t_{1,n},…,t{N,n})とb_iの分散情報b_{i,n}の組とする。
 登録データシェア生成部201は、第nの分散登録データ104_nを第nのサーバ装置100_n (1≦n≦N)に送信する(ステップS103)。
 (ステップS104)第nのサーバ装置100_n(1≦n≦N)は受信した第nの分散登録データ104_nを第nのデータ記憶部101_nに保存する。
(データ検索処理)
 図5は、本発明の第1の実施形態における秘匿検索システムのデータ検索時の動作を示すフローチャートである。
 第1乃至第Nのサーバ装置100_1、…、100_Nに分散されたデータT=(t_1,t_2,…,t_n)の組に関して、ある部分データ(s_1,…,s_m)を含むデータが存在するかどうかを検索したいときには次のようにする。
 秘匿検索システムは、検索を行いたいデータである検索要求データ205 (s_1,…,s_m)を、クライアント装置200のクエリデータシェア生成部202に入力する(ステップS201)。s_1,…,s_mは検索要求データの各文字を表すものであり、それぞれのサイズはlogqである。
 クエリデータシェア生成部202は、非特許文献1のTSSSの方法で、下記数1のような形の第1乃至第Nの分散検索要求データ(106_1、…、106_N)[s_1 s_2 … s_m]_pを生成する(ステップS202)。
Figure JPOXMLDOC01-appb-M000001
そして、クエリデータシェア生成部202は、第nの分散検索要求データ106_nを第nのサーバ装置100_nの第nのデータ検索部103_nに送信する。ただし、logp=logq×mとする(p、qは素数、mは任意の正の整数でm>n)。
 第nのサーバ装置100_n(1≦n≦N)は、第nのデータ記憶部101_nから第nの分散登録データを読み出し、第nのデータ変換部102_nに送信する(ステップS203)。分散登録データはn文字のテキストそれぞれについて、<t_1>q,…,<t_n>qの形で分散されていることに注意する。
 第nのデータ変換部102_nはまず、第nのデータ記憶部101_nから受けたRSSの分散データ<t_1>q,…,<t_n>qを、非特許文献3に記載の方法でSSSの分散情報[t*_1]_p,…,[t*_n]_pに変換する(ステップS204)。
 このとき,t*_i=t_i+b_i・qとなっているので,以下の計算によってb_iに補正する。
 第nのデータ変換部102_nは、各t_iについて,[t’_i]_p=[t*_i]_p-q×[b_i]_pを計算することによって,分散情報[t’_1]_p,[t’_2]_p,…[t’_n]_pを生成する。
 第nのデータ変換部102_nは、非特許文献2に記載の方法を用いて、和と定数倍の計算は通信を要さずに実行できることを利用して、下記数2のようにmシンボルを結合したデータに関するSSSの分散データに変換する。
Figure JPOXMLDOC01-appb-M000002
 第nのデータ変換部102_nは、[s’]_pを第nの検索用データ105_nとして第nのデータ検索部103_nに送出する。
 第nのデータ検索部103_nは、第nのデータ変換部102_nから送られた第nの検索用データ105_nと、クエリデータシェア生成部202から送信された第nの分散検索要求データ106_nを用いて、下記数3の計算によって、分散データ [s’_0]_p,…,[s’_{n-m}]_pを生成する(ステップS205)。
Figure JPOXMLDOC01-appb-M000003
もし検索対象の部分データであるt’_1,…,t’_(n-m)のいずれかが検索要求データと一致した場合、s’_0,…,s’_(n-m)のいずれかが0になることに注意する。
 その後、第1乃至第Nのデータ検索部103_1~103_Nは、互いに通信しながら、下記数4のような計算を行い、第nのデータ検索部103_nは、得られた結果を第nの分散検索結果107_nとしてクライアント装置200に送信する。
Figure JPOXMLDOC01-appb-M000004
 クライアント装置200は、第1乃至第Nのサーバ装置100_1、…、100_Nから受け取った第1乃至第Nの分散検索結果107_1、…、107_Nをすべて秘密分散復号部203に入力し、検索結果206を復号する(ステップS206)。復号された結果が0であったときは、登録データの中に検索要求データを含むデータが存在することを意味し、0でなかったときは、そのようなデータは存在しなかったことを示す。
(第1の実施形態の効果)
 第1の実施形態によれば、各サーバ装置に保存するデータ(分散情報)のサイズを削減することができる。その理由は、各サーバ装置に保存するデータを1シンボルごとの分散情報として保管する。そして、検索処理時に必要な部分データに対応する分散情報を生成する前処理を行ってから検索するからである。
 第1の実施形態では、秘密情報を1シンボルごとにRSSSで保管し、データ変換部ではこれを非特許文献3の方法でTSSSの分散情報に変換する。このとき、非特許文献3の方法で変換した分散情報はt_iの分散情報ではなくt*_i=t_i+b_i・qの分散情報になっている可能性がある。そこで、t_iとともにb_iを分散しておき、[t_i]_p=[t*_i]_p-q×[b_i]_pの計算を行うことによって、分散情報の変換後も同じ秘密情報に復元されるように補正を行っている。上記数2の式によって計算される値はt’_iの分散情報であり、t’_iはqビットごとに(t_1,…,t_n)の各シンボルであるので、mシンボルの部分データに対する分散情報になっている。t’_iと検索要求データs’との差を取ったのちに乱数でマスクをかける操作は、m個のシンボルそれぞれに関して差を取ってマスクをかける操作と同様の効果がある。
[第2の実施形態]
 次に、図6乃至図8を参照して、本発明の第2の実施形態に係る秘匿検索システムについて説明する。
[構成の説明]
 図6は、本発明の第2の実施形態に係る秘匿検索システムの構成を示すブロック図である。
 図6を参照すると、第2の実施形態に係る秘匿検索システムは、クライアント装置200Aと、第1乃至第Nのサーバ装置100A_1、100A_2、…、100A_Nとを備える。サーバ装置100A_1~100A_Nは、それぞれ、第1乃至第Nのサーバ装置とも呼ばれる。クライアント装置200Aは、N台のサーバ装置100A_1~100A_Nと通信する。また、N台のサーバ装置100A_1、…、100A_Nは互いに通信する。
 図7は、第nのサーバ装置100A_n(1≦n≦N)の構成を示すブロック図である。
第nのサーバ装置100A_n(1≦n≦N)は、第nのデータ記憶部101A_nと、第nのデータ変換部102A_nと、第nのデータ検索部103A_nとを備える。
 第nのデータ記憶部101A_nは、クライアント装置200Aから第nの分散登録データ104A_nを受け、それを保存する。また、第nのデータ記憶部101A_nは、検索時に保存した第nの分散登録データ104A_nを第nのデータ変換部102A_nに出力する。第nのデータ変換部102A_nは、第nのデータ記憶部101A_nに保存された第nの分散登録データを第nの検索用の分散情報(検索用データ)105A_nに変換する。
 第nのデータ検索部103A_nは、第nのデータ変換部102A_nから受けた第nの検索用データ105A_nと、クライアント装置200Aから受けた第nの分散検索要求データ106A_nとを用いて、他のデータ検索部103A_1~103A_N(103A_nを除く)と互いに通信しながら、第nのデータ記憶部101A_nの第nの分散登録データに対する検索を行って、第nの分散検索結果107A_nを出力する。
 図8は、クライアント装置200Aの構成を示すブロック図である。クライアント装置200Aは、登録データシェア生成部201Aと、クエリデータシェア生成部202Aと、秘密分散復号部203Aとを備える。
 登録データシェア生成部201Aは、図示しない入力装置から登録データ204Aを受ける。登録データシェア生成部201Aは、秘密分散法の分散データ生成手順を実行して、第1乃至第Nの分散登録データ104A_1、…、分散登録データ104A_Nを生成する。登録データシェア生成部201Aは、第nの分散登録データ104A_n(1≦n≦N)を第nのサーバ装置100A_nに送信する。
 クエリデータシェア生成部202Aは、図示しない入力装置から検索要求データ205Aを受ける。クエリデータシェア生成部202Aは、秘密分散法の分散データ生成手順を実行して、第1乃至第Nの分散検索要求データ106A_1、…、106A_Nを生成する。クエリデータシェア生成部202Aは、第nの分散検索要求データ106A_n(1≦n≦N)を第nのサーバ装置100A_nに送信する。
 秘密分散復号部203Aは、第nのサーバ装置100A_n(1≦n≦N)から第nの分散検索結果107A_nを受ける。秘密分散復号部203Aは、第1乃至第Nの分散検索結果107A_1、…、107A_Nに対して秘密分散法の復号手順を実行して、検索結果206Aを復元する。
[動作の説明]
 次に、図6から図10を用いて、本発明の第2の実施形態に係る秘匿検索システムの動作について詳細に説明する。
 本発明の第2の実施形態に係る秘匿検索システムは、(1)データ登録処理と、(2)データ検索処理と、の2種類の処理を行う。図9、図10は、それぞれ、データ登録処理およびデータ検索処理のフローを示すフローチャートである。
(データ登録処理)
 図9は、本発明の第2の実施形態における秘匿検索システムのデータ登録時の動作を示すフローチャートである。
 新規データを第1乃至第Nのサーバ装置100A_1、…、100A_Nに登録するときには以下のようにする。
 秘匿検索システムは、新規に分散したい登録データ204A (t_1,…,t_n)をクライアント装置200Aの登録データシェア生成部201Aに入力する(ステップS101A)。ただし、t_1,…,t_nはそれぞれデータの1シンボルに対応するものであり、各t_iは有限体GF(q)の元とする。
 登録データシェア生成部201Aは、1≦i≦nについて、SSSによるt_iのシェア[t_i]qを生成し,[t_1]q,…[t_n]qをそれぞれ第1乃至第Nの分散登録データ104A_1,…,104A_Nとする(ステップS102A)。
 登録データシェア生成部201Aは、第nの分散登録データ104A_nを第nのサーバ装置100A_n (1≦n≦N)に送信する(ステップS103A)。
 第nのサーバ装置100A_n(1≦n≦N)は、受信した第nの分散登録データ104A_nを第nのデータ記憶部101A_nに保存する(ステップS104A)。
(データ検索処理)
 図10は、本発明の第2の実施形態における秘匿検索システムのデータ検索時の動作を示すフローチャートである。
 第1乃至第Nのサーバ装置100A_1、…、100A_Nに分散されたデータT=(t_1,t_2,…,t_n)の組に関して、ある部分データ(s_1,…,s_m)を含むデータが存在するかどうかを検索したいときには次のようにする。
 秘匿検索システムは、検索を行いたいデータである検索要求データ205A(s_1,…,s_m)を、クライアント装置200Aのクエリデータシェア生成部202Aに入力する(ステップS201A)。s_1,…,s_mは検索要求データの各文字を表すものであり、それぞれのサイズはlogqである。
 クエリデータシェア生成部202Aは、検索要求データ205A(s_1,…,s_m)から、SSSの分散情報[s]_p=[s_1 || s_2 || … || s_m]_pを生成する(ステップS202A)。ただし、p=q^mであり、sは有限体GF(q^m)の元である。クエリデータシェア生成部202Aは、第nの分散検索要求データ106A_n(1≦n≦N)を第nのサーバ装置100A_nに送信する。
 第nのサーバ装置100A_n(1≦n≦N)は、第nのデータ記憶部101A_nから第nの分散登録データを読み出し、第nのデータ変換部102A_nに送出する(ステップS203A)。
 第nのデータ変換部102A_nはまず、第nのデータ記憶部101A_nから受けたSSSの分散情報[t_1]q,…,[t_n]qを、以下の方法で検索用データに変換する(ステップS204A)。
 第nのデータ変換部102A_nは、各t_iについて[t_i]q=(t_{i,1},t_{i,2},...,t_{i,N})のうち、自らが保持する分散情報t_{1,j},t_{2,j},...,t_{n,j}を用いて、t’_{i,j}=t_{i,j} || t_{i+1,j} || … || t_{i+m-1,j}を0≦i≦n-mについて計算し、t’_{0},...,t’_{n-m}を得る。t’_{i,1},...,t’_{i,N}は、t’_{i}=t_{i} || … || t_{i+m-1}の分散情報である。すなわち、[t’_i]_p=[t_{i} || … || t_{i+m-1}]_pである。ただし、p=q^mであり、各t’_iは有限体GF(2^q)の元である。
 第nのデータ変換部102A_nは、[t’_0]_p,...,[t’_{n-m}]_pを第nの検索用データ105A_nとして、第nのデータ検索部103A_nに送出する。
 第nのデータ検索部103A_nは、第nのデータ変換部102A_nから送られた第nの検索用データ105A_nと、クエリデータシェア生成部202Aから送信された第nの分散検索要求データ106A_nを用いて、上記数3の計算によって、分散データ[s’_0]_p,…,[s’_{n-m}]_pを生成する(ステップS205A)。もし検索対象の部分データであるt’_0,…,t’_(n-m)のいずれかが検索要求データと一致した場合、s’_0,…,s’_{n-m}のいずれかが0になることに注意する。
 その後、第nのデータ検索部103A_nは、上記数4のような計算を行い、得られた結果を第nの分散検索結果107A_nとして、クライアント装置200Aに送信する。
 クライアント装置200Aは、第1乃至第Nのサーバ装置100A_1、…、100A_Nから受け取った第1乃至第Nの分散検索結果106A_1、…、106A_Nをすべて秘密分散復号部203Aに入力し、検索結果206Aを復号する(ステップS206A)。復号された結果が0であったときは、登録データの中に検索要求データを含むデータが存在することを意味し、0でなかったときは、そのようなデータは存在しなかったことを示す。
(第2の実施形態の効果)
 第2の実施形態によれば、各サーバ装置に保存するデータ(分散情報)のサイズを削減することができる。その理由は、各サーバ装置に保存するデータを1シンボルごとの分散情報として保管する。そして、検索処理時に必要な部分データに対応する分散情報を生成する前処理を行ってから検索するからである。
 第2の実施形態において、秘密情報は1シンボルごとにTSSSで分散されており、データ変換部ではこれをステップS204Aのt’_{i,j}=t_{i,j} || t_{i+1,j} || … || t_{i+m-1,j}のように連結する。各シンボルt_{1,j},t_{2,j},...,t_{n,j}が有限体GF(q)の元であるとき、これをm個連結したものは有限体GF(q^m)の元であり、もとの秘密情報t=(t1,…,t_n)のうちのmシンボルの部分データに対する分散情報になっている。これにより、上記第1の実施形態と同様に、mシンボル分に対する操作をまとめて実行することがでる。
[実施形態の具体例]
 上記第1の実施形態の具体例として、3台のサーバ装置100_1、100_2、100_3と、クライアント装置200とで構成された文字列検索システムの構成を示す。
 この第1の実施形態の具体例では、テキストの元データはそれぞれ最大200文字とし、T=(t_1,…,t_200)の形で表現され、t_i(1≦i≦n)はテキストの各文字を表す。3台のサーバ装置100_1、100_2、100_3には文字列の組が1文字ごとにRSSSを用いて<t_1>q,…,<t_200>qのように分散されて保管されている。各文字は8ビットで符号化されており、q=2^8とする。第1の実施形態の具体例では、クライアント装置200が検索を要求するキーワードの長さは10文字とする。すなわち、検索要求データは最大80ビットの文字列であり、p=2^80とする。
 クライアント装置200は、検索要求データとして、10文字のテキストs=(s_1,s_2,…,s_10)=“calculator”をSSSで[(“calculator”)]_p=[2^(72)・”c”+2^(64)・”a”+2^(56)・”l”+2^(48)・”c”+2^(40)・”u”+2^(32)・”l”+2^(24)・”a”+2^(16)・”t”+2^(8)・”o”+“r”]_pのように、3台のサーバ装置100_1、100_2、100_3に分散する。
 第nのサーバ装置100_n(1≦n≦3)は、10文字の検索要求データに対するRSSSの第nの分散登録データ104_nを受けたのち、第nのデータ記憶部101_nに保存された、テキストの各文字に対するRSSSの分散情報<t_1>q,…,<t_200>qのうち、自らが保持する情報を、第nのデータ変換部102_nに入力し、上記数2のようにTSSSの分散情報[t*_1]_p,…,[t*_n]_pに変換する。このとき、t*_i(=t_i mod q)は,t_i,t_i+q,t_i+2qの3種類の値を取る可能性があることに注意する。
 次に,第nのサーバ装置100_nは,各t_iについて、[t_i]_p=[t*_i]_p-q×[b_i]_pを計算する。
 その後,サーバ装置100_nは,上記で計算した[t_1]_p,...,[t_{n-m}]_pから,10文字ごとの部分文字列に対するSSSの分散情報[t’_i]_p=[2^(72)・t_{i}+2^(64)・t_{i+1}+2^(56)・t_{i+2}+2^(48)・t_{i+3}+2^(40)・t_{i+4}+2^(32)・t_{i+5}+2^(24)・t_{i+6}+2^(16)・t_{i+7}+2^(8)・t_{i+8}+t_{i+9}]_p (1≦i<191) 105_nに変換する。
 第nのサーバ装置100_nは、クライアント装置200から受けた第nの分散検索要求データ106_nと第nのデータ記憶部101_nのデータから変換された第nの検索用データ105_nとを、第nのデータ検索部103_nに入力する。
 第nのデータ検索部103_nは、入力された分散検索要求データ[(calculator)]_pと検索用データ[t’_1]_p,…,[t’_191]_pから、
[s’_1]_p=[t’_1]_p-[(calculator)]_p,

[s’_191]_p=[t’_191]_p-[(calculator)]_p
の計算で検索要求データと部分文字列とのマッチングを行う。
 ここで、ある部分文字列t’_kについて、t’_k=(“calculator”)となるとする。このとき、[s’_k]=[t’_k]_p-[(”calculator”)]_p=[0]_pとなる。
 その後、第nのデータ検索部103_nは、乱数rの分散情報[r]_pを分散し、上記数に示す式を用いて計算を行い、検索結果S=s’_1×…×s’_(191)×rの分散情報を生成する。あるs’_k=0であるため、Sの値は0となる。
 第nのデータ検索部103_nは、Sの分散情報を第nの分散検索結果107_nとして出力する。第nのサーバ装置100_nは、第nの分散検索結果107_nをクライアント装置200に送信する。
 クライアント装置200は、3台のサーバ装置100_1、100_2、100_3から、検索結果Sの部分情報107_1、107_2、107_3を受け、TSSSの復元アルゴリズムによって検索結果Sを復元する。クライアント装置200は、S=0が復号されたことを確認し、「サーバに”calculator”を含む文字列が存在する」という結果を出力する。
 第1の実施形態の具体例において、サーバ装置に保存されるテキストの分散情報のサイズは、1テキストあたりn・logp+2n・logq=200×80+2×200×8=19200ビットである。関連技術のように、部分文字列をすべて80ビットのTSSSの分散情報で保持していた場合、分散情報のサイズは、(1/2)・n・(n+1)・logp=(1/2)×200×201×80=1608000bits(≒200KB)となる。このように、第1の実施形態の具体例では、関連技術と比べて分散情報のサイズを1/83にすることができる。
 上記第2の実施形態の具体例として、3台のサーバ装置100A_1、100A_2、100A_3とクライアント装置200Aとで構成された文字列検索システムの構成を示す。
 この第2の実施形態の具体例では、テキストの元データはそれぞれ最大200文字とし、T=(t_1,…,t_200)の形で表現され、t_i(1≦i<n)はテキストの各文字を表す。3台のサーバ装置100A_1、100A_2、100A_3には文字列の組が1文字ごとにTSSSで[t_1]q,…,[t_200]qのように分散されて保管されている。各文字は8ビットで符号化されており、q=2^8とする。本具体例では、クライアント装置200Aが検索を要求するキーワードの長さは10文字とする。すなわち、検索要求データは最大80ビットの文字列であり、p=2^80とする。
 クライアント装置200Aは、検索要求データとして、10文字のテキストs=(s_1,s_2,…,s_10)=“calculator”をSSSで[(“calculator”)]_p=[2^(72)・”c”+2^(64)・”a”+2^(56)・”l”+2^(48)・”c”+2^(40)・”u”+2^(32)・”l”+2^(24)・”a”+2^(16)・”t”+2^(8)・”o”+“r”]_pのように、3台のサーバ装置100A_1、100A_2、100A_3に分散する。
 第nのサーバ装置100A_n(1≦n≦3)は、10文字の検索要求データに対するTSSSの分散登録データ104A_nを受けたのち、第nのデータ記憶部101A_nに保存された、テキストの各文字に対するSSSの分散情報[t_1]q,…,[t_200]qのうち、自らが保持する情報t_{1,j},t_{2,j},...,t_{n,j}を、第nのデータ変換部102A_nに入力する。
第nのデータ変換部102A_nは、
t’_{i,j}=t_{i,j} || t_{i+1,j} || … || t_{i+m-1,j}
を0≦i≦n-mについて計算し、[t’_{0}]_p,...,[t’_{n-m}]_pを第nの検索用データ105A_nとして、第nのデータ検索部103A_nに送信する。
 その後は、上記第1の実施形態の具体例と同様に、第nのデータ検索部103A_nは、入力された第nの分散検索要求データ[(calculator)]_pと第nの検索用データ[t’_1]_p,…,[t’_191]_pから、
[s’_1]_p=[(calculator)]_p-[t’_1]_p,

[s’_191]_p=[(calculator)]_p-[t’_191]_p,
の計算で、検索要求データと部分文字列とのマッチングを行い、第1の実施形態の具体例と同様の方法で検索結果を出力する。
 第2の実施形態の具体例において、サーバ装置に保存されるテキストの分散情報のサイズは、1テキストあたりn・logq=200×8=1600ビットである。関連技術のように、部分文字列をすべて80ビットのTSSSの分散情報で保持していた場合、分散情報のサイズは、(1/2)n(n+1)・logp=(1/2)×200×201×80=1608000bits(≒200KB)となる。このように、第2の実施形態の具体例では、関連技術と比べて分散情報のサイズを1/1000にすることができる。
 なお、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形することができる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、上記実施形態の具体例では、サーバ装置が3台ある場合で説明したが、サーバ装置がN台(Nは2以上の整数)ある場合にも同様に適用できる。
 第1、第2の実施形態によれば、秘密分散法を用いた秘匿検索システムにおいて、その検索機能を損なうことなく、各サーバ装置が保持するデータ(分散情報)のサイズを低減することが可能となる。
 第1、第2の実施形態は、秘匿検索を組み合わせたより高度な秘匿データ分析にも貢献することができる。例えば、実施形態とその他のデータを秘匿したまま関数の計算を行う技術を組み合わせることにより、ある部分データを含むデータに対して何らかの処理を行う秘匿データ分析システムを実現することができる。
 また、サーバ装置にデータを委託するクラウドサービスにおいて、サービスの価格は通常データサイズと通信料によって決定される。本実施形態を適用した秘匿検索システムによって、サーバ装置の保持するデータサイズを削減することができ、秘匿検索システムを利用したサービスの低価格化と利用促進の実現を可能にする。
 なお、第1、第2の実施形態に記載した方法は、コンピュータに実行させることができる。この方法を実行させるプログラムは、フロッピー(登録商標)ディスク、ハードディスクなどの磁気ディスク、CD-ROM(Compact Disc-Read Only Memory)、DVD(digital versatile disc)などの光ディスク、光磁気ディスク(MO)、半導体メモリなどの記録媒体に格納して頒布することもできる。
 また、この記録媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。
 また、記録媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
 さらに、記録媒体は、コンピュータと独立した媒体に限らず、LAN(Local Area Network)やインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。
 また、記録媒体は1つに限らず、複数の記録媒体から上記実施形態における処理が実行される場合も含まれ、媒体構成は何れの構成であってもよい。
 コンピュータは、記録媒体に記憶されたプログラムに基づき各処理を実行するものであって、パソコンなどからなる装置、複数の装置がネットワーク接続されたシステムなどの何れの構成であってもよい。
 また、コンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置を含み、プログラムによって本実施形態の機能を実現することが可能な機器、装置である。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) 秘密情報の1シンボルごとの分散登録データを保存するデータ記憶部と、
 前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換するデータ変換部と、
 前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索部と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って、分散検索結果を出力するデータ検索部と、
 を有するサーバ装置。
(付記2) 前記データ記憶部は、前記分散登録データを、1シンボルごとの複製型秘密分散法の分散情報として保持し、
 前記データ変換部は、前記データ記憶部に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのShamirのしきい値秘密分散法の分散情報に生成する処理を実行して前記検索用データを得る、
付記1に記載のサーバ装置。
(付記3) 前記データ記憶部は、前記分散登録データとして、Shamirのしきい値秘密分散法によって生成された秘密情報の分散データを保持し、
 前記データ変換部は、前記データ記憶部に保存された秘密情報の分散データを連結する処理を実行して前記検索用データを得、
 前記データ検索部は、前記データ変換部によって連結されたデータを用いて、拡大体上の演算で検索を行う処理を実行して前記分散検索結果を得る、
付記1に記載のサーバ装置。
(付記4) 各々が付記1乃至3のいずれか1つに記載のサーバ装置からなる第1乃至第N(Nは2以上の整数)のサーバ装置と、該第1乃至第Nのサーバ装置にネットワークを介して接続されたクライアント装置と、から成る秘匿検索システムであって、前記クライアント装置は、
 登録データから、前記第1乃至第Nのサーバ装置にそれぞれ登録されるべき第1乃至第Nの分散登録データを生成する登録データシェア生成部と、
 検索要求データから、前記第1乃至第Nのサーバ装置へそれぞれ送信するための第1乃至第Nの分散検索要求データを生成するクエリデータシェア生成部と、
 前記第1乃至第Nのサーバ装置からそれぞれ受信した第1乃至第Nの分散検索結果から、検索結果の分散情報を復号する秘密分散復号部と、
を有する秘匿検索システム。
(付記5) クライアント装置と、該クライアント装置にネットワークを介して接続された第1乃至第N(Nは2以上の整数)のサーバ装置と、を備える検索システムにおける秘匿検索方法であって、預けるデータを秘密分散法で秘密分散して前記第1乃至第Nのサーバ装置に保存し、前記第1乃至第Nのサーバ装置に保存されたデータを秘匿したまま検索できる秘匿検索方法であって、
 前記クライアント装置が、登録データに対して前記秘密分散法の分散データ生成手順を実行して第1乃至第Nの分散登録データを生成し、該第1乃至第Nの分散登録データをそれぞれ前記第1乃至第Nのサーバ装置へ送信する登録データ生成ステップと、
 前記第n(1≦n≦N)のサーバ装置が、第nの分散登録データを第nのデータ記憶部に保存する登録データ保存ステップと、
 前記クライアント装置が、検索要求データに対して前記秘密分散法の分散データ生成手順を実行して第1乃至第Nの分散検索データを生成し、該第1乃至第Nの分散検索データをそれぞれ前記第1乃至第Nのサーバ装置へ送信する検索要求データ生成ステップと、
 前記第nのサーバ装置が、前記第nのデータ記憶部に保存された前記第nの分散登録データを、複数シンボルを連結したデータに対する第nの検索用データに変換する検索データ変換ステップと、
 前記第nのサーバ装置が、前記第nの検索用データと前記第nの分散検索データとを用いて、他のサーバ装置と通信を行いながら、前記第nのデータ記憶部の前記第nの分散登録データに対する検索を行い、第nの分散検索結果を前記クライアント装置へ送信する検索ステップと、
 前記クライアント装置が、前記第1乃至第Nのサーバ装置から受信した第1乃至第Nの分散検索結果に対して、前記秘密分散法の復号手順を実行して、検索結果を復元する復元ステップと、
を含む秘匿検索方法。
(付記6) 前記登録データ生成ステップでは、前記クライアント装置が、前記登録データを複製型秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
 前記検索要求データ生成ステップでは、前記クライアント装置が、前記検索要求データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
 前記検索データ変換ステップでは、前記第nのサーバ装置が、前記第nの分散登録データを前記Shamirのしきい値秘密分散法の分散データである前記第nの検索用データに変換する、
付記5に記載の秘匿検索方法。
(付記7) 前記登録データ生成ステップでは、前記クライアント装置が、前記登録データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、 前記検索要求データ生成ステップでは、前記クライアント装置が、前記検索要求データを前記Shamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
 前記検索データ変換ステップでは、前記第nのサーバ装置が、前記第nの分散登録データを連結して一つのデータとして前記第nの検索用データに変換する、
付記5に記載の秘匿検索方法。
(付記8) サーバ装置で検索を実行する検索方法であって、
 秘密情報の1シンボルごとの分散登録データをデータ記憶部に保存する保存ステップと、
 データ変換部が、前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換する変換ステップと、
 データ検索部が、前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索部と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って、分散検索結果を出力する検索ステップと、
を含む検索方法。
(付記9) 前記保存ステップでは、前記分散登録データを、1シンボルごとの複製型秘密分散法の分散情報として前記データ記憶部に保持し、
 前記変換ステップでは、前記データ変換部が、前記データ記憶部に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのShamirのしきい値秘密分散法の分散情報に生成する処理を実行して前記検索用データを得る、
付記8に記載の検索方法。
(付記10) 前記保存ステップでは、前記分散登録データとして、Shamirのしきい値秘密分散法によって生成された秘密情報の分散データを前記データ記憶部に保持し、
 前記変換ステップでは、前記データ変換部が、前記データ記憶部に保存された秘密情報の分散データを連結する処理を実行して前記検索用データを得、
 前記検索ステップでは、前記データ検索部が、前記変換手順によって連結されたデータを用いて、拡大体上の演算で検索を行う処理を実行して前記分散検索結果を得る、
付記8に記載の検索方法。
(付記11) コンピュータであるサーバ装置に検索を実行させる検索プログラムであって、前記コンピュータに、
 秘密情報の1シンボルごとの分散登録データをデータ記憶部に保存する保存手順と、
 前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換する変換手順と、
 前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って分散検索結果を出力する検索手順と、
を実行させるための検索プログラム。
(付記12) 前記保存手順は、前記コンピュータに、前記分散登録データを、1シンボルごとの複製型秘密分散法の分散情報として前記データ記憶部に保持させ、
 前記変換手順は、前記コンピュータに、前記データ記憶部に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのShamirのしきい値秘密分散法の分散情報に生成する処理を実行させて前記検索用データを得させる、
付記11に記載の検索プログラム。
(付記13) 前記保存手順は、前記コンピュータに、前記分散登録データとして、Shamirのしきい値秘密分散法によって生成された秘密情報の分散データを前記データ記憶部に保持させ、
 前記変換手順は、前記コンピュータに、前記データ記憶部に保存された秘密情報の分散データを連結する処理を実行させて前記検索用データを得させ、
 前記検索手順は、前記コンピュータに、前記変換手順によって連結されたデータを用いて、拡大体上の演算で検索を行う処理を実行させて前記分散検索結果を得させる、
付記11に記載の検索プログラム。
 本発明は、秘匿検索を組み合わせたより高度な秘匿データ分析にも貢献する。例えば、ある部分データを含むデータに対して何らかの処理を行う秘匿データ分析システムは、本発明とその他のデータを秘匿したまま関数の計算を行う技術を組み合わせることによって実現することが可能である。
 また、サーバ装置にデータを委託するクラウドサービスなどにおいて、サービスの価格は通常データサイズと通信料によって決定される。したがって、秘匿検索システムにおけるサーバ装置の保持するデータサイズを削減することは、秘匿検索システムを利用したサービスの低価格化につながり、サービスの利用を促進するものと考えられる。
 この出願は、2015年2月23日に出願された日本出願特願2015-032573号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100_1~100_N、100_n サーバ装置
 100A_1~100A_N、100A_n サーバ装置
 101_1~101_N、101_n データ記憶部
 101A_1~101A_N、101A_n データ記憶部
 102_1~102_N、102_n データ変換部
 102A_1~102A_N、102A_n データ変換部
 103_1~103_N、103_n データ検索部
 103A_1~103A_N、103A_n データ検索部
 104_n、104A_n  分散登録データ
 105_n、105A_n  検索用データ
 106_n、106A_n  分散検索要求データ
 107_n、107A_n   分散検索結果
 200、200A クライアント装置
 201、201A  登録データシェア生成部
 202、202A  クエリデータシェア生成部
 203、203A  秘密分散復号部
 204、204A 登録データ
 205、205A 検索要求データ
 206、206A 検索結果

Claims (9)

  1.  秘密情報の1シンボルごとの分散登録データを保存するデータ記憶手段と、
     前記データ記憶手段に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換するデータ変換手段と、
     前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索手段と通信し、前記データ記憶手段の前記分散登録データに対する検索を行って、分散検索結果を出力するデータ検索手段と、
     を有するサーバ装置。
  2.  前記分散登録データは、1シンボルごとの複製型秘密分散法の分散情報として保持し、
     前記データ変換手段は、前記データ記憶手段に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのしきい値秘密分散法の分散情報に生成して前記検索用データを得る、
    請求項1に記載のサーバ装置。
  3.  前記データ記憶手段は、前記分散登録データとして、しきい値秘密分散法によって生成された秘密情報の分散データを保持し、
     前記データ変換手段は、前記データ記憶手段に保存された秘密情報の分散データを連結して前記検索用データを取得し、
     前記データ検索手段は、前記データ変換手段によって連結されたデータを用いて、拡大体上の演算で検索して前記分散検索結果を得る、
    請求項1に記載のサーバ装置。
  4.  各々が請求項1乃至3のいずれか1つに記載のサーバ装置からなる第1乃至第N(Nは2以上の整数)のサーバ装置と、該第1乃至第Nのサーバ装置にネットワークを介して接続されたクライアント装置と、から成る秘匿検索システムであって、前記クライアント装置は、
     登録データから、前記第1乃至第Nのサーバ装置にそれぞれ登録されるべき第1乃至第Nの分散登録データを生成する登録データシェア生成手段と、
     検索要求データから、前記第1乃至第Nのサーバ装置へそれぞれ送信するための第1乃至第Nの分散検索要求データを生成するクエリデータシェア生成手段と、
     前記第1乃至第Nのサーバ装置からそれぞれ受信した第1乃至第Nの分散検索結果から、検索結果の分散情報を復号する秘密分散復号手段と、
    を有する秘匿検索システム。
  5.  クライアント装置と、該クライアント装置にネットワークを介して接続された第1乃至第N(Nは2以上の整数)のサーバ装置と、を備える検索システムにおける秘匿検索方法であって、
     前記クライアント装置によって登録データに対して秘密分散法を用い生成された第1乃至第Nの分散登録データが、前記第n(1≦n≦N)のサーバ装置の第nのデータ記憶手段に第nの分散登録データとして保存され、
     前記クライアント装置が、検索要求データに対して前記秘密分散法を用いて第1乃至第Nの分散検索データを生成し、該第1乃至第Nの分散検索データをそれぞれ前記第1乃至第Nのサーバ装置へ送信し、
     前記第nのサーバ装置が、前記第nのデータ記憶手段に保存された前記第nの分散登録データを、複数シンボルを連結したデータに対する第nの検索用データに変換し、
     前記第nのサーバ装置が、前記第nの検索用データと前記第nの分散検索データとを用いて、他のサーバ装置と通信を行いながら、前記第nのデータ記憶手段の前記第nの分散登録データに対する検索を行い、第nの分散検索結果を前記クライアント装置へ送信し、
     前記クライアント装置が、前記第1乃至第Nのサーバ装置から受信した第1乃至第Nの分散検索結果に対して、前記秘密分散法の復号手順を実行して、検索結果を復元する、
    秘匿検索方法。
  6.  前記登録データ生成ステップでは、前記クライアント装置が、前記登録データを複製型秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
     前記検索要求データ生成ステップでは、前記クライアント装置が、前記検索要求データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
     前記検索データ変換ステップでは、前記第nのサーバ装置が、前記第nの分散登録データを前記Shamirのしきい値秘密分散法の分散データである前記第nの検索用データに変換する、
    請求項5に記載の秘匿検索方法。
  7.  前記登録データ生成ステップでは、前記クライアント装置が、前記登録データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
     前記検索要求データ生成ステップでは、前記クライアント装置が、前記検索要求データを前記Shamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
     前記検索データ変換ステップでは、前記第nのサーバ装置が、前記第nの分散登録データを連結して一つのデータとして前記第nの検索用データに変換する、
    請求項5に記載の秘匿検索方法。
  8.  サーバ装置で検索を実行する検索方法であって、
     秘密情報の1シンボルごとの分散登録データを、複数シンボルを連結したデータに対する検索用データに変換し、
     前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って、分散検索結果を出力する、
    検索方法。
  9. コンピュータに、
     秘密情報の1シンボルごとの分散登録データを、複数シンボルを連結したデータに対する検索用データに変換し、
     前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って分散検索結果を出力する、ことを実行させる検索プログラムを格納した記録媒体。
PCT/JP2016/000830 2015-02-23 2016-02-17 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体 WO2016136201A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017501912A JP6693503B2 (ja) 2015-02-23 2016-02-17 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-032573 2015-02-23
JP2015032573 2015-02-23

Publications (1)

Publication Number Publication Date
WO2016136201A1 true WO2016136201A1 (ja) 2016-09-01

Family

ID=56788291

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/000830 WO2016136201A1 (ja) 2015-02-23 2016-02-17 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体

Country Status (2)

Country Link
JP (1) JP6693503B2 (ja)
WO (1) WO2016136201A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733790A (zh) * 2018-05-11 2018-11-02 广州虎牙信息科技有限公司 数据排序方法、装置、服务器和存储介质
CN112000979A (zh) * 2019-06-21 2020-11-27 华控清交信息科技(北京)有限公司 隐私数据的数据库操作方法、系统及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DAI IKARASHI ET AL.: "O(1) Bits Communication Bit Decomposition and O(|p'|) Bits Communication Modulus Conversion for Small k Secret-Sharing-Based Secure Computation", CSS2013 COMPUTER SECURITY SYMPOSIUM 2013, vol. 2013, no. 4, 14 October 2013 (2013-10-14), pages 785 - 792 *
KUNIHIKO HARADA: "Tochosha ni Taishite Anzen na Network Fugoka", GRADUATE SCHOOL OF INFORMATION SCIENCE AND TECHNOLOGY, 7 February 2006 (2006-02-07), pages 1 - 2, Retrieved from the Internet <URL:http://www.i.u-tokyo.ac.jp/edu/course/mi/master/2005/1/harada.pdf> [retrieved on 20160426] *
MASANORI SHIMURA ET AL.: "k,n) Himitsu Bunsanjo deno Kankei Database no Kozo Enzan no Jitsugen", 2010 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY SCIS2010, vol. 3B2-3, 19 January 2010 (2010-01-19), pages 1 - 6 *
RYO KIKUCHI ET AL.: "Secret Sharing Schemes with Conversion Protocol to Achieve Short Share-Size and Extendibility to Multiparty Computation", LNCS, INFORMATION SECURITY AND PRIVACY, vol. 7959, 1 July 2013 (2013-07-01), pages 419 - 434, XP047032254 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733790A (zh) * 2018-05-11 2018-11-02 广州虎牙信息科技有限公司 数据排序方法、装置、服务器和存储介质
CN108733790B (zh) * 2018-05-11 2021-07-02 广州虎牙信息科技有限公司 数据排序方法、装置、服务器和存储介质
CN112000979A (zh) * 2019-06-21 2020-11-27 华控清交信息科技(北京)有限公司 隐私数据的数据库操作方法、系统及存储介质
CN112000979B (zh) * 2019-06-21 2023-07-04 华控清交信息科技(北京)有限公司 隐私数据的数据库操作方法、系统及存储介质

Also Published As

Publication number Publication date
JP6693503B2 (ja) 2020-05-13
JPWO2016136201A1 (ja) 2017-11-30

Similar Documents

Publication Publication Date Title
EP3058678B1 (en) System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
Stanek et al. A secure data deduplication scheme for cloud storage
EP3075098B1 (en) Server-aided private set intersection (psi) with data transfer
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
Baldimtsi et al. Sorting and searching behind the curtain
Mahalakshmi et al. Public auditing scheme for integrity verification in distributed cloud storage system
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
CN110689349B (zh) 一种区块链中的交易哈希值存储和搜索方法及装置
EP2103032B1 (en) Privacy enhanced comparison of data sets
Erkin et al. Privacy-preserving distributed clustering
WO2016129259A1 (ja) サーバ装置、データ検索システム、検索方法および記録媒体
CN113157778B (zh) 分布式数据仓库的可代理查询方法、系统、设备及介质
CN114528331A (zh) 基于区块链的数据查询方法及装置、介质、设备
Yagoub et al. An adaptive and efficient fully homomorphic encryption technique
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
WO2016136201A1 (ja) 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、および記録媒体
CN113630250A (zh) 基于数据加密的模型训练方法及系统
CN115552838A (zh) 使用多方计算和k-匿名技术以保护保密信息
Salmani An efficient, verifiable, and dynamic searchable symmetric encryption with forward privacy
CN117349685A (zh) 一种通信数据的聚类方法、系统、终端及介质
CN116596658A (zh) 一种计算可控的多方安全信用评估方法及装置
CN116248289A (zh) 基于密文属性加密的工业互联网标识解析访问控制方法
Yoosuf et al. Fogdedupe: A fog-centric deduplication approach using multi-key homomorphic encryption technique
Omote et al. D2-POR: direct repair and dynamic operations in network coding-based proof of retrievability
Omote et al. DD-POR: Dynamic operations and direct repair in network coding-based proof of retrievability

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017501912

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16754953

Country of ref document: EP

Kind code of ref document: A1