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 PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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
従来の技術では、データベースに蓄積されたレコード件数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.
本発明では、検索対象データの登録時に識別用のタグを付与し、タグをすべての秘密計算装置で共有する。検索時には、検索したいデータ(例えば「電話番号: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
データ登録装置1は、データ登録部11、第1検索乱数前処理部12を含む。秘密計算装置2−1、2−2、…、2−nは、属性乱数生成部21と、検索乱数生成部22と、タグ生成部23と、保管部24と、検索部25を含む。データ検索装置3は、データ検索部31と、第2検索乱数前処理部32を含む。
The
図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
以下、図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
タグの生成には、事前に二種類の乱数を準備する必要がある。以下、<属性乱数生成動作>、<検索乱数生成動作>、<データ検索時のタグ計算動作>、<データ登録時のタグ計算動作(登録データの断片の分散保持)>、<データ検索動作>について順に説明する。<属性乱数生成動作>については、検索対象の属性ごとに実行する必要がある。<検索乱数生成動作>については、一回のタグ生成ごとに必要になるが、予め検索乱数を生成して蓄積しておくことが可能である。予め検索乱数を蓄積しておけば、検索時に<検索乱数生成動作>の処理を省くことができるため、タグ生成時の効率を上げることができる。以下、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
(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
秘密計算装置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
(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
<データ検索時のタグ計算動作>
図13、図14を参照して本実施例の秘匿検索システム1000のデータ検索時のタグ計算動作について説明する。図13、図14は本実施例の秘匿検索システム1000のデータ検索時のタグ計算動作を示すシーケンス図である。検索したいデータをxと表す。
図13に示すように、データ登録装置1のデータ登録部11の第1ハッシュ値生成部112は、暗号学的ハッシュ関数、例えばSHA−256に基づいて検索対象データxに対するハッシュ値wを生成する(S112)。データ登録部11の第1引数計算部113は、第1素数pを除数として、ハッシュ値wを中間乱数Rでべき乗した値(wR)を被除数とした剰余をタグ生成引数cとして計算する(c=wR 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
As illustrated in FIG. 13, the first hash
秘密計算装置2のタグ生成部23のタグ計算部231は、タグ生成引数cと検索乱数r’の各ビットの断片から、秘密計算によってタグy=cr’を計算する(S231)。具体的な方法として、例えば参考非特許文献2の5.6.1節に記載された方法がある。タグ生成部23のタグ保持部232は、yをタグとして保管部24に保持する(S232)。タグ生成部23のタグ登録完了通知部233は、データ登録装置1のデータ登録部11にタグ登録の完了通知を送信する(S233)。
The
データ検索装置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
<データ登録時のタグ計算動作(登録データの断片の分散保持)>
データ登録時にも同じ方法によってタグを生成し、対応する断片にタグを付与する。図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
<データ検索動作>
検索時には、検索したいデータからタグを生成する。検索したいデータと登録したデータが同じならばタグも同じになるため、予め付与されたタグと検索時に生成したタグを比較し、一般的な検索(例えばハッシュ値探索)により検索が可能になる。図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
本実施例の秘匿検索システム1000、データ登録装置1、秘密計算装置2、データ検索装置3のいずれかによれば、検索時に必要な秘密計算装置間の通信がタグ生成に関する秘密計算部分だけであるため、従来O(log(m))であった通信量がレコード数mによらずO(1)に削減される。
According to any one of the
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 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素数未満の属性乱数を計算する属性乱数計算部と、
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.
前記秘密計算装置は、
第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素数未満の属性乱数を計算する属性乱数計算ステップと、
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.
前記秘密計算装置は、
第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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3206200B1 (en) * | 2014-10-08 | 2020-12-09 | Nippon Telegraph and Telephone Corporation | Device, method and program for detecting positions of partial character strings |
US11157612B2 (en) * | 2017-05-25 | 2021-10-26 | Nippon Telegraph And Telephone Corporation | Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program |
WO2020075797A1 (en) * | 2018-10-10 | 2020-04-16 | 日本電信電話株式会社 | Secret right shift calculation system, secret division system, method of same, secret calculation device, and program |
Family Cites Families (8)
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 |
-
2013
- 2013-09-30 JP JP2013203167A patent/JP5937556B2/en active Active
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 | |
WO2020216875A1 (en) | Methods and systems for privacy preserving evaluation of machine learning models | |
US20190058580A1 (en) | System and method for publication of private data using a blockchain network | |
JP2015535956A (en) | Secure Private Database Query with Content Hiding Bloom Filter | |
US9235814B2 (en) | Machine learning memory management and distributed rule evaluation | |
WO2022072415A1 (en) | Privacy preserving machine learning using secure multi-party computation | |
CN112765652B (en) | Method, device and equipment for determining leaf node classification weight | |
WO2016072022A1 (en) | Method for retrieving encrypted graph, system for retrieving encrypted graph, and computer | |
Akavia et al. | Secure search on encrypted data via multi-ring sketch | |
JP2023512725A (en) | Secure matching and identification of patterns | |
CN115098649B (en) | Keyword search method and system based on double-key accidental pseudorandom function | |
CN108351905A (en) | Confidential search system, concealment search method and concealment search program | |
US10831919B2 (en) | Method for confidentially querying an encrypted database | |
US10972261B1 (en) | Secure data processing | |
Abadi et al. | Feather: Lightweight multi-party updatable delegated private set intersection | |
Garimella et al. | Characterizing and optimizing end-to-end systems for private inference | |
KR20170122048A (en) | System and method for searching encrypted data using bloom filter and binary tree | |
JP5937556B2 (en) | Secret calculation device, secret search system, secret calculation method, secret search method, program | |
CN112000632A (en) | Ciphertext sharing method, medium, sharing client and system |
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 |