JP5937556B2 - Secret calculation device, secret search system, secret calculation method, secret search method, program - Google Patents

Secret calculation device, secret search system, secret calculation method, secret search method, program Download PDF

Info

Publication number
JP5937556B2
JP5937556B2 JP2013203167A JP2013203167A JP5937556B2 JP 5937556 B2 JP5937556 B2 JP 5937556B2 JP 2013203167 A JP2013203167 A JP 2013203167A JP 2013203167 A JP2013203167 A JP 2013203167A JP 5937556 B2 JP5937556 B2 JP 5937556B2
Authority
JP
Japan
Prior art keywords
random number
secret
search
calculation
prime
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
JP2013203167A
Other languages
Japanese (ja)
Other versions
JP2015068999A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013203167A priority Critical patent/JP5937556B2/en
Publication of JP2015068999A publication Critical patent/JP2015068999A/en
Application granted granted Critical
Publication of JP5937556B2 publication Critical patent/JP5937556B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号応用技術に関し、特に入力データ(検索キーおよび検索対象のデータ)をデータの保管者に対して明かすことなく完全一致検索を行う秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラムに関する。   The present invention relates to a cryptographic application technique, and in particular, a secret calculation device, a secret search system, a secret calculation method, and a secret search that perform an exact match search without revealing input data (search key and search target data) to a data custodian. The present invention relates to a search method and a program.

暗号化されたデータを復元することなく演算結果を得る方法として、秘密計算と呼ばれる方法がある。この秘密計算は、例えば非特許文献1に開示されている。非特許文献1に記載された秘密計算では、まず、入力された数値を断片と呼ばれるデータに変換してn台の秘密計算装置に保持させる。この手順を、以下「断片を分散保持させる」と表現する。断片は、乱数によって秘密計算装置ごとに変わる値となっており、閾値以下の個数の断片からは元の数値を推測することができない。すなわち元の数値は断片に変換されているため、秘匿化されている。非特許文献1に開示された秘密計算では、さらに、入力された数値の断片を用いて、加減算、乗算、大小比較、データ形式変換(整数、二進数)の結果の断片を計算し、n台の秘密計算装置に保持させることができる。ただしこれらの演算は、秘密計算のパラメタとして定められる素数をPとして、有限体GF(P)の上で行われる。データベースのレコードを秘匿した状態で、完全一致検索および区間検索を実行する秘密計算を利用した方法として、特許文献1に記載された方法がある。特許文献1の方法では、まず、検索する属性について秘匿した状態でソートを行う。検索時には、ソート済みの秘匿化データに対して、秘密計算によるランダムスライドおよび大小比較を用いて二分探索を行う。データベースに蓄積されたレコード数をmとするとき、ランダムスライドおよび二分探索に必要な秘密計算装置間の通信量は、それぞれO(m)、O(log(m))である。ただし、秘密計算装置の台数nおよびレコードあたりのデータサイズを定数とする。   As a method for obtaining a calculation result without restoring encrypted data, there is a method called secret calculation. This secret calculation is disclosed in Non-Patent Document 1, for example. In the secret calculation described in Non-Patent Document 1, first, an input numerical value is converted into data called a fragment and held in n secret calculation devices. This procedure is hereinafter expressed as “distributing and holding fragments”. The fragment is a value that changes for each secret computing device depending on the random number, and the original numerical value cannot be estimated from the number of fragments equal to or less than the threshold. That is, since the original numerical value is converted into a fragment, it is concealed. In the secret calculation disclosed in Non-Patent Document 1, a fragment of the result of addition, subtraction, multiplication, size comparison, and data format conversion (integer, binary number) is further calculated using the inputted numerical fragments, and n units Can be held in a secret computing device. However, these operations are performed on the finite field GF (P), where P is a prime number determined as a parameter for the secret calculation. There is a method described in Patent Document 1 as a method using a secret calculation for executing a complete match search and a section search in a state where a record of a database is kept secret. In the method of Patent Document 1, first, sorting is performed in a state where the attributes to be searched are concealed. At the time of the search, a binary search is performed on the sorted concealment data by using a random slide by secret calculation and a size comparison. When the number of records stored in the database is m, the traffic between the secret computing devices required for random slide and binary search is O (m) and O (log (m)), respectively. However, the number n of secret calculation devices and the data size per record are assumed to be constants.

特開2012−150764号公報JP 2012-150764 A

Ivan Damgard, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, and Thomas Toft, “Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation,” TCC 2006, LNCS 3876, pp. 285-304, 2006.Ivan Damgard, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, and Thomas Toft, “Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation,” TCC 2006, LNCS 3876, pp. 285-304, 2006 .

従来の技術では、データベースに蓄積されたレコード件数mが増えるにつれて、検索時に必要な秘密計算装置間の通信量が増加し、検索時間が増大する要因となっていた。従来の方式では、検索時に秘密計算を用いた二分探索を行うため、データベースのレコード数mに対して、秘密計算装置間の通信量がO(log(m))となり、データベースに蓄積されたレコード数mが増加するにつれて通信量が増大する。   In the prior art, as the number m of records stored in the database increases, the amount of communication between the secret computing devices required at the time of search increases, which increases the search time. In the conventional method, since a binary search using a secret calculation is performed at the time of search, the communication amount between the secret calculation devices is O (log (m)) with respect to the number m of records in the database, and the records accumulated in the database As the number m increases, the amount of communication increases.

そこで、本発明では、装置間の通信量が削減される秘密計算装置を提供することを目的とする。   Accordingly, an object of the present invention is to provide a secret computing device that can reduce the amount of communication between devices.

本発明の秘密計算装置は、属性乱数計算部と、属性乱数断片分散保持部と、検索乱数計算部と、検索乱数断片分散保持部と、形式変換部と、素数パラメタ変換部と、タグ計算部を含む。   The secret calculation device of the present invention includes an attribute random number calculation unit, an attribute random number fragment distribution holding unit, a search random number calculation unit, a search random number fragment distribution holding unit, a format conversion unit, a prime parameter conversion unit, and a tag calculation unit including.

第1素数が第2素数の2倍に1を加えた数と等しくなるものとする。属性乱数計算部は、1以上かつ第2素数未満の属性乱数を計算する。属性乱数断片分散保持部は、nを2以上の整数とし、属性乱数の断片をn台の秘密計算装置間で分散保持する。秘密計算の素数パラメタを第2素数とし、1以上かつ第2素数未満の乱数である中間乱数とその逆元の積が第2素数を除数として1を被除数とした剰余と等しくなり、逆元の断片がn台の秘密計算装置間で分散保持されるものとする。検索乱数計算部は、逆元と、属性乱数に基づき秘密計算によって検索乱数を求める。検索乱数断片分散保持部は、検索乱数の断片をn台の秘密計算装置間で分散保持する。形式変換部は、分散保持された検索乱数のデータ形式をビット情報に変換する。素数パラメタ変換部は、秘密計算によって、検索乱数の各ビットにおける秘密計算の素数パラメタを第1素数に変換する。タグ計算部は、第1素数を除数とし、検索対象データに対して生成されたハッシュ値を中間乱数でべき乗した値を被除数とした剰余であるタグ生成引数と、検索乱数の各ビットの断片から、秘密計算によってタグを計算する。   Assume that the first prime number is equal to twice the second prime number plus one. The attribute random number calculator calculates an attribute random number greater than or equal to 1 and less than the second prime number. The attribute random number fragment distribution holding unit sets n to an integer of 2 or more, and distributes and holds attribute random number fragments among n secret computing devices. The prime parameter of the secret calculation is the second prime number, the product of the intermediate random number that is a random number greater than or equal to 1 and less than the second prime number and its inverse element is equal to the remainder with the second prime number as the divisor and 1 as the dividend. Assume that fragments are distributed and held among n secret computing devices. The search random number calculator obtains a search random number by secret calculation based on the inverse element and the attribute random number. The search random number fragment distribution holding unit holds the search random number fragments in a distributed manner among the n secret computing devices. The format conversion unit converts the data format of the search random number stored in a distributed manner into bit information. The prime parameter conversion unit converts the prime parameter of the secret calculation in each bit of the search random number into the first prime number by secret calculation. The tag calculation unit includes a tag generation argument that is a remainder having a value obtained by dividing the first prime number by a power of an intermediate random number and a hash value generated for the search target data, and a fragment of each bit of the search random number Calculate the tag by secret calculation.

本発明の秘密計算装置によれば、装置間の通信量が削減される。   According to the secret computing device of the present invention, the amount of communication between devices is reduced.

実施例1の秘匿検索システムの概要を示すブロック図。1 is a block diagram illustrating an overview of a secret search system according to a first embodiment. 実施例1のデータ登録装置のデータ登録部の構成を示すブロック図。FIG. 2 is a block diagram illustrating a configuration of a data registration unit of the data registration apparatus according to the first embodiment. 実施例1のデータ検索装置のデータ検索部の構成を示すブロック図。FIG. 3 is a block diagram illustrating a configuration of a data search unit of the data search apparatus according to the first embodiment. 実施例1のデータ登録装置の第1検索乱数前処理部の構成を示すブロック図。FIG. 3 is a block diagram illustrating a configuration of a first search random number preprocessing unit of the data registration device according to the first embodiment. 実施例1のデータ検索装置の第2検索乱数前処理部の構成を示すブロック図。The block diagram which shows the structure of the 2nd search random number pre-processing part of the data search device of Example 1. FIG. 実施例1の秘密計算装置の属性乱数生成部の構成を示すブロック図。FIG. 3 is a block diagram illustrating a configuration of an attribute random number generation unit of the secret computing device according to the first embodiment. 実施例1の秘密計算装置の検索乱数生成部の構成を示すブロック図。FIG. 3 is a block diagram illustrating a configuration of a search random number generation unit of the secret computing device according to the first embodiment. 実施例1の秘密計算装置のタグ生成部の構成を示すブロック図。FIG. 3 is a block diagram illustrating a configuration of a tag generation unit of the secret calculation device according to the first embodiment. 実施例1の秘密計算装置の検索部の構成を示すブロック図。FIG. 3 is a block diagram illustrating a configuration of a search unit of the secret computing device according to the first embodiment. 実施例1の秘匿検索システムの属性乱数生成動作を示すシーケンス図。FIG. 3 is a sequence diagram illustrating an attribute random number generation operation of the secret search system according to the first embodiment. 実施例1の秘匿検索システムの検索乱数生成動作を示すシーケンス図。FIG. 3 is a sequence diagram illustrating a search random number generation operation of the secret search system according to the first embodiment. 実施例1の秘匿検索システムの検索乱数生成動作を示すシーケンス図。FIG. 3 is a sequence diagram illustrating a search random number generation operation of the secret search system according to the first embodiment. 実施例1の秘匿検索システムのデータ検索時のタグ計算動作を示すシーケンス図。The sequence diagram which shows the tag calculation operation at the time of the data search of the secret search system of Example 1. FIG. 実施例1の秘匿検索システムのデータ検索時のタグ計算動作を示すシーケンス図。The sequence diagram which shows the tag calculation operation at the time of the data search of the secret search system of Example 1. FIG. 実施例1の秘匿検索システムのデータ登録時のタグ計算動作を示すシーケンス図。The sequence diagram which shows the tag calculation operation | movement at the time of the data registration of the secret search system of Example 1. FIG. 実施例1の秘匿検索システムのデータ検索動作を示すシーケンス図。FIG. 3 is a sequence diagram illustrating a data search operation of the secret search system according to the first embodiment.

本発明では、検索対象データの登録時に識別用のタグを付与し、タグをすべての秘密計算装置で共有する。検索時には、検索したいデータ(例えば「電話番号:123−456−789」など)からタグを生成し、予め付与されたタグと比較することで検索を実現する。タグの生成には秘密計算が必要であるが、タグは元のデータに対して一意に定まるため、予め付与されたタグとの比較には一般的な検索(例えばインデックスによる検索)を用いることができる。このように、生成されたタグと予め付与されたタグとの比較は一般的な検索で実現可能であるため、以下、本発明の実施例として、タグを生成するシステムについて具体的に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   In the present invention, a tag for identification is assigned at the time of registration of search target data, and the tag is shared by all the secret computing devices. When searching, a tag is generated from data to be searched (for example, “telephone number: 123-456-789”), and the search is realized by comparing with a tag given in advance. Although a secret calculation is necessary to generate a tag, since a tag is uniquely determined with respect to the original data, a general search (for example, search by index) should be used for comparison with a tag assigned in advance. it can. As described above, since the comparison between the generated tag and the tag given in advance can be realized by a general search, a system for generating a tag will be specifically described below as an embodiment of the present invention. In addition, the same number is attached | subjected to the structure part which has the same function, and duplication description is abbreviate | omitted.

以下、図1を参照して本発明の実施例1の秘匿検索システムの概要について説明する。図1は、実施例1の秘匿検索システム1000の概要を示すブロック図である。図1に示すように、本実施例の秘匿検索システム1000は、データ登録装置1と、n台(nは2以上の整数)の秘密計算装置2−1、2−2、…、2−nと、データ検索装置3を含む。以下、秘密計算装置2−1、2−2、…、2−nを代表して表す時は、秘密計算装置2と表現し、秘密計算装置2について説明した事項は、秘密計算装置2−1、2−2、…、2−nの全てにおいて該当する事項であるものとする。データ登録装置1と、秘密計算装置2と、データ検索装置3はネットワーク9を通じて通信可能に無線、あるいは有線で接続されている。本実施例においては、データの登録をデータ登録装置1が実行し、データの検索をデータ検索装置3が実行するものとし、データの登録と検索を別々の装置で行う構成を示したが、登録と検索が同じ装置でも実現可能であり、それぞれ複数の装置があっても構わない。   Hereinafter, an outline of the secret search system according to the first embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram illustrating an overview of a secret search system 1000 according to the first embodiment. As shown in FIG. 1, the secret search system 1000 of this embodiment includes a data registration device 1 and n (n is an integer of 2 or more) secret calculation devices 2-1, 2-2,. And a data search device 3. Hereinafter, when the secret computing devices 2-1, 2-2,..., 2-n are representatively represented, they are expressed as the secret computing device 2, and the items described for the secret computing device 2 are the secret computing device 2-1. 2-2,..., 2-n are all relevant items. The data registration device 1, the secret calculation device 2, and the data search device 3 are connected via a network 9 so that they can communicate with each other wirelessly or by wire. In this embodiment, the data registration device 1 executes data registration, the data search device 3 executes data search, and the data registration and search are performed by separate devices. The search can be realized by the same device, and there may be a plurality of devices.

データ登録装置1は、データ登録部11、第1検索乱数前処理部12を含む。秘密計算装置2−1、2−2、…、2−nは、属性乱数生成部21と、検索乱数生成部22と、タグ生成部23と、保管部24と、検索部25を含む。データ検索装置3は、データ検索部31と、第2検索乱数前処理部32を含む。   The data registration device 1 includes a data registration unit 11 and a first search random number preprocessing unit 12. The secret computing devices 2-1, 2-2,..., 2-n include an attribute random number generation unit 21, a search random number generation unit 22, a tag generation unit 23, a storage unit 24, and a search unit 25. The data search device 3 includes a data search unit 31 and a second search random number preprocessing unit 32.

図2、図3、図4、図5を参照して、データ登録装置1、データ検索装置3の構成の詳細について説明する。図2は本実施例のデータ登録装置1のデータ登録部11の構成を示すブロック図である。図3は本実施例のデータ検索装置3のデータ検索部31の構成を示すブロック図である。図4は本実施例のデータ登録装置1の第1検索乱数前処理部12の構成を示すブロック図である。図5は本実施例のデータ検索装置3の第2検索乱数前処理部32の構成を示すブロック図である。図2に示すようにデータ登録装置1のデータ登録部11は、属性乱数生成要求部110と、第1検索乱数生成要求部111と、第1ハッシュ値生成部112と、第1引数計算部113と、第1引数送信部114と、登録データ断片生成部115と、登録データ断片送信部116を含む。図3に示すようにデータ検索装置3のデータ検索部31は、第2検索乱数生成要求部311と、第2ハッシュ値生成部312と、第2引数計算部313と、第2引数送信部314を含む。図4に示すように、データ登録装置1の第1検索乱数前処理部12は、第1中間乱数生成部121と、第1逆元計算部122と、第1逆元断片分散保持部123と、第1完了通知部124を含む。図5に示すように、データ検索装置3の第2検索乱数前処理部32は、第2中間乱数生成部321と、第2逆元計算部322と、第2逆元断片分散保持部323と、第2完了通知部324を含む。   Details of the configuration of the data registration device 1 and the data search device 3 will be described with reference to FIGS. 2, 3, 4, and 5. FIG. 2 is a block diagram showing the configuration of the data registration unit 11 of the data registration apparatus 1 of this embodiment. FIG. 3 is a block diagram showing the configuration of the data search unit 31 of the data search device 3 of this embodiment. FIG. 4 is a block diagram illustrating a configuration of the first search random number preprocessing unit 12 of the data registration device 1 of the present embodiment. FIG. 5 is a block diagram showing the configuration of the second search random number preprocessing unit 32 of the data search device 3 of this embodiment. As shown in FIG. 2, the data registration unit 11 of the data registration device 1 includes an attribute random number generation request unit 110, a first search random number generation request unit 111, a first hash value generation unit 112, and a first argument calculation unit 113. A first argument transmission unit 114, a registration data fragment generation unit 115, and a registration data fragment transmission unit 116. As shown in FIG. 3, the data search unit 31 of the data search device 3 includes a second search random number generation request unit 311, a second hash value generation unit 312, a second argument calculation unit 313, and a second argument transmission unit 314. including. As illustrated in FIG. 4, the first search random number preprocessing unit 12 of the data registration device 1 includes a first intermediate random number generation unit 121, a first inverse element calculation unit 122, a first inverse element fragment distribution holding unit 123, and The first completion notification unit 124 is included. As shown in FIG. 5, the second search random number preprocessing unit 32 of the data search device 3 includes a second intermediate random number generation unit 321, a second inverse element calculation unit 322, and a second inverse element fragment distribution holding unit 323. The second completion notification unit 324 is included.

以下、図6、図7、図8、図9を参照して秘密計算装置2の構成の詳細について説明する。図6は本実施例の秘密計算装置2の属性乱数生成部21の構成を示すブロック図である。図7は本実施例の秘密計算装置2の検索乱数生成部22の構成を示すブロック図である。図8は本実施例の秘密計算装置2のタグ生成部23の構成を示すブロック図である。図9は本実施例の秘密計算装置2の検索部25の構成を示すブロック図である。図6に示すように秘密計算装置2の属性乱数生成部21は、素数生成部211と、属性乱数計算部212と、属性乱数断片分散保持部213と、属性乱数生成完了通知部214を含む。図7に示すように秘密計算装置2の検索乱数生成部22は、検索乱数計算部221と、検索乱数断片分散保持部222と、形式変換部223と、素数パラメタ変換部224と、検索乱数生成完了通知部225を含む。図8に示すように秘密計算装置2のタグ生成部23は、タグ計算部231と、タグ保持部232と、タグ登録完了通知部233を含む。図9に示すように秘密計算装置2の検索部25は、データ要求部251と、データ取得部252と、検索実行部253と、検索結果送信部254を含む。なお、本実施例では秘密計算装置2内に素数生成部211を含む構成としたが、これに限られず、素数生成部211は、データ登録装置1のデータ登録部11内に含まれることとしてもよい。   Hereinafter, the configuration of the secret computing device 2 will be described in detail with reference to FIG. 6, FIG. 7, FIG. 8, and FIG. FIG. 6 is a block diagram showing a configuration of the attribute random number generation unit 21 of the secret calculation device 2 of the present embodiment. FIG. 7 is a block diagram showing the configuration of the search random number generation unit 22 of the secret calculation device 2 of the present embodiment. FIG. 8 is a block diagram illustrating a configuration of the tag generation unit 23 of the secret calculation apparatus 2 according to the present embodiment. FIG. 9 is a block diagram showing the configuration of the search unit 25 of the secret calculation apparatus 2 of this embodiment. As shown in FIG. 6, the attribute random number generation unit 21 of the secret calculation device 2 includes a prime number generation unit 211, an attribute random number calculation unit 212, an attribute random number fragment distribution holding unit 213, and an attribute random number generation completion notification unit 214. As shown in FIG. 7, the search random number generation unit 22 of the secret calculation device 2 includes a search random number calculation unit 221, a search random number fragment distribution holding unit 222, a format conversion unit 223, a prime parameter conversion unit 224, and a search random number generation. A completion notification unit 225 is included. As shown in FIG. 8, the tag generation unit 23 of the secret calculation device 2 includes a tag calculation unit 231, a tag holding unit 232, and a tag registration completion notification unit 233. As shown in FIG. 9, the search unit 25 of the secret computing device 2 includes a data request unit 251, a data acquisition unit 252, a search execution unit 253, and a search result transmission unit 254. In the present embodiment, the secret calculation device 2 includes the prime number generation unit 211. However, the present invention is not limited to this, and the prime number generation unit 211 may be included in the data registration unit 11 of the data registration device 1. Good.

タグの生成には、事前に二種類の乱数を準備する必要がある。以下、<属性乱数生成動作>、<検索乱数生成動作>、<データ検索時のタグ計算動作>、<データ登録時のタグ計算動作(登録データの断片の分散保持)>、<データ検索動作>について順に説明する。<属性乱数生成動作>については、検索対象の属性ごとに実行する必要がある。<検索乱数生成動作>については、一回のタグ生成ごとに必要になるが、予め検索乱数を生成して蓄積しておくことが可能である。予め検索乱数を蓄積しておけば、検索時に<検索乱数生成動作>の処理を省くことができるため、タグ生成時の効率を上げることができる。以下、n=3を例として上述の各動作について説明する。   To generate a tag, it is necessary to prepare two types of random numbers in advance. Hereinafter, <attribute random number generation operation>, <search random number generation operation>, <tag calculation operation during data search>, <tag calculation operation during data registration (distributed retention of registered data fragments)>, <data search operation> Will be described in order. <Attribute random number generation operation> needs to be executed for each attribute to be searched. <Search random number generation operation> is necessary for each tag generation, but it is possible to generate and store search random numbers in advance. If the search random numbers are stored in advance, the processing of <search random number generation operation> can be omitted at the time of search, and the efficiency at the time of tag generation can be increased. Hereinafter, each operation described above will be described by taking n = 3 as an example.

<属性乱数生成動作>
図10を参照して本実施例の秘匿検索システム1000の属性乱数生成動作について説明する。図10は本実施例の秘匿検索システム1000の属性乱数生成動作を示すシーケンス図である。図10に示すように、属性乱数が生成済みでない場合(図10のNOの枠内参照)、データ登録装置1のデータ登録部11の属性乱数生成要求部110は、n台の秘密計算装置間2−1、2−2、…、2−nに属性乱数生成要求を送信する(S110)。秘密計算装置2の属性乱数生成部21の素数生成部211は、第1素数pが第2素数qの2倍に1を加えた数と等しくなるように(p=2q+1)、第1素数p、第2素数qを生成する(S211)。なお、素数生成部211が秘密計算装置2内ではなく、データ登録装置1のデータ登録部11内に含まれる場合には、秘密計算装置2はステップS211を実行しない。この場合、秘密計算装置2の属性乱数生成部21は、データ登録装置1のデータ登録部11内の素数生成部211から第1素数p、第2素数qを取得する。属性乱数生成部21の属性乱数計算部212は、秘密計算により、1以上かつ第2素数q未満の属性乱数r(rは整数)を計算する(S212)。属性乱数生成部21の属性乱数断片分散保持部213は、属性乱数rの断片をn台の秘密計算装置間で分散保持する(S213)。ステップS212、S213の具体的な方法は、例えば参考非特許文献1の2章(Joint Random Non-Zero Sharing)に開示されている。属性乱数生成部21の属性乱数生成完了通知部214は、データ登録装置1のデータ登録部11に属性乱数生成の完了通知を送信する(S214)。
(参考非特許文献1)Naoto Kiribuchi, Ryo Kato, Takashi Nishide, Tsukasa Endo, and Hiroshi Yoshiura, “Accelerating Multiparty Computation by Efficient Random Number Bitwise-Sharing Protocols,” WISA 2011, LNCS 7115, pp. 187-202, 2012.
<Attribute random number generation operation>
The attribute random number generation operation of the secret search system 1000 of this embodiment will be described with reference to FIG. FIG. 10 is a sequence diagram showing the attribute random number generation operation of the secret search system 1000 of this embodiment. As shown in FIG. 10, when the attribute random number has not been generated (see NO frame in FIG. 10), the attribute random number generation request unit 110 of the data registration unit 11 of the data registration device 1 The attribute random number generation request is transmitted to 2-1, 2-2, ..., 2-n (S110). The prime number generator 211 of the attribute random number generator 21 of the secret computing device 2 sets the first prime number p so that the first prime number p is equal to the number obtained by adding 1 to twice the second prime number q (p = 2q + 1). The second prime number q is generated (S211). Note that when the prime number generation unit 211 is included not in the secret calculation device 2 but in the data registration unit 11 of the data registration device 1, the secret calculation device 2 does not execute step S211. In this case, the attribute random number generation unit 21 of the secret computing device 2 acquires the first prime number p and the second prime number q from the prime number generation unit 211 in the data registration unit 11 of the data registration device 1. The attribute random number calculation unit 212 of the attribute random number generation unit 21 calculates an attribute random number r (r is an integer) of 1 or more and less than the second prime number q by secret calculation (S212). The attribute random number fragment distribution holding unit 213 of the attribute random number generation unit 21 distributes and holds the fragments of the attribute random number r among the n secret computing devices (S213). Specific methods of steps S212 and S213 are disclosed in Chapter 2 (Joint Random Non-Zero Sharing) of Reference Non-Patent Document 1, for example. The attribute random number generation completion notification unit 214 of the attribute random number generation unit 21 transmits an attribute random number generation completion notification to the data registration unit 11 of the data registration device 1 (S214).
(Reference Non-Patent Document 1) Naoto Kiribuchi, Ryo Kato, Takashi Nishide, Tsukasa Endo, and Hiroshi Yoshiura, “Accelerating Multiparty Computation by Efficient Random Number Bitwise-Sharing Protocols,” WISA 2011, LNCS 7115, pp. 187-202, 2012 .

<検索乱数生成動作>
図11、図12を参照して本実施例の秘匿検索システム1000の検索乱数生成動作について説明する。図11、図12は本実施例の秘匿検索システム1000の検索乱数生成動作を示すシーケンス図である。図11に示すように、検索乱数が生成済みでない場合(図11のNOの枠内参照)、データ登録装置1のデータ登録部11の第1検索乱数生成要求部111は、第1検索乱数前処理部12に検索乱数の生成要求を送信する(S111)。データ登録装置1の第1検索乱数前処理部12の第1中間乱数生成部121は、1以上かつ第2素数q未満の中間乱数Rを生成する(S121)。第1検索乱数前処理部12の第1逆元計算部122は、中間乱数Rとその逆元R−1の積が、第2素数qを除数として1を被除数とした剰余と等しくなるように(R×R−1=1 mod q)、中間乱数Rの逆元R−1を計算する(S122)。第1検索乱数前処理部12の第1逆元断片分散保持部123は、逆元R−1の断片をn台の秘密計算装置間で分散保持する(S123)。
<Search random number generation operation>
The search random number generation operation of the secret search system 1000 according to the present embodiment will be described with reference to FIGS. 11 and 12 are sequence diagrams showing search random number generation operation of the secret search system 1000 of the present embodiment. As shown in FIG. 11, when the search random number has not been generated (refer to the NO frame in FIG. 11), the first search random number generation request unit 111 of the data registration unit 11 of the data registration device 1 A request for generating a search random number is transmitted to the processing unit 12 (S111). The first intermediate random number generation unit 121 of the first search random number preprocessing unit 12 of the data registration device 1 generates an intermediate random number R that is 1 or more and less than the second prime number q (S121). The first inverse element calculation unit 122 of the first search random number preprocessing unit 12 makes the product of the intermediate random number R and its inverse element R −1 equal to the remainder with the second prime number q as the divisor and 1 as the dividend. (R × R −1 = 1 mod q), the inverse element R −1 of the intermediate random number R is calculated (S122). The first inverse element fragment distribution holding unit 123 of the first search random number preprocessing unit 12 holds the fragments of the inverse element R- 1 in a distributed manner among the n secret computing devices (S123).

秘密計算装置2の検索乱数生成部22の検索乱数計算部221は、秘密計算の素数パラメタPを第2素数qとし、属性乱数rと前記逆元R−1に基づき、秘密計算によって検索乱数r’=r×R−1を求める(S221)。検索乱数生成部22の検索乱数断片分散保持部222は、検索乱数r’の断片をn台の秘密計算装置間で分散保持する(S222)。検索乱数生成部22の形式変換部223は、分散保持された検索乱数r’のデータ形式を整数から二進数(ビット情報)に変換する(S223)。ステップS223の具体的な方法として、例えば非特許文献1の3章に記載された方法がある。検索乱数生成部22の素数パラメタ変換部224は、秘密計算によって、検索乱数r’の各ビットにおける秘密計算の素数パラメタPを第2素数qから第1素数pに変換する(S224)。ステップS224の具体的な方法として、例えば参考非特許文献2の5.2節(Conversion between bit shares)に記載された方法がある。検索乱数生成部22の検索乱数生成完了通知部225は、データ登録装置1の第1検索乱数前処理部12に検索乱数生成の完了通知を送信する(S225)。データ登録装置1の第1検索乱数前処理部12の第1完了通知部124は、検索乱数生成の完了通知を受信した場合に、データ登録部11に検索乱数生成の完了通知を送信する(S124)。
(参考非特許文献2)Aleksandr Yampolskiy, “Efficient Cryptographic Tools for Secure Distributed Computing,” PhD Thesis, Yale University, 2006.
The search random number calculation unit 221 of the search random number generation unit 22 of the secret calculation device 2 sets the prime parameter P of the secret calculation to the second prime number q, and uses the search random number r by secret calculation based on the attribute random number r and the inverse element R −1. '= R × R −1 is obtained (S221). The search random number fragment distribution holding unit 222 of the search random number generation unit 22 distributes and holds the fragments of the search random number r ′ among the n secret calculation devices (S222). The format conversion unit 223 of the search random number generation unit 22 converts the data format of the search random number r ′ held in a distributed manner from an integer to a binary number (bit information) (S223). As a specific method of step S223, for example, there is a method described in Chapter 3 of Non-Patent Document 1. The prime parameter conversion unit 224 of the search random number generation unit 22 converts the prime parameter P of the secret calculation in each bit of the search random number r ′ from the second prime number q to the first prime number p by secret calculation (S224). As a specific method of step S224, for example, there is a method described in Section 5.2 (Conversion between bit shares) of Reference Non-Patent Document 2. The search random number generation completion notification unit 225 of the search random number generation unit 22 transmits a search random number generation completion notification to the first search random number preprocessing unit 12 of the data registration device 1 (S225). The first completion notification unit 124 of the first search random number preprocessing unit 12 of the data registration device 1 transmits a search random number generation completion notification to the data registration unit 11 when receiving a search random number generation completion notification (S124). ).
(Reference Non-Patent Document 2) Aleksandr Yampolskiy, “Efficient Cryptographic Tools for Secure Distributed Computing,” PhD Thesis, Yale University, 2006.

データ検索装置3における検索乱数生成動作は、前述同様である。図12に示すように、検索乱数生成動作は図11と同じように実行される。具体的には、データ検索部31とデータ登録部11の動作、第2検索乱数前処理部32と第1検索乱数前処理部12の動作がそれぞれ同じである。従って、第1検索乱数生成要求部111と第2検索乱数生成要求部311の動作、第1中間乱数生成部121と第2中間乱数生成部321の動作、第1逆元計算部122と第2逆元計算部322の動作、第1逆元断片分散保持部123と第2逆元断片分散保持部323の動作、第1完了通知部124と第2完了通知部324の動作がそれぞれ同じである。   The search random number generation operation in the data search device 3 is the same as described above. As shown in FIG. 12, the search random number generation operation is executed in the same manner as in FIG. Specifically, the operations of the data search unit 31 and the data registration unit 11, and the operations of the second search random number preprocessing unit 32 and the first search random number preprocessing unit 12 are the same. Accordingly, the operations of the first search random number generation request unit 111 and the second search random number generation request unit 311, the operations of the first intermediate random number generation unit 121 and the second intermediate random number generation unit 321, the first inverse element calculation unit 122 and the second The operations of the inverse element calculation unit 322, the operations of the first inverse element fragment distribution holding unit 123 and the second inverse element fragment distribution holding unit 323, and the operations of the first completion notification unit 124 and the second completion notification unit 324 are the same. .

<データ検索時のタグ計算動作>
図13、図14を参照して本実施例の秘匿検索システム1000のデータ検索時のタグ計算動作について説明する。図13、図14は本実施例の秘匿検索システム1000のデータ検索時のタグ計算動作を示すシーケンス図である。検索したいデータをxと表す。
図13に示すように、データ登録装置1のデータ登録部11の第1ハッシュ値生成部112は、暗号学的ハッシュ関数、例えばSHA−256に基づいて検索対象データxに対するハッシュ値wを生成する(S112)。データ登録部11の第1引数計算部113は、第1素数pを除数として、ハッシュ値wを中間乱数Rでべき乗した値(w)を被除数とした剰余をタグ生成引数cとして計算する(c=w mod p、S113)。データ登録部11の第1引数送信部114は、タグ生成引数cをn台の秘密計算装置2−1、2−2、…、2−nに送信する(S114)。
<Tag calculation operation during data retrieval>
The tag calculation operation at the time of data search of the secret search system 1000 of the present embodiment will be described with reference to FIGS. FIG. 13 and FIG. 14 are sequence diagrams showing the tag calculation operation at the time of data search of the secret search system 1000 of this embodiment. Data to be searched is represented as x.
As illustrated in FIG. 13, the first hash value generation unit 112 of the data registration unit 11 of the data registration device 1 generates a hash value w for the search target data x based on a cryptographic hash function, for example, SHA-256. (S112). The first argument calculation unit 113 of the data registration unit 11 calculates, as a tag generation argument c, a remainder in which a first prime number p is a divisor and a hash value w is a power (an intermediate random number R ) (w R ) as a dividend. c = w R mod p, S113). The first argument transmission unit 114 of the data registration unit 11 transmits the tag generation argument c to the n secret calculation devices 2-1, 2-2,..., 2-n (S114).

秘密計算装置2のタグ生成部23のタグ計算部231は、タグ生成引数cと検索乱数r’の各ビットの断片から、秘密計算によってタグy=cr’を計算する(S231)。具体的な方法として、例えば参考非特許文献2の5.6.1節に記載された方法がある。タグ生成部23のタグ保持部232は、yをタグとして保管部24に保持する(S232)。タグ生成部23のタグ登録完了通知部233は、データ登録装置1のデータ登録部11にタグ登録の完了通知を送信する(S233)。   The tag calculation unit 231 of the tag generation unit 23 of the secret calculation device 2 calculates the tag y = cr ′ by secret calculation from the fragment of each bit of the tag generation argument c and the search random number r ′ (S231). As a specific method, for example, there is a method described in Section 5.6.1 of Reference Non-Patent Document 2. The tag holding unit 232 of the tag generation unit 23 holds y as a tag in the storage unit 24 (S232). The tag registration completion notification unit 233 of the tag generation unit 23 transmits a tag registration completion notification to the data registration unit 11 of the data registration device 1 (S233).

データ検索装置3におけるデータ検索時のタグ計算動作は、前述同様である。図14に示すように、データ検索時のタグ計算動作は図13と同じように実行される。具体的には、データ検索部31とデータ登録部11の動作が同じである。従って、第1ハッシュ値生成部112と第2ハッシュ値生成部312の動作、第1引数計算部113と第2引数計算部313の動作、第1引数送信部114と第2引数送信部314の動作がそれぞれ同じである。   The tag calculation operation at the time of data search in the data search device 3 is the same as described above. As shown in FIG. 14, the tag calculation operation at the time of data search is executed in the same manner as in FIG. Specifically, the operations of the data search unit 31 and the data registration unit 11 are the same. Accordingly, the operations of the first hash value generator 112 and the second hash value generator 312, the operations of the first argument calculator 113 and the second argument calculator 313, the first argument transmitter 114 and the second argument transmitter 314. The operations are the same.

<データ登録時のタグ計算動作(登録データの断片の分散保持)>
データ登録時にも同じ方法によってタグを生成し、対応する断片にタグを付与する。図15を参照して具体的に説明する。図15は本実施例の秘匿検索システム1000のデータ登録時のタグ計算動作を示すシーケンス図である。本明細書では本項が<属性乱数生成動作>の後に記載されているが、これに限らず、これらの実行の順序が逆になってもよい。図15に示すように、データ登録装置1のデータ登録部11の登録データ断片生成部115は、登録データの断片を生成する(S115)。データ登録部11の登録データ断片送信部116は、登録データの断片をn台の秘密計算装置2−1、2−2、…、2−nに送信する(S116)。秘密計算装置2のタグ生成部23のタグ計算部231は、前述同様にタグを計算する(S231A)。タグ生成部23のタグ保持部232は、前述同様、タグを保管部24に保持する(S232A)。タグ生成部23のタグ登録完了通知部233は、前述同様、データ登録装置1のデータ登録部11に断片登録の完了通知を送信する(S233A)。「登録データの断片の分散保持」については、タグの生成とは別の処理であり、背景技術の欄で説明した秘密計算における「入力された数値を断片と呼ばれるデータに変換してn台の秘密計算装置に保持させる」部分を指す。
<Tag calculation operation during data registration (distributed retention of registered data fragments)>
A tag is generated by the same method at the time of data registration, and the tag is assigned to the corresponding fragment. This will be specifically described with reference to FIG. FIG. 15 is a sequence diagram showing a tag calculation operation at the time of data registration of the secret search system 1000 of this embodiment. In this specification, this section is described after <attribute random number generation operation>. However, the present invention is not limited to this, and the order of execution may be reversed. As shown in FIG. 15, the registration data fragment generation unit 115 of the data registration unit 11 of the data registration device 1 generates a fragment of registration data (S115). The registration data fragment transmission unit 116 of the data registration unit 11 transmits the registration data fragment to the n secret computing devices 2-1, 2-2,..., 2-n (S116). The tag calculation unit 231 of the tag generation unit 23 of the secret calculation device 2 calculates a tag in the same manner as described above (S231A). The tag holding unit 232 of the tag generation unit 23 holds the tag in the storage unit 24 as described above (S232A). As described above, the tag registration completion notification unit 233 of the tag generation unit 23 transmits a fragment registration completion notification to the data registration unit 11 of the data registration device 1 (S233A). “Distributed retention of registered data fragments” is a process different from tag generation. In the secret calculation described in the background art section, “input numerical values are converted into data called fragments to generate n This refers to the part that is kept in the secret computing device.

<データ検索動作>
検索時には、検索したいデータからタグを生成する。検索したいデータと登録したデータが同じならばタグも同じになるため、予め付与されたタグと検索時に生成したタグを比較し、一般的な検索(例えばハッシュ値探索)により検索が可能になる。図16を参照して具体的に説明する。図16は本実施例の秘匿検索システム1000のデータ検索動作を示すシーケンス図である。図16のシーケンスは、図14のシーケンスに続けて実行される。図16に示すように、秘密計算装置2の検索部25のデータ要求部251は、タグyを参照して、検索対象データの出力を保管部24に要求する(S251)。検索部25のデータ取得部252は、保管部24から検索対象データを取得する(S252)。検索実行部253は、検索を実行する(S253)。検索部25の検索結果送信部254は、検索結果をデータ検索装置3のデータ検索部31に送信する(S254)。
<Data search operation>
When searching, a tag is generated from the data to be searched. If the data to be searched and the registered data are the same, the tag is also the same. Therefore, the tag assigned in advance is compared with the tag generated at the time of search, and the search can be performed by a general search (for example, hash value search). This will be specifically described with reference to FIG. FIG. 16 is a sequence diagram showing a data search operation of the secret search system 1000 of this embodiment. The sequence of FIG. 16 is executed following the sequence of FIG. As shown in FIG. 16, the data request unit 251 of the search unit 25 of the secret computing device 2 refers to the tag y and requests the storage unit 24 to output search target data (S251). The data acquisition unit 252 of the search unit 25 acquires search target data from the storage unit 24 (S252). The search execution unit 253 executes a search (S253). The search result transmission unit 254 of the search unit 25 transmits the search result to the data search unit 31 of the data search device 3 (S254).

本実施例の秘匿検索システム1000、データ登録装置1、秘密計算装置2、データ検索装置3のいずれかによれば、検索時に必要な秘密計算装置間の通信がタグ生成に関する秘密計算部分だけであるため、従来O(log(m))であった通信量がレコード数mによらずO(1)に削減される。   According to any one of the secret search system 1000, the data registration device 1, the secret calculation device 2, and the data search device 3 according to the present embodiment, the communication between the secret calculation devices necessary for the search is only the secret calculation portion related to tag generation. For this reason, the communication amount that has conventionally been O (log (m)) is reduced to O (1) regardless of the number of records m.

上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。   The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.

また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。   Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。   The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.

なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer). In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

Claims (5)

第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算部と、
nを2以上の整数とし、
前記属性乱数の断片をn台の秘密計算装置間で分散保持する属性乱数断片分散保持部と、
秘密計算の素数パラメタを前記第2素数とし、
1以上かつ前記第2素数未満の乱数である中間乱数とその逆元の積が前記第2素数を除数として1を被除数とした剰余と等しくなり、前記逆元の断片が前記n台の秘密計算装置間で分散保持されるものとし、
前記逆元と、前記属性乱数に基づき秘密計算によって検索乱数を求める検索乱数計算部と、
前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持部と、
前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換部と、
秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換部と、
前記第1素数を除数とし、検索対象データに対して生成されたハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余であるタグ生成引数と、前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算部を含む
秘密計算装置。
The first prime number is equal to twice the second prime number plus 1;
An attribute random number calculation unit for calculating an attribute random number greater than or equal to 1 and less than the second prime number;
n is an integer greater than or equal to 2,
An attribute random number fragment distribution holding unit for distributing and holding fragments of the attribute random numbers among n secret computing devices;
The prime parameter of the secret calculation is the second prime number,
A product of an intermediate random number that is a random number greater than or equal to 1 and less than the second prime number and its inverse element is equal to a remainder with the second prime number as a divisor and 1 as a dividend, and the inverse element fragments are the n secret computations. It shall be distributed and held among devices,
A search random number calculation unit for obtaining a search random number by a secret calculation based on the inverse element and the attribute random number;
A search random number fragment distribution holding unit that holds the search random number fragments distributed among the n secret computing devices;
A format converter for converting the data format of the search random number stored in a distributed manner into bit information;
A prime parameter conversion unit for converting the prime parameter of the secret calculation in each bit of the search random number into the first prime by secret calculation;
From the tag generation argument which is a remainder with the first prime number as a divisor and the hash value generated for the search target data raised to the power of the intermediate random number as a dividend, and a fragment of each bit of the search random number, a secret A secret calculation device including a tag calculation unit for calculating a tag by calculation.
nを2以上の整数とし、n台の秘密計算装置と、データ登録装置とを含む秘匿検索システムであって、
前記秘密計算装置は、
第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算部と、
前記属性乱数の断片を前記n台の秘密計算装置間で分散保持する属性乱数断片分散保持部を含み、
前記データ登録装置は、
1以上かつ前記第2素数未満の中間乱数を生成する中間乱数生成部と、
前記中間乱数とその逆元の積が、前記第2素数を除数として1を被除数とした剰余と等しくなるように、前記逆元を計算する逆元計算部と、
前記逆元の断片を前記n台の秘密計算装置間で分散保持する逆元断片分散保持部を含み、
前記秘密計算装置はさらに、
秘密計算の素数パラメタを前記第2素数とし、前記属性乱数と前記逆元に基づき、秘密計算によって検索乱数を求める検索乱数計算部と、
前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持部と、
前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換部と、
秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換部を含み、
前記データ登録装置はさらに、
ハッシュ関数に基づいて検索対象データに対するハッシュ値を生成するハッシュ値生成部と、
前記第1素数を除数として、前記ハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余をタグ生成引数として計算する引数計算部と、
前記タグ生成引数を前記n台の秘密計算装置に送信する引数送信部を含み、
前記秘密計算装置はさらに、
前記タグ生成引数と前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算部を含む秘匿検索システム。
A secure search system including n as an integer of 2 or more, n secret calculation devices, and a data registration device,
The secret computing device is
The first prime number is equal to twice the second prime number plus 1;
An attribute random number calculation unit for calculating an attribute random number greater than or equal to 1 and less than the second prime number;
An attribute random number fragment distribution holding unit for distributing and holding the attribute random number fragments among the n secret computing devices;
The data registration device includes:
An intermediate random number generator that generates an intermediate random number that is greater than or equal to 1 and less than the second prime number;
An inverse element calculation unit for calculating the inverse element so that a product of the intermediate random number and its inverse element is equal to a remainder having the second prime number as a divisor and 1 as a dividend;
An inverse element fragment distribution holding unit that distributes and holds the inverse element fragments among the n secret computing devices;
The secret computing device further includes:
A search random number calculation unit that obtains a search random number by a secret calculation based on the attribute random number and the inverse element;
A search random number fragment distribution holding unit that holds the search random number fragments distributed among the n secret computing devices;
A format converter for converting the data format of the search random number stored in a distributed manner into bit information;
A prime parameter conversion unit that converts the prime parameter of the secret calculation in each bit of the search random number into the first prime by secret calculation;
The data registration device further includes:
A hash value generation unit that generates a hash value for the search target data based on a hash function;
An argument calculation unit that calculates a remainder that uses the first prime number as a divisor and the hash value that is a power of the intermediate random number as a dividend as a tag generation argument;
An argument transmitting unit that transmits the tag generation argument to the n secret computing devices;
The secret computing device further includes:
A secret search system including a tag calculation unit that calculates a tag by secret calculation from a fragment of each bit of the tag generation argument and the search random number.
第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算ステップと、
nを2以上の整数とし、
前記属性乱数の断片をn台の秘密計算装置間で分散保持する属性乱数断片分散保持ステップと、
秘密計算の素数パラメタを前記第2素数とし、
1以上かつ前記第2素数未満の乱数である中間乱数とその逆元の積が前記第2素数を除数として1を被除数とした剰余と等しくなり、前記逆元の断片が前記n台の秘密計算装置間で分散保持されるものとし、
前記逆元と、前記属性乱数に基づき秘密計算によって検索乱数を求める検索乱数計算ステップと、
前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持ステップと、
前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換ステップと、
秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換ステップと、
前記第1素数を除数とし、検索対象データに対して生成されたハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余であるタグ生成引数と、前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算ステップを含む
秘密計算方法。
The first prime number is equal to twice the second prime number plus 1;
An attribute random number calculation step of calculating an attribute random number greater than or equal to 1 and less than the second prime number;
n is an integer greater than or equal to 2,
An attribute random number fragment distribution holding step for distributing and holding the attribute random number fragments among n secret computing devices;
The prime parameter of the secret calculation is the second prime number,
A product of an intermediate random number that is a random number greater than or equal to 1 and less than the second prime number and its inverse element is equal to a remainder with the second prime number as a divisor and 1 as a dividend, and the inverse element fragments are the n secret computations. It shall be distributed and held among devices,
A search random number calculation step for obtaining a search random number by a secret calculation based on the inverse element and the attribute random number;
A search random number fragment distribution holding step for distributing and holding the search random number fragments among the n secret computing devices;
A format conversion step of converting the data format of the search random number stored in a distributed manner into bit information;
A prime parameter conversion step of converting the prime parameter of the secret calculation in each bit of the search random number into the first prime by secret calculation;
From the tag generation argument which is a remainder with the first prime number as a divisor and the hash value generated for the search target data raised to the power of the intermediate random number as a dividend, and a fragment of each bit of the search random number, a secret A secret calculation method including a tag calculation step of calculating a tag by calculation.
nを2以上の整数とし、n台の秘密計算装置と、データ登録装置が実行する秘匿検索方法であって
前記秘密計算装置は、
第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算ステップと、
前記属性乱数の断片を前記n台の秘密計算装置間で分散保持する属性乱数断片分散保持ステップを実行し、
前記データ登録装置は、
1以上かつ前記第2素数未満の中間乱数を生成する中間乱数生成ステップと、
前記中間乱数とその逆元の積が、前記第2素数を除数として1を被除数とした剰余と等しくなるように、前記逆元を計算する逆元計算ステップと、
前記逆元の断片を前記n台の秘密計算装置間で分散保持する逆元断片分散保持ステップを実行し、
前記秘密計算装置はさらに、
秘密計算の素数パラメタを前記第2素数とし、前記属性乱数と前記逆元に基づき、秘密計算によって検索乱数を求める検索乱数計算ステップと、
前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持ステップと、
前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換ステップと、
秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換ステップを実行し、
前記データ登録装置はさらに、
ハッシュ関数に基づいて検索対象データに対するハッシュ値を生成するハッシュ値生成ステップと、
前記第1素数を除数として、前記ハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余をタグ生成引数として計算する引数計算ステップと、
前記タグ生成引数を前記n台の秘密計算装置に送信する引数送信ステップを実行し、
前記秘密計算装置はさらに、
前記タグ生成引数と前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算ステップを実行する秘匿検索方法。
n is an integer greater than or equal to 2, n secret calculation devices, and a secret search method executed by a data registration device, wherein the secret calculation device includes:
The first prime number is equal to twice the second prime number plus 1;
An attribute random number calculation step of calculating an attribute random number greater than or equal to 1 and less than the second prime number;
Performing an attribute random number fragment distribution holding step for distributing and holding the attribute random number fragments among the n secret computing devices;
The data registration device includes:
An intermediate random number generating step for generating an intermediate random number greater than or equal to 1 and less than the second prime number;
An inverse element calculation step for calculating the inverse element so that a product of the intermediate random number and its inverse element is equal to a remainder with the second prime number as a divisor and 1 as a dividend;
Performing an inverse fragment distribution holding step for distributing and holding the inverse fragment among the n secret computing devices;
The secret computing device further includes:
A search random number calculation step for obtaining a search random number by secret calculation based on the attribute random number and the inverse element, wherein the prime parameter of secret calculation is the second prime number;
A search random number fragment distribution holding step for distributing and holding the search random number fragments among the n secret computing devices;
A format conversion step of converting the data format of the search random number stored in a distributed manner into bit information;
Performing a prime parameter conversion step of converting the prime parameter of the secret calculation to each first bit of the search random number by the secret calculation;
The data registration device further includes:
A hash value generation step for generating a hash value for the search target data based on a hash function;
An argument calculation step of calculating a remainder with the first prime number as a divisor and a value obtained by dividing the hash value by a power of the intermediate random number as a tag generation argument;
Performing an argument transmission step of transmitting the tag generation argument to the n secret computing devices;
The secret computing device further includes:
A secret search method for executing a tag calculation step of calculating a tag by secret calculation from a fragment of each bit of the tag generation argument and the search random number.
コンピュータを、請求項1に記載の秘密計算装置として機能させるためのプログラム。   A program for causing a computer to function as the secret calculation device according to claim 1.
JP2013203167A 2013-09-30 2013-09-30 Secret calculation device, secret search system, secret calculation method, secret search method, program Active JP5937556B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013203167A JP5937556B2 (en) 2013-09-30 2013-09-30 Secret calculation device, secret search system, secret calculation method, secret search method, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013203167A JP5937556B2 (en) 2013-09-30 2013-09-30 Secret calculation device, secret search system, secret calculation method, secret search method, program

Publications (2)

Publication Number Publication Date
JP2015068999A JP2015068999A (en) 2015-04-13
JP5937556B2 true JP5937556B2 (en) 2016-06-22

Family

ID=52835711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013203167A Active JP5937556B2 (en) 2013-09-30 2013-09-30 Secret calculation device, secret search system, secret calculation method, secret search method, program

Country Status (1)

Country Link
JP (1) JP5937556B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291396B2 (en) * 2014-10-08 2019-05-14 Nippon Telegraph And Telephone Corporation Device, method and program for detecting positions of partial character strings
EP3633656B1 (en) * 2017-05-25 2021-09-08 Nippon Telegraph and Telephone Corporation Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program
US20220060318A1 (en) * 2018-10-10 2022-02-24 Nippon Telegraph And Telephone Corporation Secure right shift computation system, secure division system, methods therefor, secure computation apparatus, and program

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292835B2 (en) * 2003-03-13 2009-07-08 沖電気工業株式会社 Secret reconstruction method, distributed secret reconstruction device, and secret reconstruction system
JP4356687B2 (en) * 2005-12-06 2009-11-04 日本電気株式会社 Questionnaire collection method and questionnaire collection system
JP5351852B2 (en) * 2010-08-02 2013-11-27 日本電信電話株式会社 Crossing statistics system, speech terminal, crossing statistics method
JP5369066B2 (en) * 2010-08-02 2013-12-18 日本電信電話株式会社 Recommendation system, speech terminal, search terminal, recommendation method
JP5400740B2 (en) * 2010-10-05 2014-01-29 日本電信電話株式会社 Searchable encryption system, searchable encryption method, storage device, search device, and registrant device
JP5412414B2 (en) * 2010-12-08 2014-02-12 株式会社日立製作所 Searchable cryptographic processing system
JP5486520B2 (en) * 2011-01-21 2014-05-07 日本電信電話株式会社 Secure set function system, secret set function device, secure set function processing method, secure set function program
JP2012248940A (en) * 2011-05-25 2012-12-13 Mitsubishi Electric Corp Data generation device, data generation method, data generation program and database system

Also Published As

Publication number Publication date
JP2015068999A (en) 2015-04-13

Similar Documents

Publication Publication Date Title
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
Ball et al. Garbled neural networks are practical
US9438412B2 (en) Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings
JP5975490B2 (en) Search system, search method, and program
US9646166B2 (en) Masking query data access pattern in encrypted data
US9852306B2 (en) Conjunctive search in encrypted data
CN110689349B (en) Transaction hash value storage and searching method and device in blockchain
EP3959839A1 (en) Methods and systems for privacy preserving evaluation of machine learning models
JP2015535956A (en) Secure Private Database Query with Content Hiding Bloom Filter
JP6770075B2 (en) Encrypted message search method, message sending / receiving system, terminal, program
US20120144185A1 (en) Counting delegation using hidden vector encryption
WO2019090841A1 (en) Encrypted file retrieval method and system, terminal device and storage medium
WO2022072415A1 (en) Privacy preserving machine learning using secure multi-party computation
JP2023512725A (en) Secure matching and identification of patterns
CN112765652B (en) Method, device and equipment for determining leaf node classification weight
Akavia et al. Secure search on encrypted data via multi-ring sketch
CN108351905A (en) Confidential search system, concealment search method and concealment search program
JP2012128398A (en) Method and system for selecting sequence of encrypted elements with privacy protected
US10831919B2 (en) Method for confidentially querying an encrypted database
Abadi et al. Feather: Lightweight multi-party updatable delegated private set intersection
US10972261B1 (en) Secure data processing
CN115098649B (en) Keyword search method and system based on double-key accidental pseudorandom function
WO2016072022A1 (en) Method for retrieving encrypted graph, system for retrieving encrypted graph, and computer
JP5937556B2 (en) Secret calculation device, secret search system, secret calculation method, secret search method, program
EP4058951A1 (en) Privacy preserving machine learning via gradient boosting

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160422

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160512

R150 Certificate of patent or registration of utility model

Ref document number: 5937556

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150