JP6693503B2 - Secret search system, server device, secret search method, search method, and program - Google Patents

Secret search system, server device, secret search method, search method, and program Download PDF

Info

Publication number
JP6693503B2
JP6693503B2 JP2017501912A JP2017501912A JP6693503B2 JP 6693503 B2 JP6693503 B2 JP 6693503B2 JP 2017501912 A JP2017501912 A JP 2017501912A JP 2017501912 A JP2017501912 A JP 2017501912A JP 6693503 B2 JP6693503 B2 JP 6693503B2
Authority
JP
Japan
Prior art keywords
data
search
distributed
nth
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017501912A
Other languages
Japanese (ja)
Other versions
JPWO2016136201A1 (en
Inventor
一真 大原
一真 大原
俊則 荒木
俊則 荒木
古川 潤
潤 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2016136201A1 publication Critical patent/JPWO2016136201A1/en
Application granted granted Critical
Publication of JP6693503B2 publication Critical patent/JP6693503B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Description

本発明は、データを検索する検索システムに関し、特に、データを複数に分散して保持する際に、検索条件と保持されたデータを秘匿できる秘匿検索システムに関する。   The present invention relates to a search system for searching data, and more particularly to a secret search system capable of concealing a search condition and held data when the data is distributed and held in plural.

クラウドなど外部のサーバ装置に、ユーザが情報を預けるサービスなどが知られている。そのようなサービスにおいては、預けたデータが漏洩することを防ぐために、暗号化などによってデータを秘匿化する方法が一般的に採用されている。一般的な秘匿化方法には、次に述べるような問題がある。具体的には、秘匿化されたデータから所望のデータをサーバ装置側で検索する場合、秘匿化されたデータをサーバ装置側で復元することで検索が可能となる。しかしながら、このようなサーバ装置側での復元が伴う方法では、サーバ装置からのデータ漏洩のリスクが発生する。   There is known a service in which a user deposits information in an external server device such as a cloud. In such a service, a method of concealing data by encryption or the like is generally adopted in order to prevent the deposited data from being leaked. The general concealment method has the following problems. Specifically, when the server device side searches for the desired data from the concealed data, the retrieval can be performed by restoring the concealed data on the server device side. However, with such a method involving restoration on the server device side, there is a risk of data leakage from the server device.

このため秘匿化されたデータを秘匿化したままで検索できる秘匿検索技術が、種々提案されている。   For this reason, various secret search technologies have been proposed that can search the concealed data while keeping it secret.

秘匿検索を実現する一つの技術として、マルチパーティ計算(Multi−Party Computation:MPC)技術が知られている(例えば、特許文献1、特許文献2参照)。   A multi-party computation (MPC) technique is known as one technique for realizing a secret search (see, for example, Patent Documents 1 and 2).

MPCは、それぞれ秘密情報を持つ2台以上のサーバ装置が協力して計算することで、それぞれの秘密情報を漏らすことなく、秘密情報を入力とする任意の関数値を計算する。MPCを用いて秘匿検索は、以下のように実現する。まず、預けるデータを秘密分散法(例えば、非特許文献1参照)で上記2台以上のサーバ装置に分散して保持する。
そして、上記関数として「ある部分データを含むデータが秘密分散されてサーバ装置に保存されているときに1を、そうでないときに0を返す関数」のように定義する。
In MPC, two or more server devices each having secret information cooperate with each other to calculate an arbitrary function value to which secret information is input, without leaking each secret information. The confidential search using MPC is realized as follows. First, the data to be deposited is distributed and held in the two or more server devices by the secret sharing method (see Non-Patent Document 1, for example).
Then, the function is defined as "a function that returns 1 when data including a certain partial data is secretly shared and stored in the server device, and returns 0 when it is not".

MPCの実現方法として、非特許文献1に記載されている、Shamirのしきい値型秘密分散法(Threshold Secret Sharing Scheme:TSSS)がある。まず、非特許文献1について説明する。   As an implementation method of MPC, there is Shamir's threshold secret sharing scheme (TSSS) described in Non-Patent Document 1. First, Non-Patent Document 1 will be described.

しきい値型秘密分散法(TSSS)は、秘密情報を複数の分散情報に変換し、変換された分散情報をしきい値以上の個数を集めることによって秘密情報を復元する方法である。しきい値型秘密分散法では、しきい値以下の個数の分散情報からは元の秘密情報が漏れない。   The threshold type secret sharing method (TSSS) is a method of restoring secret information by converting the secret information into a plurality of pieces of shared information and collecting a number of pieces of the converted shared information equal to or larger than a threshold value. In the threshold type secret sharing method, the original secret information is not leaked from the number of pieces of shared information equal to or less than the threshold value.

非特許文献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)を求めることができる。   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 among N server devices, and uses a k−1 order polynomial f_a (x). In this method, for example, f_a (0) = a, and points f_a (i) on the polynomial are distributed to the i-th server device (1 ≦ i ≦ N). The distributed information f_a (i) is called distribution information of x in the threshold secret sharing scheme (TSSS). At this time, if the k server devices cooperate, the k−1-degree polynomial f_a (x) can be uniquely restored from the k points on the polynomial, and thus the secret information f_a (0) must be obtained. You can

秘密情報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)が保持されているものとする。   The distribution information of the secret information a, which is generated when the secret information a is distributed by N server devices using the polynomial f_a (x) modulo p, is [a] _p = (f_a (1) , F_a (2), ..., f_a (N)). At this time, it is assumed that f_a (i) is held in the i-th server device having the identifier i (1 ≦ i <N).

非特許文献2は、分散情報を非特許文献1のしきい値秘密分散法(TSSS)で保持する複数台のサーバ装置が、協力計算によって秘密情報を復元することなく算術演算を行うMPCの方法を開示する。次に、非特許文献2の方法について説明する。   Non-Patent Document 2 is an MPC method in which a plurality of server devices that hold distributed information by the threshold secret sharing method (TSSS) of Non-Patent Document 1 perform arithmetic operations without restoring secret information by cooperative calculation. Is disclosed. Next, the method of Non-Patent Document 2 will be described.

非特許文献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を個別に計算することによって、サーバ装置間の通信なしに、秘密情報の和を秘密に分散して保持することができる。   In the method of Non-Patent Document 1, a polynomial f_ (a + b) (x) that disperses secret information a + b is a polynomial f_a (x) that disperses secret information a and a polynomial f_b (x) that disperses secret information b. Can be written in Japanese. That is, f_ (a + b) (x) = f_a (x) + f_b (x) mod p. Due to this property, each server device having the identifier i may individually calculate the shared information of the secret information a + b from the shared information of the secret information a and the shared information of the secret information b. That is, each server device individually calculates f_ (a + b) (i) = f_a (i) + f_b (i) mod p to secretly distribute the sum of the secret information without communication between the server devices. Can be held.

同様に、秘密情報の積を秘密に分散することも可能である。ただし、積の計算を行う場合にはN(N−1)回の通信を要する。   Similarly, it is possible to secretly distribute the product of secret information. However, communication of N (N-1) times is required to calculate the product.

非特許文献2では、このような秘密情報の和と積を秘密に分散する方法を組み合わせて、加法と乗法で計算可能な任意の関数を計算する。   In Non-Patent Document 2, a method of secretly distributing the sum and product of such secret information is combined to calculate an arbitrary function that can be calculated by addition and multiplication.

上記の通り、非特許文献2の方法によって任意の関数が計算でき、文字列検索を実現することができる。非特許文献1の方法を用いた秘匿検索は、次のように実現される。   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 secret search using the method of Non-Patent Document 1 is realized as follows.

検索を依頼するクライアント装置は、検索要求データ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に記載の秘密情報の積計算によって差の情報をマスクして、マスクされた差の情報を検索結果の分散情報として出力する。   The client device requesting the search generates the distributed information for the search request data s and sends it to each server device. Each of the N server devices has distributed data [t'_1] _p, ..., [t'_l] _p of partial information of the data t held by itself, and distributed information [s] _p of s which is search request data. Then, [s-t'_1] _p, [s-t'_2] _p, ..., [s-t'_l] _p are calculated by the multi-party calculation (MPC) of Non-Patent Document 2. Note that the difference value becomes 0 when there is distributed data that matches the search request data. After that, the N server devices 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 share the masked difference information as the search result distribution information. Output as.

一方、非特許文献3は、乱数の分散情報のサイズを削減する方法が開示されている。非特許文献3では、複製型秘密分散法(Replicated Secret Sharing Scheme:RSSS)が利用されている。   On the other hand, Non-Patent Document 3 discloses a method of reducing the size of distributed information of random numbers. In Non-Patent Document 3, a replicated secret sharing scheme (RSSS) is used.

まず、非特許文献3に記載された複製型秘密分散法(RSSS)の方法について説明する。RSSSは、N台のサーバ装置で有限体Zqに属する整数bを秘密に分散する方法であり、次のような方法で秘密情報を分散する。   First, the method of the replica secret sharing method (RSSS) described in Non-Patent Document 3 will be described. RSSS is a method of secretly distributing integers b belonging to a finite field Zq among N server devices, and secret information is distributed by the following method.

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の割り当て方によって任意に設計が可能である。   , N_1 random numbers b_1, b_2, ..., B_ (N-1) are selected, and b_N = b- (b_1 + b_2 + ... + b_ (N-1)) mod q (q is a prime number). Note that when b_1, b_2, ..., b_ (N-1), b_N are all added, the original secret information b is restored. By appropriately allocating b_1, b_2, ..., b_ (N-1), b_N to the server apparatus, a plurality of server apparatuses cooperate to obtain b_1, b_2, ..., b_ (N-1), b_N. The secret information can be restored only when all items are gathered. A combination of server devices capable of restoring the secret information can be arbitrarily designed depending on how b_1, b_2, ..., B_ (N-1), b_N are assigned.

例えば、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つずつの値を各サーバ装置に割り当てることで実現できる。   For example, if there are three server devices and the RSSS that can restore the secret information b when any two server devices cooperate, after generating b_1, b_2, and b_3 so that b = b_1 + b_2 + b_3, (b_1 , B_2), (b_2, b_3), (b_3, b_1), each two values are assigned to each server device.

秘密情報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)である。   The distribution information of b generated when the secret information b is distributed to N server devices by RSSS using b_1, b_2, ..., b_N such that b = b_1 + b_2 + ... + b_N mod q <b> q = (V_1, v_2, ... v_n) will be written. At this time, it is assumed that v_i is held in the server device having the identifier i (1 ≦ i <N). In the example of RSSS that can be decrypted by two of the above three server devices, v_1 = (b_1, b_2), v_2 = (b_2, b_3), v_3 = (b_3, b_1).

非特許文献3は、乱数のRSSSによる分散情報をサーバ装置間で共有しておき、この乱数の分散情報を用いて、通信を伴わない計算によって、疑似乱数のSSSによる分散情報を生成する方法を記載している。この方法を用いると、SSSの乱数の分散情報は計算時に必要に応じて生成できるので、事前に分散しておく必要がない。したがって、保持する乱数の分散情報のサイズは小さくなる。   Non-Patent Document 3 discloses a method of sharing disperse information based on a random number RSSS between server devices, and using the disperse information about the random number to generate the disperse information based on the SSS of a pseudo-random number by calculation without communication. It has been described. When this method is used, the SSS random number distribution information can be generated at the time of calculation as needed, and therefore it is not necessary to be distributed in advance. Therefore, the size of the distributed random number information is small.

特開2007−114494号公報JP, 2007-114494, A 特開2012−024182号公報JP 2012-024182A

Adi Shamir, “How to Share a Secret,” Commun. ACM 22(11), pp.612−613, 1979.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.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.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)に対して、各サーバ装置が保持すべき分散情報のデータサイズが非常に大きくなるという課題がある。   The method using Non-Patent Document 1 has the following problems. It is assumed that n-symbol data T = (t_1, t_2 ..., T_n) is searched for search request data s = (s_1, ..., s_m) (where n> m). In this case, in order to execute the search as described above, each server device needs to hold the distributed information for every partial data of T by SSS. Specifically, in the method using Non-Patent Document 1, it is necessary to hold the shared information of (t_i, ..., T_j) for arbitrary 1 ≦ i <j ≦ n. Therefore, the method using Non-Patent Document 1 has a problem that the data size of the shared information to be held by each server device is very large with respect to the original data (t_1, t_2 ..., t_n).

一方、非特許文献3の方法は任意に選べるデータではなく、乱数の分散情報のサイズを削減するための方法である。秘匿検索という目的において、分散されるデータは秘匿検索システムの利用者の秘密情報であり、乱数ではない。そのため、非特許文献3の方法を、秘匿検索にそのまま適用することができない。   On the other hand, the method of Non-Patent Document 3 is not a data that can be arbitrarily selected, but is a method for reducing the size of random number distributed information. For the purpose of secret search, the distributed data is the secret information of the user of the secret search system and is not a random number. Therefore, the method of Non-Patent Document 3 cannot be directly applied to the secret search.

本発明の目的は、秘密分散法を用いた秘匿検索システムにおいて、その検索機能を損なうことなく、各サーバ装置が保持するデータ(分散情報)のサイズを低減する、サーバ装置、検索方法等を提供することにある。   An object of the present invention is to provide a server device, a search method, etc. in a secret search system using a secret sharing method, which reduces the size of data (distributed information) held by each server device without impairing its search function. To do.

本発明のサーバ装置は、秘密情報の1シンボルごとの分散登録データを保存するデータ記憶部と;前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換するデータ変換部と;前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索部と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って、分散検索結果を出力するデータ検索部と;を有する。   A server device of the present invention 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 as search data for data in which a plurality of symbols are linked. A data conversion unit for converting; using the search data and the distributed search request data, performing a search for the distributed registration data in the data storage unit while communicating with a data search unit of another server device, And a data search unit for outputting the distributed search result.

本発明の検索方法は、サーバ装置で検索を実行する検索方法であって、秘密情報の1シンボルごとの分散登録データを保存し、保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換し、前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って、分散検索結果を出力する。   A search method of the present invention is a search method for executing a search in a server device, in which distributed registration data for each symbol of secret information is stored, and the stored distributed registration data is used for data obtained by concatenating a plurality of symbols. The data is converted into search data, the search data and the distributed search request data are used to communicate with another server device, the distributed registration data is searched, and the distributed search result is output.

本発明のプログラムは、コンピュータに、秘密情報の1シンボルごとの分散登録データを保存し、保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換し、前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って、分散検索結果を出力する、ことを実行させる検索プログラム
A program of the present invention stores, in a computer, distributed registration data for each symbol of secret information, converts the saved distributed registration data into search data for data in which a plurality of symbols are linked, and searches the search data. and using the distributed search request data, communicate with other server devices, and perform a search for the distributed registration data, distributed search results outputs a search program for executing the.

本発明によれば、各サーバ装置に保存するデータ(分散情報)のサイズを削減することができる。   According to the present invention, the size of data (distributed information) stored in each server device can be reduced.

第1の実施形態に係る秘匿検索システムの構成を示すブロック図である。It is a block diagram which shows the structure of the confidential search system which concerns on 1st Embodiment. 第1の実施形態の秘匿検索システムにおけるサーバ装置の構成を示すブロック図である。It is a block diagram which shows the structure of the server apparatus in the confidential search system of 1st Embodiment. 第1の実施形態の秘匿検索システムにおけるクライアント装置の構成を示すブロック図である。It is a block diagram which shows the structure of the client apparatus in the confidential search system of 1st Embodiment. 第1の実施形態の秘匿検索システムにおけるデータ登録時の処理を示すフローチャートである。It is a flow chart which shows processing at the time of data registration in the secret search system of a 1st embodiment. 第1の実施形態の秘匿検索システムにおけるデータ検索時の処理を示すフローチャートである。It is a flow chart which shows processing at the time of data search in the secret search system of a 1st embodiment. 第2の実施形態に係る秘匿検索システムの構成を示すブロック図である。It is a block diagram which shows the structure of the confidential search system which concerns on 2nd Embodiment. 第2の実施形態の秘匿検索システムにおけるサーバ装置の構成を示すブロック図である。It is a block diagram which shows the structure of the server apparatus in the confidential search system of 2nd Embodiment. 第2の実施形態の秘匿検索システムにおけるクライアント装置の構成を示すブロック図である。It is a block diagram which shows the structure of the client apparatus in the secret search system of 2nd Embodiment. 第2の実施形態の秘匿検索システムのデータ登録時の処理を示すフローチャートである。It is a flowchart which shows the process at the time of data registration of the confidential search system of 2nd Embodiment. 第1の実施形態の秘匿検索システムにおけるデータ検索時の処理を示すフローチャートである。It is a flow chart which shows processing at the time of data search in the secret search system of a 1st embodiment.

はじめに、本発明の実施形態の概要について説明する。
[実施形態の概要]
First, the outline of the embodiment of the present invention will be described.
[Outline of Embodiment]

関連技術による方法では、各サーバ装置は検索可能な部分文字列の分散情報を全て持つ必要があった。これに対し、本実施形態では、検索として長さmシンボル分のデータが入力されたときに、1シンボルごとに分散された秘密情報から、mシンボルを連結した秘密情報の分散情報を生成する処理を行う。   In the method according to the related art, each server device needs to have all the distributed information of searchable partial character strings. On the other hand, in the present embodiment, when data of length m symbols is input as a search, a process of generating distributed information of secret information in which m symbols are concatenated from secret information distributed for each symbol. I do.

秘密情報の分散情報を生成するために秘密情報を1シンボルごとに持つ方法として、複製型秘密分散法を用いる方法(第1の方法)と、Shamirのしきい値型秘密分散法を用いる方法(第2の方法)とがある。   As a method of having secret information for each symbol to generate shared information of secret information, a method using a duplicate secret sharing method (first method) and a method using Shamir's threshold secret sharing method ( The second method).

第1の方法では、1シンボルごとの複製型秘密分散法の分散情報を連結したmシンボルの分散情報に変換するために、複製型秘密分散法(RSSS)の分散情報をShamirのしきい値型秘密分散法(TSSS)の分散情報に変換する手法を利用する。このとき、分散情報のサイズが大きくなるために、元の秘密情報がうまく復元できない可能性がある。そこで、これを補正するため、分散情報を復号せずに大小比較を行うマルチパーティ計算(MPC)を利用する。   In the first method, the shared information of the replicated secret sharing scheme (RSSS) is converted to the shared information of the m-symbols by converting the shared information of the replicated secret sharing scheme for each symbol into the Shamir threshold type. A method of converting to shared information of the secret sharing method (TSSS) is used. At this time, since the size of the shared information becomes large, the original secret information may not be restored properly. Therefore, in order to correct this, multi-party calculation (MPC) that compares the magnitudes without decoding the shared information is used.

一方、検索対象の秘密情報をしきい値型秘密分散法(TSSS)で分散する方法(第2の方法)では、小さい体上のしきい値型秘密分散法(TSSS)で生成された分散情報を、拡大体上のしきい値型秘密分散法の分散情報として扱うことで分散情報の連結を行う。   On the other hand, in the method of distributing the secret information to be searched by the threshold type secret sharing method (TSSS) (second method), the shared information generated by the small body threshold type secret sharing method (TSSS) The distributed information is connected by treating as the shared information of the threshold secret sharing method on the extension field.

本実施形態の秘匿検索システムは、N台のサーバ装置と1台のクライアント装置とから成る。本実施形態のサーバ装置は、秘匿検索システムの中の1つの計算装置である。   The confidential search system according to the present embodiment includes N server devices and one client device. The server device of this embodiment is one computing device in the confidential search system.

換言すると、本実施形態では、各サーバ装置に保存するデータを1シンボルごとの分散情報として保管する。そして、検索処理時に必要な部分データに対応する分散情報を生成する前処理を行ってから検索を行うという方法を取る。これによって、各サーバ装置に保存するデータ(分散情報)のサイズを削減する。   In other words, in the present embodiment, the data stored in each server device is stored as shared information for each symbol. Then, a method of performing a pre-process for generating shared information corresponding to the partial data required during the search process and then performing the search is adopted. This reduces the size of data (distributed information) stored in each server device.

本実施形態の秘匿検索システムは、N個のサーバ装置に分散されて保持された複数のデータの中に、ユーザが指定した部分データを含むデータが存在するかどうかを、データを復号することなく、またユーザが指定したデータをサーバに明かすことなく検索することができる。   The confidential search system according to the present embodiment determines whether or not there is data including partial data designated by the user among a plurality of data distributed and held by N server devices without decrypting the data. Also, the data specified by the user can be searched without revealing it to the server.

このとき、各サーバ装置が保持する分散データのデータ量は、例えば、上記第1の方法で分散前のデータの12倍程度である。非特許文献2を利用した通常の秘匿検索と比較して、後述する実施形態では、データの変換処理以外は同等の計算コストであり、データの変換処理を各サーバ装置が個々に計算することが出来る。このため、本実施形態の秘匿検索システムは、データの変換処理に通信を必要とせず、高速に実行できる。   At this time, the amount of distributed data held by each server device is, for example, about 12 times the amount of data before distribution by the first method. Compared with the normal confidential search using Non-Patent Document 2, in the embodiment described later, the calculation cost is the same except for the data conversion process, and each server device may individually calculate the data conversion process. I can. Therefore, the confidential search system of this embodiment does not require communication for data conversion processing and can be executed at high speed.

関連技術において、任意の長さのデータを検索するときに、複数シンボルをまとめて秘密計算することで、サーバ装置間の通信の回数を減らそうとすると、あらゆる長さの部分データに対する分散データを全て持つ必要があり、保持しなければならないデータのサイズが増大するという問題があった。   In the related art, when searching for data of any length, by trying to reduce the number of communications between server devices by secretly calculating multiple symbols collectively, distributed data for partial data of any length can be obtained. There was a problem that the size of the data that had to be held had to be held all the way up.

これに対して、本実施形態では、各サーバ装置は秘密情報の1シンボルごとの部分データを保持する。そして、mシンボルの検索要求データの部分情報が入力されたときに、各サーバ装置は、秘密情報のmシンボル分の部分データに対応する分散情報を、通信を伴わない処理によって生成する。このため、本実施形態では、事前に保持する分散データのデータ量を増やさずに通信回数を減らすことができる。   On the other hand, in the present embodiment, each server device holds partial data for each symbol of secret information. Then, when the partial information of the m-symbol search request data is input, each server device generates distributed information corresponding to the partial data of m symbols of the secret information by a process that does not involve communication. Therefore, in the present embodiment, the number of times of communication can be reduced without increasing the data amount of the distributed data held in advance.

本実施形態を用いれば、複数のサーバ装置にデータを分散して、各サーバ装置にデータを隠ぺいしたまま任意のデータに対する検索を行うことができる。これはあるサーバ装置で秘密のデータを外部のサーバ装置に委託する何らかのサービスを提供するときに、サーバ装置の管理者がデータを盗み出すことを防止することになる。すなわち、複数の管理者が結託しない限り、サーバ装置の中の秘密情報を管理者が復号することは不可能であり、サービス利用者の秘密情報を保護することに貢献する。   By using this embodiment, it is possible to distribute data to a plurality of server devices and search for arbitrary data while hiding the data in each server device. This prevents an administrator of the server device from stealing the data when a certain server device provides some service for outsourcing confidential data to an external server device. That is, unless a plurality of managers collude, the manager cannot decrypt the secret information in the server device, which contributes to the protection of the secret information of the service user.

本実施形態は、例えば、関連技術と比べて、データサイズをおよそ1/80から1/1000に削減する効果がある。   This embodiment has an effect of reducing the data size from approximately 1/80 to 1/1000, as compared with the related art, for example.

本発明の実施形態について、図面を用いて詳細に説明する。なお、実施形態の構成を示す図において図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
[第1の実施形態]
図1乃至図3を参照して、本発明の第1の実施形態に係る秘匿検索システムについて説明する。
Embodiments of the present invention will be described in detail with reference to the drawings. In the drawings showing the configuration of the embodiment, the direction of the arrow in the drawing is an example, and does not limit the direction of signals between blocks.
[First Embodiment]
A confidential search system according to a first embodiment of the present invention will be described with reference to FIGS. 1 to 3.

[構成の説明]
図1は、本発明の第1の実施形態に係る秘匿検索システムの構成を示すブロック図である。
[Description of configuration]
FIG. 1 is a block diagram showing the configuration of a confidential search system according to the first embodiment of the present invention.

図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は互いに通信する。   Referring to FIG. 1, the confidential search system according to the first exemplary embodiment of the present invention includes N (N is an integer of 2 or more) server devices 100_1, 100_2, ..., 100_N and a client device 200. Here, the server devices 100_1 to 100_N are also referred to as first to Nth server devices, respectively. The client device 200 communicates with N server devices 100_1 to 100_N. Also, the N server devices 100_1 to 100_N communicate with each other.

図2は、第nのサーバ装置100_n(1≦n≦N)の構成を示すブロック図である。第nのサーバ装置100_nは、第nのデータ記憶部101_nと、第nのデータ変換部102_nと、第nのデータ検索部103_nとを備える。   FIG. 2 is a block diagram showing the 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.

第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に変換する。   The nth data storage unit 101_n receives the nth distributed registration data 104_n from the client device 200 described later and stores it. Further, at the time of 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 distributed information for n-th search (n-th search data) 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を出力する。   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, and other data. While communicating with the search units 103_1 to 103_N (excluding 103_n), a search is performed on the nth distributed registration data in the nth data storage unit 101_n, and the nth distributed search result 107_n is output.

図3は、クライアント装置200の構成を示すブロック図である。クライアント装置200は、登録データシェア生成部201と、クエリデータシェア生成部202と、秘密分散復号部203とを備える。   FIG. 3 is a block diagram showing the configuration of the client device 200. The client device 200 includes a registration data share generation unit 201, a query data share generation unit 202, and a secret sharing decryption unit 203.

登録データシェア生成部201は、図示しない入力装置から登録データ204を受ける。登録データシェア生成部201は、登録データ204に対して秘密分散法を用いて、第1乃至第Nの分散登録データ104_1、…、104_Nを生成する。登録データシェア生成部201は、第nの分散登録データ104_n(1≦n≦N)を第nのサーバ装置100_nに送信する。   The registration data share generation unit 201 receives the registration data 204 from an input device (not shown). The registration data share generation unit 201 generates the first to N-th distributed registration data 104_1, ..., 104_N by 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.

クエリデータシェア生成部202は、図示しない入力装置から検索要求データ205を受ける。クエリデータシェア生成部202は、検索要求データ205に対して秘密分散法を用いて、第1乃至第Nの分散検索要求データ106_1、…、106_Nを生成する。クエリデータシェア生成部202は、第nの分散検索要求データ106_n(1≦n≦N)を第nのサーバ装置100_nに送信する。   The query data share generation unit 202 receives the 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 by 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.

秘密分散復号部203は、第nのサーバ装置100_n(1≦n≦N)から第nの分散検索結果107_nを受ける。秘密分散復号部203は、第1乃至第Nの分散検索結果107_1、…、107_Nに対して秘密分散法を用いて、検索結果206を復元する。   The secret sharing decryption unit 203 receives the nth shared 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 by using the secret sharing method for the first to Nth shared search results 107_1, ..., 107_N.

[動作の説明]
次に、図1から図5を用いて、本発明の第1の実施形態に係る秘匿検索システムの動作について詳細に説明する。
[Description of operation]
Next, the operation of the confidential search system according to the first embodiment of the present invention will be described in detail with reference to FIGS. 1 to 5.

本発明の第1の実施形態に係る秘匿検索システムは、(1)データ登録処理と、(2)データ検索処理と、の2種類の処理を行う。図4、5は、それぞれ、データ登録処理およびデータ検索処理を示すフローチャートである。   The confidential search system according to the first embodiment of the present invention 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.

(データ登録処理)
図4は、本発明の第1の実施形態における秘匿検索システムのデータ登録処理の動作を示すフローチャートである。
(Data registration process)
FIG. 4 is a flowchart showing the operation of the data registration processing of the confidential search system according to the first embodiment of the present invention.

新規データを第1乃至第Nのサーバ装置100_1、…、100_Nに登録するときには、以下のようにする。   When registering new data in the first to Nth server devices 100_1, ..., 100_N, the following is performed.

秘匿検索システムは、新規に分散したい登録データ204(t_1,…,t_n)を、クライアント装置200の登録データシェア生成部201に入力する。ただし、t_1,…,t_nはそれぞれデータの1シンボルに対応するものであり、それぞれのサイズはlogqとする(qは素数、底は2)(ステップS101)。なお、以降のlogも底は2であるが、省略してlogとして記載する。   The confidential search system inputs the registration data 204 (t_1, ..., T_n) to be newly distributed to the registration data share generation unit 201 of the client device 200. However, t_1, ..., T_n respectively correspond to one symbol of data, and each size is logq (q is a prime number, base is 2) (step S101). It should be noted that the log that follows has a base of 2, but is omitted and described as log.

登録データシェア生成部201は、登録データ204をRSSによって第nの分散登録データ104_n(1≦n≦N)に変換する(ステップS102)。   The registration data share generation unit 201 converts the registration data 204 into the nth distributed registration data 104_n (1 ≦ n ≦ N) by RSS (step 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}))を生成する。   More specifically, first, the registration data share generation unit 201, for 1 ≦ i ≦ n, t_i = t {i, 1} + t_ {i, 2} + ... + t_ {i, N} mod q such that t_i. By generating {i, 1}, ..., T_ {i, N} and assigning them to each server device in an appropriate combination, <t_i> q = ((t_t for each symbol i (1 ≦ i ≦ n)). {1,1}, ..., t_ {N, 1}), (t_ {1,2}, ..., t_ {N, 2}), ..., (t_ {1, N}, ..., t_ {N, N})) is generated.

また、登録データシェア生成部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となることに注意する。   Further, the registered data share generation unit 201 sets b_i = n if (n-1) q ≤ t_i <q, and the shared information [b_i] _p = (b_ {i, 1}, b_ {i by SSS of b_i. , 2}, ..., b_ {i, N}) are generated. At this time, note that 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}の組とする。   The n-th distributed registration data 104_n is a set of distributed information (t_ {1, n}, ..., t {N, n}) of t_i and distributed information b_ {i, n} of b_i.

登録データシェア生成部201は、第nの分散登録データ104_nを第nのサーバ装置100_n (1≦n≦N)に送信する(ステップS103)。   The registration data share generation unit 201 transmits the nth distributed registration data 104_n to the nth server device 100_n (1 ≦ n ≦ N) (step S103).

(ステップS104)第nのサーバ装置100_n(1≦n≦N)は受信した第nの分散登録データ104_nを第nのデータ記憶部101_nに保存する。   (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.

(データ検索処理)
図5は、本発明の第1の実施形態における秘匿検索システムのデータ検索時の動作を示すフローチャートである。
(Data search process)
FIG. 5 is a flowchart showing an operation at the time of data search of the confidential search system according to the first embodiment of the present invention.

第1乃至第Nのサーバ装置100_1、…、100_Nに分散されたデータT=(t_1,t_2,…,t_n)の組に関して、ある部分データ(s_1,…,s_m)を含むデータが存在するかどうかを検索したいときには次のようにする。   Does the data including certain partial data (s_1, ..., s_m) exist for the set of data T = (t_1, t_2, ..., t_n) distributed to the first to Nth server devices 100_1, ..., 100_N? If you want to search for something like this:

秘匿検索システムは、検索を行いたいデータである検索要求データ205 (s_1,…,s_m)を、クライアント装置200のクエリデータシェア生成部202に入力する(ステップS201)。s_1,…,s_mは検索要求データの各文字を表すものであり、それぞれのサイズはlogqである。   The confidential search system inputs the search request data 205 (s_1, ..., s_m), which is the 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 the size of each is logq.

クエリデータシェア生成部202は、非特許文献1のTSSSの方法で、下記数1のような形の第1乃至第Nの分散検索要求データ(106_1、…、106_N)[s_1 s_2 … s_m]_pを生成する(ステップS202)。   The query data share generation unit 202 uses the TSSS method of Non-Patent Document 1 for the first to N-th distributed search request data (106_1, ..., 106_N) [s_1 s_2 ... s_m] _p in the form of the following Expression 1. Is generated (step S202).

Figure 0006693503
Figure 0006693503

そして、クエリデータシェア生成部202は、第nの分散検索要求データ106_nを第nのサーバ装置100_nの第nのデータ検索部103_nに送信する。ただし、logp=logq×mとする(p、qは素数、mは任意の正の整数でm>n)。 Then, 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. However, logp = logq × m (p and q are prime numbers, m is an arbitrary positive integer, and m> n).

第nのサーバ装置100_n(1≦n≦N)は、第nのデータ記憶部101_nから第nの分散登録データを読み出し、第nのデータ変換部102_nに送信する(ステップS203)。分散登録データはn文字のテキストそれぞれについて、<t_1>q,…,<t_n>qの形で分散されていることに注意する。   The nth server device 100_n (1 ≦ n ≦ N) reads the nth distributed registration data from the nth data storage unit 101_n and sends it to the nth data conversion unit 102_n (step S203). Note that the distributed registration data is distributed in the form of <t_1> q, ..., <t_n> q for each of the n character texts.

第nのデータ変換部102_nはまず、第nのデータ記憶部101_nから受けたRSSの分散データ<t_1>q,…,<t_n>qを、非特許文献3に記載の方法でSSSの分散情報[t*_1]_p,…,[t*_n]_pに変換する(ステップS204)。   First, the n-th data conversion unit 102_n receives the RSS distributed data <t_1> q, ..., <t_n> q received from the n-th data storage unit 101_n by the method described in Non-Patent Document 3. [T * _1] _p, ..., [t * _n] _p (step S204).

このとき,t*_i=t_i+b_i・qとなっているので,以下の計算によってb_iに補正する。   At this time, since t * _i = t_i + b_i · q, it is corrected to b_i by the following calculation.

第nのデータ変換部102_nは、各t_iについて,[t’_i]_p=[t*_i]_p−q×[b_i]_pを計算することによって,分散情報[t’_1]_p,[t’_2]_p,…[t’_n]_pを生成する。   The n-th data conversion unit 102_n calculates the distribution information [t′_1] _p, [t′_1] _p, [t′_i] _p = [t * _i] _p−q × [b_i] _p for each t_i. '_2] _p, ... [t'_n] _p are generated.

第nのデータ変換部102_nは、非特許文献2に記載の方法を用いて、和と定数倍の計算は通信を要さずに実行できることを利用して、下記数2のようにmシンボルを結合したデータに関するSSSの分散データに変換する。   The n-th data conversion unit 102_n uses the method described in Non-Patent Document 2 and utilizes that the calculation of the sum and the constant multiple can be executed without communication, so that the m symbol Convert to the distributed data of SSS regarding the combined data.

Figure 0006693503
Figure 0006693503

第nのデータ変換部102_nは、[s’]_pを第nの検索用データ105_nとして第nのデータ検索部103_nに送出する。   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.

第nのデータ検索部103_nは、第nのデータ変換部102_nから送られた第nの検索用データ105_nと、クエリデータシェア生成部202から送信された第nの分散検索要求データ106_nを用いて、下記数3の計算によって、分散データ [s’_0]_p,…,[s’_{n−m}]_pを生成する(ステップS205)。   The nth data search unit 103_n uses the nth search data 105_n sent from the nth data conversion unit 102_n and the nth distributed search request data 106_n sent from the query data share generation unit 202. , [S′_0] _p, ..., [s ′ _ {n−m}] _ p are generated by the calculation of the following Expression 3 (step S205).

Figure 0006693503
Figure 0006693503

もし検索対象の部分データであるt’_1,…,t’_(n−m)のいずれかが検索要求データと一致した場合、s’_0,…,s’_(n−m)のいずれかが0になることに注意する。 If any of the partial data t'_1, ..., T '_ (n-m) to be searched matches the search request data, any of s'_0, ..., s' _ (n-m). Note that the value becomes 0.

その後、第1乃至第Nのデータ検索部103_1〜103_Nは、互いに通信しながら、下記数4のような計算を行い、第nのデータ検索部103_nは、得られた結果を第nの分散検索結果107_nとしてクライアント装置200に送信する。   After that, the first to N-th data search units 103_1 to 103_N communicate with each other and perform calculations such as the following formula 4, and the n-th data search unit 103_n searches the obtained results for the n-th distributed search. The result 107_n is transmitted to the client device 200.

Figure 0006693503
Figure 0006693503

クライアント装置200は、第1乃至第Nのサーバ装置100_1、…、100_Nから受け取った第1乃至第Nの分散検索結果107_1、…、107_Nをすべて秘密分散復号部203に入力し、検索結果206を復号する(ステップS206)。復号された結果が0であったときは、登録データの中に検索要求データを含むデータが存在することを意味し、0でなかったときは、そのようなデータは存在しなかったことを示す。   The client device 200 inputs all the first to Nth shared search results 107_1, ..., 107_N received from the first to Nth server devices 100_1, ..., 100_N to the secret sharing decryption unit 203, and outputs the search result 206. Decrypt (step S206). When the decrypted result is 0, it means that the data including the search request data exists in the registered data, and when it is not 0, it indicates that such data does not exist. ..

(第1の実施形態の効果)
第1の実施形態によれば、各サーバ装置に保存するデータ(分散情報)のサイズを削減することができる。その理由は、各サーバ装置に保存するデータを1シンボルごとの分散情報として保管する。そして、検索処理時に必要な部分データに対応する分散情報を生成する前処理を行ってから検索するからである。
(Effects of the first embodiment)
According to the first embodiment, the size of data (distributed information) stored in each server device can be reduced. The reason is that the data stored in each server device is stored as distributed information for each symbol. This is because the search is performed after the preprocessing for generating the shared information corresponding to the partial data required in the search processing is performed.

第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個のシンボルそれぞれに関して差を取ってマスクをかける操作と同様の効果がある。   In the first embodiment, the 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. At this time, the shared information converted by the method of Non-Patent Document 3 may not be the shared information of t_i but the shared information of t * _i = t_i + b_i · q. Therefore, by distributing b_i together with t_i and calculating [t_i] _p = [t * _i] _p−q × [b_i] _p, the same secret information can be restored even after the conversion of the shared information. Is being corrected. The value calculated by the equation (2) is t'_i variance information, and t'_i is each symbol of (t_1, ..., t_n) for every q bits, so the variance information for partial data of m symbols. It has become. The operation of masking with random numbers after the difference between t'_i and the search request data s' is obtained has the same effect as the operation of masking the difference with respect to each of the m symbols.

[第2の実施形態]
次に、図6乃至図8を参照して、本発明の第2の実施形態に係る秘匿検索システムについて説明する。
[Second Embodiment]
Next, a confidential search system according to the second embodiment of the present invention will be described with reference to FIGS. 6 to 8.

[構成の説明]
図6は、本発明の第2の実施形態に係る秘匿検索システムの構成を示すブロック図である。
[Description of configuration]
FIG. 6 is a block diagram showing the configuration of the confidential search system according to the second embodiment of the present invention.

図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は互いに通信する。   Referring to FIG. 6, the confidential search system according to the second embodiment includes a client device 200A and first to Nth server devices 100A_1, 100A_2, ..., 100A_N. The server devices 100A_1 to 100A_N are also referred to as first to Nth server devices, respectively. The client device 200A communicates with N server devices 100A_1 to 100A_N. Further, the N server devices 100A_1, ..., 100A_N communicate with each other.

図7は、第nのサーバ装置100A_n(1≦n≦N)の構成を示すブロック図である。
第nのサーバ装置100A_n(1≦n≦N)は、第nのデータ記憶部101A_nと、第nのデータ変換部102A_nと、第nのデータ検索部103A_nとを備える。
FIG. 7 is a block diagram showing the 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.

第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に変換する。   The nth data storage unit 101A_n receives the nth distributed registration data 104A_n from the client device 200A and stores it. Further, the nth data storage unit 101A_n outputs the nth distributed registration data 104A_n stored at the time of 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 distributed information for search (search data) 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を出力する。   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, and uses the other data. While communicating with the search units 103A_1 to 103A_N (excluding 103A_n), a search is performed on the nth distributed registration data in the nth data storage unit 101A_n, and the nth distributed search result 107A_n is output.

図8は、クライアント装置200Aの構成を示すブロック図である。クライアント装置200Aは、登録データシェア生成部201Aと、クエリデータシェア生成部202Aと、秘密分散復号部203Aとを備える。   FIG. 8 is a block diagram showing the configuration of the client device 200A. The client device 200A includes a registration data share generation unit 201A, a query data share generation unit 202A, and a secret sharing decryption unit 203A.

登録データシェア生成部201Aは、図示しない入力装置から登録データ204Aを受ける。登録データシェア生成部201Aは、秘密分散法の分散データ生成手順を実行して、第1乃至第Nの分散登録データ104A_1、…、分散登録データ104A_Nを生成する。登録データシェア生成部201Aは、第nの分散登録データ104A_n(1≦n≦N)を第nのサーバ装置100A_nに送信する。   The registration data share generation unit 201A receives the registration data 204A from an input device (not shown). The registration 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.

クエリデータシェア生成部202Aは、図示しない入力装置から検索要求データ205Aを受ける。クエリデータシェア生成部202Aは、秘密分散法の分散データ生成手順を実行して、第1乃至第Nの分散検索要求データ106A_1、…、106A_Nを生成する。クエリデータシェア生成部202Aは、第nの分散検索要求データ106A_n(1≦n≦N)を第nのサーバ装置100A_nに送信する。   The query data share generation unit 202A receives the 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.

秘密分散復号部203Aは、第nのサーバ装置100A_n(1≦n≦N)から第nの分散検索結果107A_nを受ける。秘密分散復号部203Aは、第1乃至第Nの分散検索結果107A_1、…、107A_Nに対して秘密分散法の復号手順を実行して、検索結果206Aを復元する。   The secret sharing decryption unit 203A receives the nth shared search result 107A_n from the nth server apparatus 100A_n (1 ≦ n ≦ N). The secret sharing decryption unit 203A executes the secret sharing decryption procedure on the first to Nth shared search results 107A_1, ..., 107A_N to restore the search result 206A.

[動作の説明]
次に、図6から図10を用いて、本発明の第2の実施形態に係る秘匿検索システムの動作について詳細に説明する。
[Description of operation]
Next, the operation of the confidential search system according to the second embodiment of the present invention will be described in detail with reference to FIGS. 6 to 10.

本発明の第2の実施形態に係る秘匿検索システムは、(1)データ登録処理と、(2)データ検索処理と、の2種類の処理を行う。図9、図10は、それぞれ、データ登録処理およびデータ検索処理のフローを示すフローチャートである。   The confidential search system according to the second embodiment of the present invention performs two types of processing: (1) data registration processing and (2) data search processing. 9 and 10 are flowcharts showing the flow of the data registration process and the data search process, respectively.

(データ登録処理)
図9は、本発明の第2の実施形態における秘匿検索システムのデータ登録時の動作を示すフローチャートである。
(Data registration process)
FIG. 9 is a flowchart showing an operation at the time of data registration of the confidential search system according to the second exemplary embodiment of the present invention.

新規データを第1乃至第Nのサーバ装置100A_1、…、100A_Nに登録するときには以下のようにする。   The following is performed when registering new data in the first to Nth server devices 100A_1, ..., 100A_N.

秘匿検索システムは、新規に分散したい登録データ204A (t_1,…,t_n)をクライアント装置200Aの登録データシェア生成部201Aに入力する(ステップS101A)。ただし、t_1,…,t_nはそれぞれデータの1シンボルに対応するものであり、各t_iは有限体GF(q)の元とする。   The confidential search system inputs the new registration data 204A (t_1, ..., t_n) to be distributed to the registration data share generation unit 201A of the client device 200A (step S101A). However, t_1, ..., T_n respectively correspond to one symbol of data, and each t_i is an element of the finite field 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)。   The registration data share generation unit 201A generates a share [t_i] q of t_i by SSS for 1 ≦ i ≦ n, and assigns [t_1] q, ... [t_n] q to the first to Nth distributed registration data 104A_1. , ..., 104A_N (step S102A).

登録データシェア生成部201Aは、第nの分散登録データ104A_nを第nのサーバ装置100A_n (1≦n≦N)に送信する(ステップS103A)。   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).

第nのサーバ装置100A_n(1≦n≦N)は、受信した第nの分散登録データ104A_nを第nのデータ記憶部101A_nに保存する(ステップS104A)。   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).

(データ検索処理)
図10は、本発明の第2の実施形態における秘匿検索システムのデータ検索時の動作を示すフローチャートである。
(Data search process)
FIG. 10 is a flowchart showing an operation at the time of data search of the confidential search system according to the second embodiment of the present invention.

第1乃至第Nのサーバ装置100A_1、…、100A_Nに分散されたデータT=(t_1,t_2,…,t_n)の組に関して、ある部分データ(s_1,…,s_m)を含むデータが存在するかどうかを検索したいときには次のようにする。   Does the data including certain partial data (s_1, ..., s_m) exist for the set of data T = (t_1, t_2, ..., t_n) distributed to the first to Nth server devices 100A_1, ..., 100A_N? If you want to search for something like this:

秘匿検索システムは、検索を行いたいデータである検索要求データ205A(s_1,…,s_m)を、クライアント装置200Aのクエリデータシェア生成部202Aに入力する(ステップS201A)。s_1,…,s_mは検索要求データの各文字を表すものであり、それぞれのサイズはlogqである。   The confidential search system inputs the search request data 205A (s_1, ..., s_m), which is the data desired 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 the size of each is 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に送信する。   The query data share generation unit 202A generates SSS distribution information [s] _p = [s_1 || s_2 || ... || s_m] _p from the search request data 205A (s_1, ..., s_m) (step S202A). .. However, p = q ^ m, and s is an element of the 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.

第nのサーバ装置100A_n(1≦n≦N)は、第nのデータ記憶部101A_nから第nの分散登録データを読み出し、第nのデータ変換部102A_nに送出する(ステップS203A)。   The nth server device 100A_n (1 ≦ n ≦ N) reads the nth distributed registration data from the nth data storage unit 101A_n and sends it to the nth data conversion unit 102A_n (step S203A).

第nのデータ変換部102A_nはまず、第nのデータ記憶部101A_nから受けたSSSの分散情報[t_1]q,…,[t_n]qを、以下の方法で検索用データに変換する(ステップS204A)。   The nth data conversion unit 102A_n first converts the SSS distribution information [t_1] q, ..., [t_n] q received from the nth data storage unit 101A_n into search data by the following method (step 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)の元である。   The n-th data conversion unit 102A_n holds by itself among [t_i] q = (t_ {i, 1}, t_ {i, 2}, ..., T_ {i, N}) for each t_i. Distributed information t_ {1, j}, t_ {2, j} ,. . . , T_ {n, j}, t ′ _ {i, j} = t_ {i, j} || t_ {i + 1, j} || ... || t_ {i + m-1, j} is 0 ≦ Compute for i ≦ n−m, t ′ _ {0} ,. . . , T '_ {n-m}. t '_ {i, 1} ,. . . , T '_ {i, N} is the disperse information of t' _ {i} = t_ {i} || ... || 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 the finite field GF (2 ^ q).

第nのデータ変換部102A_nは、[t’_0]_p,...,[t’_{n−m}]_pを第nの検索用データ105A_nとして、第nのデータ検索部103A_nに送出する。   The n-th data conversion unit 102A_n has [t'_0] _p ,. . . , [T '_ {n-m}] _ p are sent to the nth data search unit 103A_n as the nth search data 105A_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になることに注意する。   The nth data search unit 103A_n uses the nth search data 105A_n sent from the nth data conversion unit 102A_n and the nth distributed search request data 106A_n sent from the query data share generation unit 202A. , [S′_0] _p, ..., [s ′ _ {n−m}] _ p are generated by the calculation of Equation 3 (step S205A). If any of the search target partial data t'_0, ..., T '_ (n-m) matches the search request data, any of s'_0, ..., s' _ {n-m}. Note that the value becomes 0.

その後、第nのデータ検索部103A_nは、上記数4のような計算を行い、得られた結果を第nの分散検索結果107A_nとして、クライアント装置200Aに送信する。   After that, the nth data search unit 103A_n performs the calculation as shown in the above mathematical expression 4, and transmits the obtained result to the client apparatus 200A as the nth distributed search result 107A_n.

クライアント装置200Aは、第1乃至第Nのサーバ装置100A_1、…、100A_Nから受け取った第1乃至第Nの分散検索結果106A_1、…、106A_Nをすべて秘密分散復号部203Aに入力し、検索結果206Aを復号する(ステップS206A)。復号された結果が0であったときは、登録データの中に検索要求データを含むデータが存在することを意味し、0でなかったときは、そのようなデータは存在しなかったことを示す。   The client apparatus 200A inputs all the first to Nth shared search results 106A_1, ..., 106A_N received from the first to Nth server apparatuses 100A_1, ..., 100A_N to the secret sharing decryption unit 203A, and outputs the search result 206A. Decrypt (step S206A). When the decrypted result is 0, it means that the data including the search request data exists in the registered data, and when it is not 0, it indicates that such data does not exist. ..

(第2の実施形態の効果)
第2の実施形態によれば、各サーバ装置に保存するデータ(分散情報)のサイズを削減することができる。その理由は、各サーバ装置に保存するデータを1シンボルごとの分散情報として保管する。そして、検索処理時に必要な部分データに対応する分散情報を生成する前処理を行ってから検索するからである。
(Effects of the second embodiment)
According to the second embodiment, the size of data (distributed information) stored in each server device can be reduced. The reason is that the data stored in each server device is stored as distributed information for each symbol. This is because the search is performed after the preprocessing for generating the shared information corresponding to the partial data required in the search processing is performed.

第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シンボル分に対する操作をまとめて実行することがでる。   In the second embodiment, the secret information is distributed by TSSS for each symbol, and the data conversion unit performs t '_ {i, j} = t_ {i, j} || t_ {i + 1 in step S204A. , J} || ... || t_ {i + m-1, j} are connected. Each symbol t_ {1, j}, t_ {2, j} ,. . . , T_ {n, j} is an element of a finite field GF (q), the concatenation of m pieces is an element of the finite field GF (q ^ m), and the original secret information t = (t1 , ..., T_n), the distribution information is for the partial data of m symbols. As a result, as in the first embodiment, the operations for m symbols can be collectively executed.

[実施形態の具体例]
上記第1の実施形態の具体例として、3台のサーバ装置100_1、100_2、100_3と、クライアント装置200とで構成された文字列検索システムの構成を示す。
[Specific Example of Embodiment]
As a specific example of the first embodiment, a configuration of a character string search system including three server devices 100_1, 100_2, 100_3 and a client device 200 will be shown.

この第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とする。   In the specific example of the first embodiment, the original data of the text has a maximum of 200 characters each and is expressed in the form of T = (t_1, ..., t_200), and t_i (1 ≦ i ≦ n) is each character of the text. Represents. In the three server devices 100_1, 100_2, 100_3, a set of character strings is distributed and stored for each character using RSSS as <t_1> q, ..., <t_200> q. Each character is encoded with 8 bits, and q = 2 ^ 8. In the specific example of the first embodiment, the length of the keyword requested to be searched by the client device 200 is 10 characters. That is, the search request data is a character string of maximum 80 bits, and 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に分散する。   The client device 200 uses the text of 10 characters s = (s_1, s_2, ..., s_10) = “calculator” as the search request data in SSS to [(“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, which are distributed to the three server devices 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種類の値を取る可能性があることに注意する。   The nth server device 100_n (1 ≦ n ≦ 3) receives the RSSth nth distributed registration data 104_n for the search request data of 10 characters and then stores the text of the text stored in the nth data storage unit 101_n. Of the RSSS distributed information <t_1> q, ..., <t_200> q for each character, the information held by itself is input to the nth data conversion unit 102_n, and the TSSS distributed information [[ t * _1] _p, ..., [t * _n] _p. At this time, note that t * _i (= t_i mod q) may take three kinds of values of t_i, t_i + q, and t_i + 2q.

次に,第nのサーバ装置100_nは,各t_iについて、[t_i]_p=[t*_i]_p−q×[b_i]_pを計算する。   Next, the nth server device 100_n calculates [t_i] _p = [t * _i] _p−q × [b_i] _p for each t_i.

その後,サーバ装置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に変換する。   After that, the server device 100_n calculates [t_1] _p ,. . . , [T_ {n−m}] _ p, SSS distribution information [t′_i] _p = [2̂ (72) · t_ {i} + 2̂ (64) · t_ {for 10 character substrings. 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に入力する。   The nth server device 100_n receives 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 of the nth data storage unit 101_n as the nth data. Input to the search unit 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
の計算で検索要求データと部分文字列とのマッチングを行う。
From the input distributed search request data [(calculator)] _ p and search data [t'_1] _p, ..., [t'_191] _p, the nth data search unit 103_n
[S'_1] _p = [t'_1] _p-[(calculator)] _ p,

[S'_191] _p = [t'_191] _p-[(calculator)] _ p
The search request data and the partial character string are matched by the calculation of.

ここで、ある部分文字列t’_kについて、t’_k=(“calculator”)となるとする。このとき、[s’_k]=[t’_k]_p−[(”calculator”)]_p=[0]_pとなる。   Here, it is assumed that t′_k = (“calculator”) for a certain partial character string t′_k. At this time, [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となる。   After that, the nth data search unit 103_n distributes the distribution information [r] _p of the random number r, performs the calculation using the formula shown in the above number, and the search result S = s′_1 × ... × s ′ _ ( 191) × r distributed information is generated. Since a certain s'_k = 0, the value of S becomes 0.

第nのデータ検索部103_nは、Sの分散情報を第nの分散検索結果107_nとして出力する。第nのサーバ装置100_nは、第nの分散検索結果107_nをクライアント装置200に送信する。   The nth data search unit 103_n outputs the S shared information 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.

クライアント装置200は、3台のサーバ装置100_1、100_2、100_3から、検索結果Sの部分情報107_1、107_2、107_3を受け、TSSSの復元アルゴリズムによって検索結果Sを復元する。クライアント装置200は、S=0が復号されたことを確認し、「サーバに”calculator”を含む文字列が存在する」という結果を出力する。   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 restore algorithm of TSSS. The client device 200 confirms that S = 0 has been decrypted, and outputs the result that “a character string including“ calculator ”exists in the server”.

第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にすることができる。   In the specific example of the first embodiment, the size of the distributed information of text stored in the server device is n · logp + 2n · logq = 200 × 80 + 2 × 200 × 8 = 19200 bits per text. As in the related art, when the partial character strings are all held by the TSSS distributed information of 80 bits, the size of the distributed information is (1/2) .n. (N + 1) .logp = (1/2) × 200 × 201 × 80 = 1608000 bits (≈200 KB). As described above, in the specific example of the first embodiment, the size of shared information can be reduced to 1/83 as compared with the related art.

上記第2の実施形態の具体例として、3台のサーバ装置100A_1、100A_2、100A_3とクライアント装置200Aとで構成された文字列検索システムの構成を示す。   As a specific example of the second embodiment, a configuration of a character string search system including three server devices 100A_1, 100A_2, 100A_3 and a client device 200A will be shown.

この第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とする。   In the specific example of the second embodiment, the original data of the text has a maximum of 200 characters each and is expressed in the form of T = (t_1, ..., t_200), and t_i (1 ≦ i <n) is each character of the text. Represents. In the three server devices 100A_1, 100A_2, 100A_3, a set of character strings is distributed and stored for each character in TSSS such as [t_1] q, ..., [t_200] q. Each character is encoded with 8 bits, and q = 2 ^ 8. In this specific example, the length of the keyword requested by the client device 200A to search is 10 characters. That is, the search request data is a character string of maximum 80 bits, and 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に分散する。   The client device 200A uses, as search request data, a 10-character text s = (s_1, s_2, ..., s_10) = “calculator” in 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, which are distributed to the three server devices 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に送信する。
The nth server device 100A_n (1 ≦ n ≦ 3) receives the TSSS distributed registration data 104A_n for the search request data of 10 characters, and then, for each character of the text stored in the nth data storage unit 101A_n. Of the distributed information [t_1] q, ..., [t_200] q of SSS, information t_ {1, j}, t_ {2, j} ,. . . , T_ {n, j} are input to the n-th data conversion unit 102A_n.
The nth data conversion unit 102A_n
t '_ {i, j} = t_ {i, j} || t_ {i + 1, j} || ... || t_ {i + m-1, j}
For 0 ≦ i ≦ n−m, 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.

その後は、上記第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の実施形態の具体例と同様の方法で検索結果を出力する。
After that, similarly to the specific example of the first embodiment, the nth data search unit 103A_n inputs the nth distributed search request data [(calculator)] _ p and the nth search data [t. From "_1" _p, ..., [t'_191] _p,
[S'_1] _p = [(calculator)] _ p- [t'_1] _p,

[S'_191] _p = [(calculator)] _ p- [t'_191] _p,
In this calculation, the search request data and the partial character string are matched, and the search result is output by the same method as in the specific example of the first embodiment.

第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にすることができる。   In the specific example of the second embodiment, the size of the distributed information of the text stored in the server device is n · logq = 200 × 8 = 1600 bits per text. As in the related art, when the partial character strings are all held in the TSSS distributed information of 80 bits, the size of the distributed information is (1/2) n (n + 1) .logp = (1/2) × 200. × 201 × 80 = 1608000 bits (≈200 KB). As described above, in the specific example of the second embodiment, the size of the shared information can be reduced to 1/1000 as compared with the related art.

なお、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形することができる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、上記実施形態の具体例では、サーバ装置が3台ある場合で説明したが、サーバ装置がN台(Nは2以上の整数)ある場合にも同様に適用できる。   The present invention is not limited to the above embodiment, and the constituent elements can be modified without departing from the scope of the invention. Further, various inventions can be formed by appropriately combining a plurality of constituent elements. For example, in the specific example of the above-described embodiment, the case where there are three server devices has been described, but the same can be applied to the case where there are N server devices (N is an integer of 2 or more).

第1、第2の実施形態によれば、秘密分散法を用いた秘匿検索システムにおいて、その検索機能を損なうことなく、各サーバ装置が保持するデータ(分散情報)のサイズを低減することが可能となる。   According to the first and second embodiments, in 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 its search function. Becomes

第1、第2の実施形態は、秘匿検索を組み合わせたより高度な秘匿データ分析にも貢献することができる。例えば、実施形態とその他のデータを秘匿したまま関数の計算を行う技術を組み合わせることにより、ある部分データを含むデータに対して何らかの処理を行う秘匿データ分析システムを実現することができる。   The first and second embodiments can also contribute to more sophisticated secret data analysis that combines secret search. For example, by combining the embodiment with other techniques for calculating a function while keeping data secret, it is possible to realize a secret data analysis system that performs some processing on data including certain partial data.

また、サーバ装置にデータを委託するクラウドサービスにおいて、サービスの価格は通常データサイズと通信料によって決定される。本実施形態を適用した秘匿検索システムによって、サーバ装置の保持するデータサイズを削減することができ、秘匿検索システムを利用したサービスの低価格化と利用促進の実現を可能にする。   Further, in a cloud service in which data is outsourced to a server device, the price of the service is usually determined by the data size and the communication charge. With the confidential 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 reduce the price of services and promote the use of the services using the confidential search system.

なお、第1、第2の実施形態に記載した方法は、コンピュータに実行させることができる。この方法を実行させるプログラムは、フロッピー(登録商標)ディスク、ハードディスクなどの磁気ディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(digital versatile disc)などの光ディスク、光磁気ディスク(MO)、半導体メモリなどの記録媒体に格納して頒布することもできる。   The methods described in the first and second embodiments can be executed by a computer. A program for executing this method is a floppy (registered trademark) disk, a magnetic disk such as a hard disk, an optical disk such as a CD-ROM (Compact Disc-Read Only Memory), a DVD (digital versatile disc), a magneto-optical disk (MO), and the like. It can be stored in a recording medium such as a semiconductor memory and distributed.

また、この記録媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。   Further, as this recording medium, as long as it is a recording medium that can store a program and is readable by a computer, the storage format may be any form.

また、記録媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。   Further, an operating system running on the computer, middleware such as database management software, network software, or the like may execute a part of each processing based on an instruction of a program installed in the computer from the recording medium.

さらに、記録媒体は、コンピュータと独立した媒体に限らず、LAN(Local Area Network)やインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。   Further, the recording medium is not limited to a medium independent of a computer, and includes a recording medium in which a program transmitted via a LAN (Local Area Network), the Internet, etc. is downloaded and stored or temporarily stored.

また、記録媒体は1つに限らず、複数の記録媒体から上記実施形態における処理が実行される場合も含まれ、媒体構成は何れの構成であってもよい。   Further, the number of recording media is not limited to one, and a case where the processing in the above-described embodiment is executed from a plurality of recording media is also included, and the medium configuration may be any configuration.

コンピュータは、記録媒体に記憶されたプログラムに基づき各処理を実行するものであって、パソコンなどからなる装置、複数の装置がネットワーク接続されたシステムなどの何れの構成であってもよい。   The computer executes each process based on the program stored in the recording medium, and may have any configuration such as a device including a personal computer and a system in which a plurality of devices are network-connected.

また、コンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置を含み、プログラムによって本実施形態の機能を実現することが可能な機器、装置である。   Further, the computer is not limited to a personal computer, but includes an arithmetic processing unit included in an information processing device, and is a device or device capable of realizing the functions of the present embodiment by a program.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   The whole or part of the exemplary embodiments disclosed above can be described as, but not limited to, the following supplementary notes.

(付記1) 秘密情報の1シンボルごとの分散登録データを保存するデータ記憶部と、
前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換するデータ変換部と、
前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索部と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って、分散検索結果を出力するデータ検索部と、
を有するサーバ装置。
(Supplementary Note 1) A data storage unit that stores distributed registration data for each symbol of confidential information,
A data conversion unit that converts the distributed registration data stored in the data storage unit into search data for data in which a plurality of symbols are linked,
Data for performing a search on 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 outputting a distributed search result. Search section,
A server device having.

(付記2) 前記データ記憶部は、前記分散登録データを、1シンボルごとの複製型秘密分散法の分散情報として保持し、
前記データ変換部は、前記データ記憶部に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのShamirのしきい値秘密分散法の分散情報に生成する処理を実行して前記検索用データを得る、
付記1に記載のサーバ装置。
(Supplementary Note 2) The data storage unit holds the distributed registration data as shared information of a duplicate secret sharing method for each symbol,
The data conversion unit executes a process of generating, for each symbol, shared information of the duplicate secret sharing method stored in the data storage unit into shared information of one Shamir threshold secret sharing method for a plurality of symbols. And obtain the search data,
The server device according to attachment 1.

(付記3) 前記データ記憶部は、前記分散登録データとして、Shamirのしきい値秘密分散法によって生成された秘密情報の分散データを保持し、
前記データ変換部は、前記データ記憶部に保存された秘密情報の分散データを連結する処理を実行して前記検索用データを得、
前記データ検索部は、前記データ変換部によって連結されたデータを用いて、拡大体上の演算で検索を行う処理を実行して前記分散検索結果を得る、
付記1に記載のサーバ装置。
(Supplementary Note 3) The data storage unit holds, as the distributed registration data, distributed data of secret information generated by Shamir's threshold secret sharing method,
The data conversion unit executes a process of connecting the distributed data of the secret information stored in the data storage unit to obtain the search data,
The data search unit uses the data connected by the data conversion unit to execute a process of performing a search on an extension field to obtain the distributed search result,
The server device according to attachment 1.

(付記4) 各々が付記1乃至3のいずれか1つに記載のサーバ装置からなる第1乃至第N(Nは2以上の整数)のサーバ装置と、該第1乃至第Nのサーバ装置にネットワークを介して接続されたクライアント装置と、から成る秘匿検索システムであって、前記クライアント装置は、
登録データから、前記第1乃至第Nのサーバ装置にそれぞれ登録されるべき第1乃至第Nの分散登録データを生成する登録データシェア生成部と、
検索要求データから、前記第1乃至第Nのサーバ装置へそれぞれ送信するための第1乃至第Nの分散検索要求データを生成するクエリデータシェア生成部と、
前記第1乃至第Nのサーバ装置からそれぞれ受信した第1乃至第Nの分散検索結果から、検索結果の分散情報を復号する秘密分散復号部と、
を有する秘匿検索システム。
(Supplementary Note 4) First to Nth (N is an integer of 2 or more) server devices, each of which is the server device according to any one of Supplementary Notes 1 to 3, and the first to Nth server devices. A confidential search system comprising a client device connected via a network, wherein the client device comprises:
A registration data share generation unit that generates first to Nth distributed registration data to be registered in the first to Nth server devices, respectively, from the registration data;
A query data share generation unit that generates 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 sharing decryption unit that decrypts the shared information of the search results from the first to Nth shared search results received from the first to Nth server devices, respectively.
Concealment search system with.

(付記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の分散検索結果に対して、前記秘密分散法の復号手順を実行して、検索結果を復元する復元ステップと、
を含む秘匿検索方法。
(Supplementary Note 5) A secret search method in a search system, comprising: 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 capable of secretly sharing data according to a secret sharing method, storing the data in the first to Nth server devices, and searching the data stored in the first to Nth server devices while keeping the data secret
The client device performs a distributed data generation procedure of the secret sharing method on registration data to generate first to Nth distributed registration data, and the first to Nth distributed registration data are respectively generated in the first to Nth distributed registration data. A registration data generation step of transmitting 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 executes the distributed data generation procedure of the secret sharing method on the search request data to generate the first to Nth distributed search data, and the first to Nth distributed search data are respectively generated as described above. A search request data generation step of transmitting to the first to Nth server devices;
A search data conversion step in which the nth server device converts the nth distributed registration data stored in the nth data storage unit into nth search data for data obtained by connecting a plurality of symbols;
The n-th server device uses the n-th search data and the n-th distributed search data to communicate with another server device while the n-th data storage unit stores the n-th data. A search step of searching the distributed registration data and transmitting an n-th distributed search result to the client device;
A restoration step in which the client device executes a decryption procedure of the secret sharing method on the first to Nth distributed search results received from the first to Nth server devices and restores the search results; ,
Concealment search method including.

(付記6) 前記登録データ生成ステップでは、前記クライアント装置が、前記登録データを複製型秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
前記検索要求データ生成ステップでは、前記クライアント装置が、前記検索要求データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
前記検索データ変換ステップでは、前記第nのサーバ装置が、前記第nの分散登録データを前記Shamirのしきい値秘密分散法の分散データである前記第nの検索用データに変換する、
付記5に記載の秘匿検索方法。
(Supplementary Note 6) In the registration data generation step, the client device converts the registration data into the first to Nth distributed search data by a duplicate secret sharing method,
In the search request data generation step, the client device converts the search request data into the first to N-th distributed search data by Shamir's threshold secret sharing method,
In the search data conversion step, the nth server device converts the nth distributed registration data into the nth search data that is distributed data of the Shamir threshold secret sharing method.
The secret search method according to attachment 5.

(付記7) 前記登録データ生成ステップでは、前記クライアント装置が、前記登録データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、 前記検索要求データ生成ステップでは、前記クライアント装置が、前記検索要求データを前記Shamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
前記検索データ変換ステップでは、前記第nのサーバ装置が、前記第nの分散登録データを連結して一つのデータとして前記第nの検索用データに変換する、
付記5に記載の秘匿検索方法。
(Supplementary Note 7) In the registration data generating step, the client device converts the registration data into the first to Nth distributed search data by Shamir's threshold secret sharing method, and in the search request data generating step, , The client device converts the search request data into the first to Nth distributed search data by the Shamir threshold secret sharing method,
In the search data conversion step, the nth server device concatenates the nth distributed registration data and converts it as one data into the nth search data.
The secret search method according to attachment 5.

(付記8) サーバ装置で検索を実行する検索方法であって、
秘密情報の1シンボルごとの分散登録データをデータ記憶部に保存する保存ステップと、
データ変換部が、前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換する変換ステップと、
データ検索部が、前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索部と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って、分散検索結果を出力する検索ステップと、
を含む検索方法。
(Supplementary Note 8) A search method for executing a search on a server device,
A saving step of saving the distributed registration data for each symbol of the confidential information in the data storage unit;
A conversion step in which the data conversion unit converts the distributed registration data stored in the data storage unit into search data for data in which a plurality of symbols are connected,
A data search unit uses the search data and the distributed search request data to perform a search for the distributed registration data in the data storage unit while communicating with the data search unit of another server device to perform a distributed search. A search step that outputs results,
Search method including.

(付記9) 前記保存ステップでは、前記分散登録データを、1シンボルごとの複製型秘密分散法の分散情報として前記データ記憶部に保持し、
前記変換ステップでは、前記データ変換部が、前記データ記憶部に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのShamirのしきい値秘密分散法の分散情報に生成する処理を実行して前記検索用データを得る、
付記8に記載の検索方法。
(Supplementary Note 9) In the storage step, the distributed registration data is held in the data storage unit as shared information of a duplicate secret sharing method for each symbol,
In the conversion step, the data conversion unit converts the shared information of the duplicate secret sharing method for each symbol stored in the data storage unit into one Shamir's threshold secret sharing sharing information for a plurality of symbols. Performing a process of generating to obtain the search data,
The search method described in appendix 8.

(付記10) 前記保存ステップでは、前記分散登録データとして、Shamirのしきい値秘密分散法によって生成された秘密情報の分散データを前記データ記憶部に保持し、
前記変換ステップでは、前記データ変換部が、前記データ記憶部に保存された秘密情報の分散データを連結する処理を実行して前記検索用データを得、
前記検索ステップでは、前記データ検索部が、前記変換手順によって連結されたデータを用いて、拡大体上の演算で検索を行う処理を実行して前記分散検索結果を得る、
付記8に記載の検索方法。
(Supplementary Note 10) In the storing step, as the distributed registration data, shared data of secret information generated by a Shamir threshold secret sharing method is held in the data storage unit,
In the converting step, the data converting unit obtains the search data by executing a process of connecting the distributed data of the secret information stored in the data storage unit,
In the search step, the data search unit uses the data linked by the conversion procedure to perform a process of performing a search on an extension field to obtain the distributed search result.
The search method described in appendix 8.

(付記11) コンピュータであるサーバ装置に検索を実行させる検索プログラムであって、前記コンピュータに、
秘密情報の1シンボルごとの分散登録データをデータ記憶部に保存する保存手順と、
前記データ記憶部に保存された前記分散登録データを、複数シンボルを連結したデータに対する検索用データに変換する変換手順と、
前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信を行いながら、前記データ記憶部の前記分散登録データに対する検索を行って分散検索結果を出力する検索手順と、
を実行させるための検索プログラム。
(Supplementary Note 11) A search program for causing a server device, which is a computer, to execute a search, the computer including:
A saving procedure for saving the distributed registration data for each symbol of confidential information in the data storage unit,
A conversion procedure for converting the distributed registration data stored in the data storage unit into search data for data in which a plurality of symbols are connected,
A search procedure for performing a search on the distributed registration data in the data storage unit and outputting a distributed search result while communicating with another server device using the search data and the distributed search request data,
A search program for executing.

(付記12) 前記保存手順は、前記コンピュータに、前記分散登録データを、1シンボルごとの複製型秘密分散法の分散情報として前記データ記憶部に保持させ、
前記変換手順は、前記コンピュータに、前記データ記憶部に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのShamirのしきい値秘密分散法の分散情報に生成する処理を実行させて前記検索用データを得させる、
付記11に記載の検索プログラム。
(Supplementary Note 12) The storage procedure causes the computer to hold the distributed registration data in the data storage unit as shared information of a duplicate secret sharing method for each symbol,
In the conversion procedure, the shared information of the duplicate secret sharing method for each symbol stored in the data storage unit is generated in the computer as the shared information of one Shamir threshold secret sharing method for a plurality of symbols. Execute a process to obtain the search data,
The search program according to attachment 11.

(付記13) 前記保存手順は、前記コンピュータに、前記分散登録データとして、Shamirのしきい値秘密分散法によって生成された秘密情報の分散データを前記データ記憶部に保持させ、
前記変換手順は、前記コンピュータに、前記データ記憶部に保存された秘密情報の分散データを連結する処理を実行させて前記検索用データを得させ、
前記検索手順は、前記コンピュータに、前記変換手順によって連結されたデータを用いて、拡大体上の演算で検索を行う処理を実行させて前記分散検索結果を得させる、
付記11に記載の検索プログラム。
(Supplementary Note 13) The storage procedure causes the computer to hold, as the distributed registration data, shared data of secret information generated by Shamir's threshold secret sharing method in the data storage unit,
In the conversion procedure, the computer is caused to perform a process of connecting the distributed data of the secret information stored in the data storage unit to obtain the search data,
In the search procedure, the computer is caused to perform a process of performing a search by an operation on an extension field using the data linked by the conversion procedure to obtain the distributed search result.
The search program according to attachment 11.

本発明は、秘匿検索を組み合わせたより高度な秘匿データ分析にも貢献する。例えば、ある部分データを含むデータに対して何らかの処理を行う秘匿データ分析システムは、本発明とその他のデータを秘匿したまま関数の計算を行う技術を組み合わせることによって実現することが可能である。   The present invention also contributes to more sophisticated secret data analysis that combines secret search. For example, 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.

また、サーバ装置にデータを委託するクラウドサービスなどにおいて、サービスの価格は通常データサイズと通信料によって決定される。したがって、秘匿検索システムにおけるサーバ装置の保持するデータサイズを削減することは、秘匿検索システムを利用したサービスの低価格化につながり、サービスの利用を促進するものと考えられる。   Further, in a cloud service that entrusts data to a server device, the price of the service is usually determined by the data size and the communication charge. Therefore, it is considered that reducing the data size held by the server device in the secret search system leads to lower prices of services using the secret search system and promotes the use of the service.

この出願は、2015年2月23日に出願された日本出願特願2015−032573号を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2005-032573 for which it applied on February 23, 2015, and takes in those the indications of all here.

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 検索結果
100_1 to 100_N, 100_n server device 100A_1 to 100A_N, 100A_n server device 101_1 to 101_N, 101_n data storage unit 101A_1 to 101A_N, 101A_n data storage unit 102_1 to 102_N, 102_n data conversion unit 102A_1 to 102A_N, 102A_n data conversion unit 103_1 to 103_1 to 103_1 103_n data search unit 103A_1 to 103A_N, 103A_n data search unit 104_n, 104A_n distributed registration data 105_n, 105A_n search data 106_n, 106A_n distributed search request data 107_n, 107A_n distributed search result 200, 200A client device 201, 201A registered data share generation unit 202, 202A query data share generation unit 203, 203A secret sharing decryption unit 204, 204A Registration data 205, 205A Search request data 206, 206A Search results

Claims (9)

秘密情報の1シンボルごとの分散登録データを保存するデータ記憶手段と、
検索処理時に、前記データ記憶手段に保存された前記分散登録データを、複数シンボルを連結した検索用データに変換するデータ変換手段と、
前記検索用データと分散検索要求データとを用いて、他のサーバ装置のデータ検索手段と通信し、前記データ記憶手段の前記分散登録データに対する検索を行って、分散検索結果を出力するデータ検索手段と、
を有するサーバ装置。
Data storage means for storing distributed registration data for each symbol of confidential information;
Data conversion means for converting the distributed registration data stored in the data storage means into search data in which a plurality of symbols are connected , during search processing ;
A data search unit that communicates with a data search unit of another server device using the search data and the distributed search request data, searches the distributed registration data in the data storage unit, and outputs a distributed search result. When,
A server device having.
前記分散登録データは、1シンボルごとの複製型秘密分散法の分散情報として保持し、
前記データ変換手段は、前記データ記憶手段に格納された1シンボルごとの複製型秘密分散法の分散情報を、複数シンボルに対する1つのしきい値秘密分散法の分散情報に変換して前記検索用データを得る、
請求項1に記載のサーバ装置。
The distributed registration data is held as shared information of the duplicate secret sharing method for each symbol,
The data conversion means converts the shared information of the replicated secret sharing method for each symbol stored in the data storage means into the shared information of one threshold secret sharing method for a plurality of symbols to convert the search data. Get
The server device according to claim 1.
前記データ記憶手段は、前記分散登録データとして、しきい値秘密分散法によって変換された秘密情報の分散情報を保持し、
前記データ変換手段は、前記データ記憶手段に保存された秘密情報の分散情報を連結して前記検索用データを取得し、
前記データ検索手段は、前記データ変換手段によって連結された分散情報を用いて、拡大体上の演算で検索して前記分散検索結果を得る、
請求項1に記載のサーバ装置。
It said data storage means, as the dispersion registration data, to maintain the dispersion information of the secret information converted by the threshold secret sharing scheme,
Said data conversion means, wherein acquires search data by connecting the variance information of the secret information stored in the data storage means,
The data search means obtains the distributed search result by performing a search on an extension field using the shared information connected by the data conversion means.
The server device according to claim 1.
各々が請求項1乃至3のいずれか1つに記載のサーバ装置からなる第1乃至第N(Nは2以上の整数)のサーバ装置と、該第1乃至第Nのサーバ装置にネットワークを介して接続されたクライアント装置と、から成る秘匿検索システムであって、
前記クライアント装置は、
登録データから、前記第1乃至第Nのサーバ装置にそれぞれ登録されるべき第1乃至第Nの分散登録データに変換する登録データシェア生成手段と、
検索要求データから、前記第1乃至第Nのサーバ装置へそれぞれ送信するための第1乃至第Nの分散検索要求データに変換するクエリデータシェア生成手段と、
前記第1乃至第Nのサーバ装置からそれぞれ受信した第1乃至第Nの分散検索結果から、検索結果の分散情報を復号する秘密分散復号手段と、
を有する秘匿検索システム。
First to N-th (N is an integer of 2 or more) server devices each comprising the server device according to any one of claims 1 to 3, and the first to N-th server devices via a network. A secret search system consisting of a client device connected by
The client device is
Registration data share generation means for converting the registration data into first to Nth distributed registration data to be registered in the first to Nth server devices, respectively.
Query data share generating means for converting the search request data into the first to Nth distributed search request data to be transmitted to the first to Nth server devices, respectively.
Secret shared decryption means for decrypting the shared information of the search results from the first to Nth distributed search results received from the first to Nth server devices, respectively.
Concealment search system with.
クライアント装置と、該クライアント装置にネットワークを介して接続された第1乃至第N(Nは2以上の整数)のサーバ装置と、を備える検索システムにおける秘匿検索方法であって、
前記クライアント装置によって登録データに対して秘密分散法を用い変換された第1乃至第Nの分散登録データが、前記第n(1≦n≦N)のサーバ装置の第nのデータ記憶手段に前記登録データの1シンボルごとに第nの分散登録データとして保存され、
前記クライアント装置が、検索要求データ前記秘密分散法を用いて第1乃至第Nの分散検索データに変換し、該第1乃至第Nの分散検索データをそれぞれ前記第1乃至第Nのサーバ装置へ送信し、
前記第nのサーバ装置が、検索処理時に、前記第nのデータ記憶手段に保存された前記第nの分散登録データを、複数シンボルを連結した第nの検索用データに変換し、
前記第nのサーバ装置が、前記第nの検索用データと前記第nの分散検索データとを用いて、他のサーバ装置と通信を行いながら、前記第nのデータ記憶手段の前記第nの分散登録データに対する検索を行い、第nの分散検索結果を前記クライアント装置へ送信し、
前記クライアント装置が、前記第1乃至第Nのサーバ装置から受信した第1乃至第Nの分散検索結果に対して、前記秘密分散法の復号手順を実行して、検索結果を復元する、
秘匿検索方法。
A confidential search method in a search system comprising 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,
Distributed registered data of the first through the N-th converted using the secret sharing scheme to the registered data by the client device, wherein the data storage means of the first n of the server apparatus of the first n (1 ≦ n ≦ N) Each symbol of registration data is saved as the nth distributed registration data,
The client device converts the search request data into first to Nth distributed search data using the secret sharing method, and the first to Nth distributed search data are respectively the first to Nth server devices. Send to
The nth server device converts the nth distributed registration data stored in the nth data storage means into nth search data in which a plurality of symbols are connected ,
The n-th server device uses the n-th search data and the n-th distributed search data to communicate with another server device while the n-th data storage means stores the n-th data. A search for the distributed registration data is performed, the n-th distributed search result is transmitted to the client device,
The client device executes a decryption procedure of the secret sharing method on the first to Nth distributed search results received from the first to Nth server devices to restore the search results.
Secret search method.
前記クライアント装置が、前記登録データを複製型秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
前記クライアント装置が、前記検索要求データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
前記第nのサーバ装置が、前記第nの分散登録データを前記Shamirのしきい値秘密分散法の分散データである前記第nの検索用データに変換する、
請求項5に記載の秘匿検索方法。
The client device converts the registration data into the first to Nth distributed search data by a duplicate 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 nth server device converts the nth distributed registration data into the nth search data which is distributed data of the Shamir threshold secret sharing method;
The confidential search method according to claim 5.
前記クライアント装置が、前記登録データをShamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
前記クライアント装置が、前記検索要求データを前記Shamirのしきい値秘密分散法によって前記第1乃至第Nの分散検索データに変換し、
前記第nのサーバ装置が、前記第nの分散登録データを連結して一つのデータとして前記第nの検索用データに変換する、
請求項5に記載の秘匿検索方法。
The client device converts the registration data into the first to Nth 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 by the Shamir threshold secret sharing method;
The n-th server device concatenates the n-th distributed registration data and converts the data into one piece of data into the n-th search data.
The confidential search method according to claim 5.
サーバ装置で検索を実行する検索方法であって、
検索処理時に、秘密情報の1シンボルごとの分散登録データを、複数シンボルを連結した検索用データに変換し、
前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って、分散検索結果を出力する、
検索方法。
A search method for executing a search on a server device,
At the time of search processing , the distributed registration data for each symbol of confidential information is converted to search data in which multiple symbols are linked ,
Using the search data and the distributed search request data, communicating with another server device, performing a search for the distributed registration data, and outputting a distributed search result,
retrieval method.
コンピュータに、
検索処理時に、秘密情報の1シンボルごとの分散登録データを、複数シンボルを連結した検索用データに変換し、
前記検索用データと分散検索要求データとを用いて、他のサーバ装置と通信し、前記分散登録データに対する検索を行って分散検索結果を出力する、ことを実行させる検索プログラム。
On the computer,
At the time of search processing , the distributed registration data for each symbol of confidential information is converted to search data in which multiple symbols are linked ,
A search program that uses the search data and the distributed search request data to communicate with another server device, perform a search on the distributed registration data, and output a distributed search result.
JP2017501912A 2015-02-23 2016-02-17 Secret search system, server device, secret search method, search method, and program Active JP6693503B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015032573 2015-02-23
JP2015032573 2015-02-23
PCT/JP2016/000830 WO2016136201A1 (en) 2015-02-23 2016-02-17 Confidential search system, server device, confidential search method, search method, and recording medium

Publications (2)

Publication Number Publication Date
JPWO2016136201A1 JPWO2016136201A1 (en) 2017-11-30
JP6693503B2 true JP6693503B2 (en) 2020-05-13

Family

ID=56788291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017501912A Active JP6693503B2 (en) 2015-02-23 2016-02-17 Secret search system, server device, secret search method, search method, and program

Country Status (2)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733790B (en) * 2018-05-11 2021-07-02 广州虎牙信息科技有限公司 Data sorting method, device, server and storage medium
CN112000979B (en) * 2019-06-21 2023-07-04 华控清交信息科技(北京)有限公司 Database operation method, system and storage medium for private data

Family Cites Families (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

Also Published As

Publication number Publication date
WO2016136201A1 (en) 2016-09-01
JPWO2016136201A1 (en) 2017-11-30

Similar Documents

Publication Publication Date Title
Dong et al. Achieving an effective, scalable and privacy-preserving data sharing service in cloud computing
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
Bhatia et al. Towards a secure incremental proxy re‐encryption for e‐healthcare data sharing in mobile cloud computing
Liu et al. An efficient privacy-preserving outsourced computation over public data
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
JP6770075B2 (en) Encrypted message search method, message sending / receiving system, terminal, program
Erkin et al. Privacy-preserving distributed clustering
US20200044832A1 (en) System and method for quantum resistant public key encryption
US11075753B2 (en) System and method for cryptographic key fragments management
Zhou et al. A similarity-aware encrypted deduplication scheme with flexible access control in the cloud
Backes et al. Anonymous ram
JPWO2018016330A1 (en) Communication terminal, server device, program
WO2016148281A1 (en) Secret character string calculation system and method, device, and program
Yagoub et al. An adaptive and efficient fully homomorphic encryption technique
JP6693503B2 (en) Secret search system, server device, secret search method, search method, and program
CN113630250A (en) Model training method and system based on data encryption
Huang et al. YI Cloud: Improving user privacy with secret key recovery in cloud storage
EP4080488B1 (en) Secret random number generation system, secret calculation device, secret random number generation method, and program
Al Etaiwi et al. Structured encryption algorithm for text cryptography
Youn et al. Design of additive homomorphic encryption with multiple message spaces for secure and practical storage services over encrypted data
Nita et al. A hybrid searchable encryption scheme for cloud computing
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
Silambarasan et al. Attribute-based convergent encryption key management for secure deduplication in cloud
CN113761585A (en) Data processing method, device and system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170809

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190924

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200330

R150 Certificate of patent or registration of utility model

Ref document number: 6693503

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150