JP5937556B2 - 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム - Google Patents

秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム 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
English (en)
Other versions
JP2015068999A (ja
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/ja
Publication of JP2015068999A publication Critical patent/JP2015068999A/ja
Application granted granted Critical
Publication of JP5937556B2 publication Critical patent/JP5937556B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、暗号応用技術に関し、特に入力データ(検索キーおよび検索対象のデータ)をデータの保管者に対して明かすことなく完全一致検索を行う秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラムに関する。
暗号化されたデータを復元することなく演算結果を得る方法として、秘密計算と呼ばれる方法がある。この秘密計算は、例えば非特許文献1に開示されている。非特許文献1に記載された秘密計算では、まず、入力された数値を断片と呼ばれるデータに変換してn台の秘密計算装置に保持させる。この手順を、以下「断片を分散保持させる」と表現する。断片は、乱数によって秘密計算装置ごとに変わる値となっており、閾値以下の個数の断片からは元の数値を推測することができない。すなわち元の数値は断片に変換されているため、秘匿化されている。非特許文献1に開示された秘密計算では、さらに、入力された数値の断片を用いて、加減算、乗算、大小比較、データ形式変換(整数、二進数)の結果の断片を計算し、n台の秘密計算装置に保持させることができる。ただしこれらの演算は、秘密計算のパラメタとして定められる素数をPとして、有限体GF(P)の上で行われる。データベースのレコードを秘匿した状態で、完全一致検索および区間検索を実行する秘密計算を利用した方法として、特許文献1に記載された方法がある。特許文献1の方法では、まず、検索する属性について秘匿した状態でソートを行う。検索時には、ソート済みの秘匿化データに対して、秘密計算によるランダムスライドおよび大小比較を用いて二分探索を行う。データベースに蓄積されたレコード数をmとするとき、ランダムスライドおよび二分探索に必要な秘密計算装置間の通信量は、それぞれO(m)、O(log(m))である。ただし、秘密計算装置の台数nおよびレコードあたりのデータサイズを定数とする。
特開2012−150764号公報
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が増加するにつれて通信量が増大する。
そこで、本発明では、装置間の通信量が削減される秘密計算装置を提供することを目的とする。
本発明の秘密計算装置は、属性乱数計算部と、属性乱数断片分散保持部と、検索乱数計算部と、検索乱数断片分散保持部と、形式変換部と、素数パラメタ変換部と、タグ計算部を含む。
第1素数が第2素数の2倍に1を加えた数と等しくなるものとする。属性乱数計算部は、1以上かつ第2素数未満の属性乱数を計算する。属性乱数断片分散保持部は、nを2以上の整数とし、属性乱数の断片をn台の秘密計算装置間で分散保持する。秘密計算の素数パラメタを第2素数とし、1以上かつ第2素数未満の乱数である中間乱数とその逆元の積が第2素数を除数として1を被除数とした剰余と等しくなり、逆元の断片がn台の秘密計算装置間で分散保持されるものとする。検索乱数計算部は、逆元と、属性乱数に基づき秘密計算によって検索乱数を求める。検索乱数断片分散保持部は、検索乱数の断片をn台の秘密計算装置間で分散保持する。形式変換部は、分散保持された検索乱数のデータ形式をビット情報に変換する。素数パラメタ変換部は、秘密計算によって、検索乱数の各ビットにおける秘密計算の素数パラメタを第1素数に変換する。タグ計算部は、第1素数を除数とし、検索対象データに対して生成されたハッシュ値を中間乱数でべき乗した値を被除数とした剰余であるタグ生成引数と、検索乱数の各ビットの断片から、秘密計算によってタグを計算する。
本発明の秘密計算装置によれば、装置間の通信量が削減される。
実施例1の秘匿検索システムの概要を示すブロック図。 実施例1のデータ登録装置のデータ登録部の構成を示すブロック図。 実施例1のデータ検索装置のデータ検索部の構成を示すブロック図。 実施例1のデータ登録装置の第1検索乱数前処理部の構成を示すブロック図。 実施例1のデータ検索装置の第2検索乱数前処理部の構成を示すブロック図。 実施例1の秘密計算装置の属性乱数生成部の構成を示すブロック図。 実施例1の秘密計算装置の検索乱数生成部の構成を示すブロック図。 実施例1の秘密計算装置のタグ生成部の構成を示すブロック図。 実施例1の秘密計算装置の検索部の構成を示すブロック図。 実施例1の秘匿検索システムの属性乱数生成動作を示すシーケンス図。 実施例1の秘匿検索システムの検索乱数生成動作を示すシーケンス図。 実施例1の秘匿検索システムの検索乱数生成動作を示すシーケンス図。 実施例1の秘匿検索システムのデータ検索時のタグ計算動作を示すシーケンス図。 実施例1の秘匿検索システムのデータ検索時のタグ計算動作を示すシーケンス図。 実施例1の秘匿検索システムのデータ登録時のタグ計算動作を示すシーケンス図。 実施例1の秘匿検索システムのデータ検索動作を示すシーケンス図。
本発明では、検索対象データの登録時に識別用のタグを付与し、タグをすべての秘密計算装置で共有する。検索時には、検索したいデータ(例えば「電話番号:123−456−789」など)からタグを生成し、予め付与されたタグと比較することで検索を実現する。タグの生成には秘密計算が必要であるが、タグは元のデータに対して一意に定まるため、予め付与されたタグとの比較には一般的な検索(例えばインデックスによる検索)を用いることができる。このように、生成されたタグと予め付与されたタグとの比較は一般的な検索で実現可能であるため、以下、本発明の実施例として、タグを生成するシステムについて具体的に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
以下、図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が実行するものとし、データの登録と検索を別々の装置で行う構成を示したが、登録と検索が同じ装置でも実現可能であり、それぞれ複数の装置があっても構わない。
データ登録装置1は、データ登録部11、第1検索乱数前処理部12を含む。秘密計算装置2−1、2−2、…、2−nは、属性乱数生成部21と、検索乱数生成部22と、タグ生成部23と、保管部24と、検索部25を含む。データ検索装置3は、データ検索部31と、第2検索乱数前処理部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を含む。
以下、図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内に含まれることとしてもよい。
タグの生成には、事前に二種類の乱数を準備する必要がある。以下、<属性乱数生成動作>、<検索乱数生成動作>、<データ検索時のタグ計算動作>、<データ登録時のタグ計算動作(登録データの断片の分散保持)>、<データ検索動作>について順に説明する。<属性乱数生成動作>については、検索対象の属性ごとに実行する必要がある。<検索乱数生成動作>については、一回のタグ生成ごとに必要になるが、予め検索乱数を生成して蓄積しておくことが可能である。予め検索乱数を蓄積しておけば、検索時に<検索乱数生成動作>の処理を省くことができるため、タグ生成時の効率を上げることができる。以下、n=3を例として上述の各動作について説明する。
<属性乱数生成動作>
図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.
<検索乱数生成動作>
図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)。
秘密計算装置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.
データ検索装置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の動作がそれぞれ同じである。
<データ検索時のタグ計算動作>
図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)。
秘密計算装置2のタグ生成部23のタグ計算部231は、タグ生成引数cと検索乱数r’の各ビットの断片から、秘密計算によってタグy=cr’を計算する(S231)。具体的な方法として、例えば参考非特許文献2の5.6.1節に記載された方法がある。タグ生成部23のタグ保持部232は、yをタグとして保管部24に保持する(S232)。タグ生成部23のタグ登録完了通知部233は、データ登録装置1のデータ登録部11にタグ登録の完了通知を送信する(S233)。
データ検索装置3におけるデータ検索時のタグ計算動作は、前述同様である。図14に示すように、データ検索時のタグ計算動作は図13と同じように実行される。具体的には、データ検索部31とデータ登録部11の動作が同じである。従って、第1ハッシュ値生成部112と第2ハッシュ値生成部312の動作、第1引数計算部113と第2引数計算部313の動作、第1引数送信部114と第2引数送信部314の動作がそれぞれ同じである。
<データ登録時のタグ計算動作(登録データの断片の分散保持)>
データ登録時にも同じ方法によってタグを生成し、対応する断片にタグを付与する。図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台の秘密計算装置に保持させる」部分を指す。
<データ検索動作>
検索時には、検索したいデータからタグを生成する。検索したいデータと登録したデータが同じならばタグも同じになるため、予め付与されたタグと検索時に生成したタグを比較し、一般的な検索(例えばハッシュ値探索)により検索が可能になる。図16を参照して具体的に説明する。図16は本実施例の秘匿検索システム1000のデータ検索動作を示すシーケンス図である。図16のシーケンスは、図14のシーケンスに続けて実行される。図16に示すように、秘密計算装置2の検索部25のデータ要求部251は、タグyを参照して、検索対象データの出力を保管部24に要求する(S251)。検索部25のデータ取得部252は、保管部24から検索対象データを取得する(S252)。検索実行部253は、検索を実行する(S253)。検索部25の検索結果送信部254は、検索結果をデータ検索装置3のデータ検索部31に送信する(S254)。
本実施例の秘匿検索システム1000、データ登録装置1、秘密計算装置2、データ検索装置3のいずれかによれば、検索時に必要な秘密計算装置間の通信がタグ生成に関する秘密計算部分だけであるため、従来O(log(m))であった通信量がレコード数mによらずO(1)に削減される。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (5)

  1. 第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
    1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算部と、
    nを2以上の整数とし、
    前記属性乱数の断片をn台の秘密計算装置間で分散保持する属性乱数断片分散保持部と、
    秘密計算の素数パラメタを前記第2素数とし、
    1以上かつ前記第2素数未満の乱数である中間乱数とその逆元の積が前記第2素数を除数として1を被除数とした剰余と等しくなり、前記逆元の断片が前記n台の秘密計算装置間で分散保持されるものとし、
    前記逆元と、前記属性乱数に基づき秘密計算によって検索乱数を求める検索乱数計算部と、
    前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持部と、
    前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換部と、
    秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換部と、
    前記第1素数を除数とし、検索対象データに対して生成されたハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余であるタグ生成引数と、前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算部を含む
    秘密計算装置。
  2. nを2以上の整数とし、n台の秘密計算装置と、データ登録装置とを含む秘匿検索システムであって、
    前記秘密計算装置は、
    第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
    1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算部と、
    前記属性乱数の断片を前記n台の秘密計算装置間で分散保持する属性乱数断片分散保持部を含み、
    前記データ登録装置は、
    1以上かつ前記第2素数未満の中間乱数を生成する中間乱数生成部と、
    前記中間乱数とその逆元の積が、前記第2素数を除数として1を被除数とした剰余と等しくなるように、前記逆元を計算する逆元計算部と、
    前記逆元の断片を前記n台の秘密計算装置間で分散保持する逆元断片分散保持部を含み、
    前記秘密計算装置はさらに、
    秘密計算の素数パラメタを前記第2素数とし、前記属性乱数と前記逆元に基づき、秘密計算によって検索乱数を求める検索乱数計算部と、
    前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持部と、
    前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換部と、
    秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換部を含み、
    前記データ登録装置はさらに、
    ハッシュ関数に基づいて検索対象データに対するハッシュ値を生成するハッシュ値生成部と、
    前記第1素数を除数として、前記ハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余をタグ生成引数として計算する引数計算部と、
    前記タグ生成引数を前記n台の秘密計算装置に送信する引数送信部を含み、
    前記秘密計算装置はさらに、
    前記タグ生成引数と前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算部を含む秘匿検索システム。
  3. 第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
    1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算ステップと、
    nを2以上の整数とし、
    前記属性乱数の断片をn台の秘密計算装置間で分散保持する属性乱数断片分散保持ステップと、
    秘密計算の素数パラメタを前記第2素数とし、
    1以上かつ前記第2素数未満の乱数である中間乱数とその逆元の積が前記第2素数を除数として1を被除数とした剰余と等しくなり、前記逆元の断片が前記n台の秘密計算装置間で分散保持されるものとし、
    前記逆元と、前記属性乱数に基づき秘密計算によって検索乱数を求める検索乱数計算ステップと、
    前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持ステップと、
    前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換ステップと、
    秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換ステップと、
    前記第1素数を除数とし、検索対象データに対して生成されたハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余であるタグ生成引数と、前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算ステップを含む
    秘密計算方法。
  4. nを2以上の整数とし、n台の秘密計算装置と、データ登録装置が実行する秘匿検索方法であって
    前記秘密計算装置は、
    第1素数が第2素数の2倍に1を加えた数と等しくなるものとし、
    1以上かつ前記第2素数未満の属性乱数を計算する属性乱数計算ステップと、
    前記属性乱数の断片を前記n台の秘密計算装置間で分散保持する属性乱数断片分散保持ステップを実行し、
    前記データ登録装置は、
    1以上かつ前記第2素数未満の中間乱数を生成する中間乱数生成ステップと、
    前記中間乱数とその逆元の積が、前記第2素数を除数として1を被除数とした剰余と等しくなるように、前記逆元を計算する逆元計算ステップと、
    前記逆元の断片を前記n台の秘密計算装置間で分散保持する逆元断片分散保持ステップを実行し、
    前記秘密計算装置はさらに、
    秘密計算の素数パラメタを前記第2素数とし、前記属性乱数と前記逆元に基づき、秘密計算によって検索乱数を求める検索乱数計算ステップと、
    前記検索乱数の断片を前記n台の秘密計算装置間で分散保持する検索乱数断片分散保持ステップと、
    前記分散保持された検索乱数のデータ形式をビット情報に変換する形式変換ステップと、
    秘密計算によって、前記検索乱数の各ビットにおける秘密計算の前記素数パラメタを前記第1素数に変換する素数パラメタ変換ステップを実行し、
    前記データ登録装置はさらに、
    ハッシュ関数に基づいて検索対象データに対するハッシュ値を生成するハッシュ値生成ステップと、
    前記第1素数を除数として、前記ハッシュ値を前記中間乱数でべき乗した値を被除数とした剰余をタグ生成引数として計算する引数計算ステップと、
    前記タグ生成引数を前記n台の秘密計算装置に送信する引数送信ステップを実行し、
    前記秘密計算装置はさらに、
    前記タグ生成引数と前記検索乱数の各ビットの断片から、秘密計算によってタグを計算するタグ計算ステップを実行する秘匿検索方法。
  5. コンピュータを、請求項1に記載の秘密計算装置として機能させるためのプログラム。
JP2013203167A 2013-09-30 2013-09-30 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム Active JP5937556B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013203167A JP5937556B2 (ja) 2013-09-30 2013-09-30 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013203167A JP5937556B2 (ja) 2013-09-30 2013-09-30 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム

Publications (2)

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

Family

ID=52835711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013203167A Active JP5937556B2 (ja) 2013-09-30 2013-09-30 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム

Country Status (1)

Country Link
JP (1) JP5937556B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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
CN112805770B (zh) * 2018-10-10 2023-10-03 日本电信电话株式会社 秘密右移位运算***及方法、秘密除法运算***及方法、秘密计算装置以及记录介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292835B2 (ja) * 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
JP4356687B2 (ja) * 2005-12-06 2009-11-04 日本電気株式会社 アンケート収集方法およびアンケート収集システム
JP5369066B2 (ja) * 2010-08-02 2013-12-18 日本電信電話株式会社 リコメンデーションシステム、発言端末、検索端末、リコメンデーション方法
JP5351852B2 (ja) * 2010-08-02 2013-11-27 日本電信電話株式会社 横断統計システム、発言端末、横断統計方法
JP5400740B2 (ja) * 2010-10-05 2014-01-29 日本電信電話株式会社 検索可能暗号システム、検索可能暗号方法、ストレージ装置、検索装置、及び登録者装置
JP5412414B2 (ja) * 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
JP5486520B2 (ja) * 2011-01-21 2014-05-07 日本電信電話株式会社 セキュア集合関数システム、秘密集合関数装置、セキュア集合関数処理方法、セキュア集合関数プログラム
JP2012248940A (ja) * 2011-05-25 2012-12-13 Mitsubishi Electric Corp データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム

Also Published As

Publication number Publication date
JP2015068999A (ja) 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 (ja) 検索システム、検索方法、およびプログラム
US9646166B2 (en) Masking query data access pattern in encrypted data
US9852306B2 (en) Conjunctive search in encrypted data
CN110689349B (zh) 一种区块链中的交易哈希值存储和搜索方法及装置
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 (ja) コンテンツ隠蔽ブルームフィルタを用いたセキュアプライベートデータベースクエリ
US9235814B2 (en) Machine learning memory management and distributed rule evaluation
US20120144185A1 (en) Counting delegation using hidden vector encryption
WO2022072415A1 (en) Privacy preserving machine learning using secure multi-party computation
WO2016072022A1 (ja) 暗号化グラフの検索方法、暗号化グラフの検索システム及び計算機
WO2019090841A1 (zh) 一种加密文件的检索方法、***、终端设备及存储介质
JP2023512725A (ja) パターンの安全な照合および識別
CN112765652B (zh) 叶节点分类权值的确定方法、装置、及设备
CN108351905A (zh) 隐匿检索***、隐匿检索方法及隐匿检索程序
Akavia et al. Secure search on encrypted data via multi-ring sketch
CN115098649B (zh) 基于双密钥不经意伪随机函数的关键词搜索方法和***
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
WO2022076826A1 (en) Privacy preserving machine learning via gradient boosting
KR20170122048A (ko) 블룸 필터와 이진 트리를 이용한 암호 데이터 검색 시스템 및 그 방법

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